Limitations when using Direct Discovery
Supported data types
Not all data types are supported in Direct Discovery. There may be cases in which specific source data formats need to be defined in Qlik Sense. You define data formats in the load script by using the "SET Direct...Format" syntax. The following example demonstrates how to define the date format of the source database that is used as the source for Direct Discovery:
Example:
There are also two script variables for controlling how the Direct Discovery formats currency values in the generated SQL statements:
The syntax for these two variables is the same as for MoneyFormat and MoneyDecimalSep, but there are two important differences in usage:
- This is not a display format, so it should not include currency symbols or thousands separators.
- The default values are not driven by the locale but are tied to the values. (Locale-specific formats include the currency symbol.)
Direct Discovery can support the selection of extended Unicode data by using the SQL standard format for extended character string literals (N'<extended string>') as required by some databases, such as SQL Server. This syntax can be enabled for Direct Discovery with the script variable DirectUnicodeStrings. Setting this variable to "true" enables the use of "N" in front of the string literals.
Security
The following behaviors that could affect security best practice should be taken into consideration when using Direct Discovery:
- All of the users using the same app with the Direct Discovery capability use the same connection. Authentication pass-through and credentials-per-user are not supported.
- Section Access is supported in server mode only.
- Section access is not supported with high-cardinality joins.
- It is possible to execute custom SQL statements in the database with a NATIVE keyword expression, so the database connection set up in the load script should use an account that has read-only access to the database.
- Direct Discovery has no logging capability, but it is possible to use the ODBC tracing capability.
- It is possible to flood the database with requests from the client.
- It is possible to get detailed error messages from the server log files.
Qlik Sense functionality that is not supported
Because of the interactive and SQL syntax-specific nature of Direct Discovery, several features are not supported:
- Advanced calculations (set analysis, complex expressions)
- Calculated dimensions
- Comparative analysis (alternate state) of the objects that use Direct Discovery fields
- Direct Discovery MEASURE and DETAIL fields are not supported in smart search.
- Search of Direct Discovery DETAIL fields
- Binary load from an application that is accessing a Direct Discovery table.
- Synthetic keys on the Direct Discovery table
- Table naming in a script does not apply to the Direct Discovery table.
-
The wild card character * after a DIRECT QUERY keyword in the load script
Example: (DIRECT QUERY *)
- Oracle database tables with LONG data type columns.
- Big integers in scientific notation, outside the range [-9007199254740990, 9007199254740991]. These may can cause rounding errors and undefined behavior.
- Snowflake database schemas
- Data preparation in the Data manager
- Qlik Cloud is not supported.
- Qlik Sense Enterprise for elastic deployments
- Export to Microsoft Excel
- Offline mobile ios app is not supported.
- Advanced Analytics Integration is not supported.
- Extensions and Widgets are not supported.
- Qlik GeoAnalytics is not supported.
- Assigning colors to master dimensions and measures is not supported.
- New visualizations included in Qlik Sense June 2017 and later are not supported:
- Box plot
- Distribution plot
- Histogram
- Non-SQL sources and non-SQL statements (for example, the PLACEHOLDER function in SAP HANA).
- The following connectors are not supported:
- Qlik Salesforce Connector
- Qlik REST Connector
- Qlik DataMarket Connector
- Qlik Web connectors
- Qlik Connector for use with SAP NetWeaver
- Optimizing the SQL generated by the Direct Discovery queries
- High-cardinality joins in combination with in-memory tables can produce large IN clauses that may exceed the SQL buffer limit of the data source.
Did this page help you?
If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!