Ctrl-Q QVD Viewer
A powerful Visual Studio Code extension for viewing and exporting Qlik Sense and QlikView QVD files.
View data, metadata, schema, and lineage information directly within VS Code.
Designed for Qlik developers, admins and data engineers.
Open source with a permissive MIT license.
Sponsored by Ptarmigan Labs
Features
- View QVD Files: Open and view QVD files created by Qlik Sense or QlikView
- Display Metadata: View comprehensive metadata about QVD files including:
- File creation information
- Table creator details
- Total number of records
- Field definitions with types, symbols, and technical details
- Lineage information (if available in the QVD file)
- Data Preview: View sample data from QVD files in a formatted table with pagination
- Data Profiling: Analyze value distributions in your QVD fields (detailed documentation)
- Select 1-3 fields for comparison
- View frequency distributions in interactive bar charts
- Statistical Analysis for Numeric Fields (Beta):
- Descriptive statistics (min, max, mean, median, mode, sum, count)
- Spread measures (standard deviation, variance, range, IQR)
- Distribution metrics (quartiles, percentiles, skewness, kurtosis)
- Outlier detection using 1.5 × IQR method
- Histogram visualization for numeric distributions
- Temporal Analysis for Date/Time Fields (Beta):
- Automatic detection of date, timestamp, and time fields
- Time range analysis (earliest, latest, span, missing values)
- Temporal pattern detection (daily, weekly, monthly, quarterly, yearly)
- Distribution visualizations across different time granularities
- Gap detection and time series continuity analysis
- String Analysis for Text Fields (Beta):
- String length analysis (min, max, average, distribution)
- Pattern detection (email, phone, URL, numeric patterns)
- Character composition analysis (letters, digits, special characters)
- Whitespace and formatting detection (leading/trailing, multiple spaces)
- Empty string and null value analysis
- See detailed value counts and percentages in sortable tables
- Export profiling results as Qlik .qvs scripts for further analysis
- Automatic warning for large files before loading all data
- Open results as Markdown or Visual Analysis in separate windows
- Note: All analysis features (statistical, temporal, string) are in beta and subject to refinement
- Export Data: Export QVD data to multiple formats:
- Apache Arrow - High-performance columnar format for analytics (Beta)
- Avro - Compact binary format with schema evolution support (Beta)
- CSV - Comma-separated values for universal compatibility
- Excel - Microsoft Excel (.xlsx) with styled headers
- JSON - JavaScript Object Notation with pretty formatting
- Parquet - Apache Parquet for efficient columnar storage
- PostgreSQL - SQL script for PostgreSQL database import (Beta)
- Qlik Sense Inline Script - Qlik load script with inline table (with row limit selection)
- SQLite - Portable database file with SQL query support (Beta)
- XML - Extensible markup language for enterprise systems
- YAML - Human-readable structured data format
- Configurable Display: Customize the number of rows to load (default: 5,000, range: 100-100,000)
- About Panel: Access information about the Butler family of tools
- Read-Only Access: Safe viewing without modifying original QVD files
About Ctrl-Q
Ctrl-Q is a set of sibling tools to the Butler family of tools for Qlik Sense and QlikView developers and admins.
The Butler suite provides a best-in-class set of utilities for managing, monitoring, and enhancing Qlik environments, while Ctrl-Q focuses on command-line and developer-centric tools.
The Butler Family
- Butler: Core monitoring and automation tool for Qlik Sense Enterprise
- Butler SOS: Real-time monitoring and metrics for Qlik Sense
- Butler CW: Cache warming utility for Qlik Sense apps
- Ctrl-Q: Command-line tool for Qlik Sense administration and DevOps
- Ctrl-Q QVD Viewer (this extension): View QVD files directly in VS Code
Learn more about the Butler family at https://ptarmiganlabs.com/the-butler-family/
Getting Started
Quick Start (3 Steps)
Install the Extension
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X or Cmd+Shift+X on Mac)
- Search for "Ctrl-Q QVD Viewer" or just "QVD"
- Select the extension, click "Install"
Open a QVD File
- Click on any
.qvd file in your workspace
Start Viewing
- The QVD file will open and automatically show a data preview, with schema, metadata and lineage information in separate tabs
That's it! You're ready to view QVD files in VS Code.
First-Time Setup: Setting Default Editor
When you open your first QVD file, VS Code might show this dialog:
⚠️ "There are multiple default editors available for the resource."
- Configure Default | Keep Ctrl-Q QVD Viewer
What does this mean?
This dialog appears when multiple extensions can handle .qvd files. VS Code needs to know which one to use by default.
Some XML viewers can view QVD files since they are partly XML-based, but they won't be able to preview the actual data and metadata properly like Ctrl-Q QVD Viewer does.
What should you do?
Choose one of these options:
Tip: If you accidentally choose the wrong editor, you can always:
- Right-click on any
.qvd file
- Select "Open With..."
- Choose "Ctrl-Q QVD Viewer"
- Check "Configure default editor for '*.qvd'..." to make it permanent
Changing Settings (Optional)
By default, the extension loads 5,000 rows of data for preview and pagination. To change this:
- Open Settings: File → Preferences → Settings (or
Ctrl+,)
- Search for "Ctrl-Q QVD"
- Find "Ctrl-Q QVD Viewer: Max Preview Rows"
- Adjust the value (100-100,000 rows)
Installation
From VSIX (Local Installation)
- Clone this repository
- Install dependencies:
npm install
- Package the extension:
npm run package (or use vsce package)
- Install in VS Code: Extensions → Install from VSIX
From Source (Development)
See Development section below.
Usage
Opening QVD Files
There are two ways to open a QVD file:
- From File Explorer: Click on any
.qvd or .QVD file in the VS Code Explorer sidebar
- Using Command Palette:
- Press
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac)
- Type "Open QVD File" and select the command
- Choose a QVD file from the file picker
What You'll See
The extension displays QVD files in five tabs:
1. Data Preview
A formatted table with pagination controls showing the loaded rows with all columns from the QVD file.
Each field shows:
- Field name
- Data type (INTEGER, TEXT, etc.)
- Number of unique symbols
- Tags
- ...and other technical details
- Qlik Sense or QlikView document that created the QVD
- Creation date and time (UTC)
- Table name and creator details
- Total number of records
- Comments (if any)
- Tags (if any)
- ...and more
The lineage is an array of objects, each with Discriminator and Statement properties.
5. Data Profiling
Analyze value distributions for selected fields to understand data patterns and frequency.
How to Use Profiling:
- Navigate to the 📊 Profiling tab
- Select 1-3 fields from the field selector (use Ctrl/Cmd+Click for multiple selections)
- Click "▶️ Run Profiling" to analyze the data
- View results for each field including:
- Basic Statistics: Total rows, unique values, NULL/empty count, frequency distribution
- Statistical Analysis (for numeric fields, Beta): Descriptive statistics, spread measures, distribution metrics, outlier detection, and histogram visualization
- Temporal Analysis (for date/time fields, Beta): Time range analysis, temporal patterns, distribution across time granularities, and gap detection
- String Analysis (for text fields, Beta): Length analysis, pattern detection (email, phone, URL), character composition, and whitespace/formatting detection
- Interactive Chart: Bar chart showing top 20 most frequent values
- Detailed Table: Complete distribution with values, counts, and percentages
Features:
- Field Comparison: Compare value distributions across up to 3 fields simultaneously
- Automatic Analysis Type Detection: The extension automatically applies the appropriate analysis based on field content (numeric, temporal, or string)
- Visual Analysis: Interactive charts powered by Chart.js for clear data visualization
- Export to QVS: Generate Qlik .qvs scripts containing frequency data tables that can be loaded into Qlik Sense for further analysis
- Large File Warning: Automatic warning when profiling files with more than 100,000 rows, as all data must be loaded into memory
Note:
- Profiling loads the entire QVD file into memory. For very large files (>100,000 rows), you'll receive a warning before proceeding.
- All analysis features (statistical, temporal, string) are in beta and subject to change and refinement based on user feedback.
Exporting Data
The Ctrl-Q QVD Viewer allows you to export QVD data to various formats for further analysis or integration with other tools.
How to Export
- Open a QVD file in the viewer
- Click the "📤 Export" button in the top-right corner
- Select your desired format from the dropdown menu (sorted alphabetically):
- Export to Arrow - High-performance columnar format for analytical workloads (Beta)
- Export to Avro - Binary format with schema for Hadoop/Kafka ecosystems (Beta)
- Export to CSV - Universal text format, compatible with Excel and most data tools
- Export to Excel - Native Excel format (.xlsx) with formatted headers
- Export to JSON - Structured format ideal for web applications and APIs
- Export to Parquet - Efficient columnar format for big data and analytics
- Export to PostgreSQL - SQL script for importing data into PostgreSQL databases (Beta)
- Export to Qlik Inline Script - Qlik Sense load script with inline table
- Export to SQLite - Self-contained database file with SQL support (Beta)
- Export to XML - Structured markup for enterprise integration
- Export to YAML - Human-readable format for configuration and data exchange
- For Qlik Inline Script and PostgreSQL exports, you'll be prompted to select the number of rows:
- Choose from predefined options: 10, 100, 1,000, 10,000, or All rows
- Or enter a custom value (validated as a positive integer)
- Choose the destination folder and file name in the save dialog
- Click "Save" to complete the export
Export Details
- All data is exported: The export includes all rows from the QVD file, not just the preview data shown in the viewer (except for Qlik Inline Script and PostgreSQL where you can limit rows)
- Automatic schema inference: Data types are automatically detected and preserved in supported formats (Parquet, Excel, Avro, Arrow, SQLite, PostgreSQL)
- Beta formats: Some export formats are marked as Beta, indicating they are fully functional but may receive additional enhancements based on user feedback
- Progress notification: You'll see a confirmation message with an option to open the folder containing the exported file
Extension Settings
This extension contributes the following settings:
ctrl-q-qvd-viewer.maxPreviewRows: Maximum number of rows to load from the QVD file for preview and pagination (default: 5000, min: 100, max: 100000)
To change this setting:
- Go to File → Preferences → Settings (or
Ctrl+,)
- Search for "Ctrl-Q QVD"
- Adjust the "Max Preview Rows" value
Development
This section provides a quick overview for developers. For detailed information, see the following documentation:
- BUILD.md - Comprehensive build and development guide including prerequisites, setup, testing, and debugging
- BUNDLING.md - Extension bundling with esbuild, build scripts, and optimization details
- CI_CD.md - CI/CD setup with GitHub Actions, automated testing, and release workflows
- PUBLISHING.md - Publishing to VS Code Marketplace, including account setup and deployment
Test Data
Sample QVD files are provided in the test-data/ directory for testing. You can also create your own test QVD files by exporting data from Qlik Sense or QlikView.
For more details on building, testing, and packaging, see BUILD.md.
Known Issues
- Large QVD files may take long to load; use the maxPreviewRows setting to limit display
- The extension currently provides read-only access to QVD files
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
This extension is sponsored by Ptarmigan Labs, creators of the Butler suite of tools for Qlik Sense and QlikView.
License
MIT. See LICENSE file for details.
Part of the Butler and Ctrl-Q family of tools for Qlik Sense and QlikView
Learn more at butler.ptarmiganlabs.com | ptarmiganlabs.com
| |