QlikView QVX File Format
The QVX (QlikView data eXchange) format is for high performance data for input into QlikView. A QVX file contains both the metadata that describes the data as well as the data itself. The QVX format was created to allow data to be imported into QlikView from external sources.
As of Alteryx 10.0, both read and write support for QVX files are available.
To write a QVX file, use an Output Data tool and select "QVX File (.qvx)" as the output format.
The Table Name in the metadata section is the entered file name without the extension. For example, choose "AlteryxQVXOutput.qvx" as the output filename and the table is named, "AlteryxQVXOutput". This table name is accessible in QlikView when importing the QVX file.
Data Field Types
Alteryx data types differ from QlikView data types and are mapped accordingly:
Alteryx Data Type | QVX Data Type | Extent | Byte Width | AttrTypes |
---|---|---|---|---|
Bool | QVX_UNSIGNED_INTEGER | QVX_FIX | 1 | INTEGER |
Byte | QVX_UNSIGNED_INTEGER | QVX_FIX | 1 | INTEGER |
Int16 | QVX_SIGNED_INTEGER | QVX_FIX | 2 | INTEGER |
Int32 | QVX_SIGNED_INTEGER | QVX_FIX | 4 | INTEGER |
Int64 | QVX_SIGNED_INTEGER | QVX_FIX | 8 | INTEGER |
Float | QVX_IEEE_REAL | QVX_FIX | 4 | REAL |
Double | QVX_IEEE_REAL | QVX_FIX | 8 | REAL |
Fixed Decimal | QVX_PACKED_BCD | QVX_FIX | Determined by Alteryx field size and scale.* | FIX |
String | QVX_TEXT | QVX_COUNTED | 4 | ASCII |
WString | QVX_TEXT | QVX_COUNTED | 4 | ASCII |
VString | QVX_TEXT | QVX_COUNTED | 4 | ASCII |
V_WString | QVX_TEXT | QVX_COUNTED | 4 | ASCII |
DateTime | QVX_IEEE_REAL | QVX_FIX | 8 | TIMESTAMP |
Date | QVX_IEEE_REAL | QVX_FIX | 8 | DATE |
Time | QVX_IEEE_REAL | QVX_FIX | 8 | TIME |
Blob | QVX_BLOB | QVX_COUNTED | 4 | |
SpatialObj | ** |
*If the Fixed Decimal in Alteryx is set to 11.2, the bytewidth is based on the value 11. The size is optimized for Packed BCD, so it is the size required to hold the largest value Alteryx can hold based on size and scale.
**Spatial Object fields are not written to QVX format. There is insufficient documentation as to how this field type should be written.
Header Metadata (XML)
The header XML written at the top of the file is described below.
This is an example of the "QvxTableHeader" section that describes the file. The elements are described below:
<?xml version="1.0" encoding="UTF-8"?> <QvxTableHeader> <MajorVersion>1</MajorVersion> <MinorVersion>0</MinorVersion> <CreateUtcTime>2014-02-26 23:50:54</CreateUtcTime> <TableName>AlteryxQVXOutput</TableName> <UsesSeparatorByte>True</UsesSeparatorByte> <Fields> <!-- See Field Metadata --> </Fields> </QvxTableHeader>
The XML example above shows only the header metadata portion that describes the file. The field definitions have been removed here but are described below.
Major and Minor Versions: Can only be 1 and 0 respectively.
CreateUtcTime: The time (converted to UTC) that the Alteryx workflow was run.
TableName: The output filename the user specified in Alteryx as the output QVX filename, without the .qvx extension.
UsesSeparatorByte: A record separator byte is used to separate records.
Field Metadata
This section covers the field definitions where it says "See Field Metadata" in the example above.
There is one "QvxFieldHeader" element to describe each field. This example shows the field definition for an Alteryx String, or V_String. These are built using the information in the Data Field Type table:
<QvxFieldHeader> <FieldName>String</FieldName> <Type>QVX_TEXT</Type> <Extent>QVX_COUNTED</Extent> <NullRepresentation>QVX_NULL_FLAG_SUPPRESS_DATA</NullRepresentation> <ByteWidth>4</ByteWidth> <FieldFormat> <Type>ASCII</Type> </FieldFormat> </QvxFieldHeader>