Переменные Direct Discovery
Системные переменные Direct Discovery
Можно установить предел кэширования для результатов выполнения запросов Direct Discovery для визуализации. При достижении этого предела времени Qlik Sense очищает кэш, когда создаются новые запросы Direct Discovery. Qlik Sense запрашивает исходные данные для выборок и создает кэш снова для указанного временного предела. Кэширование результатов для каждой комбинации выборок выполняется независимо друг от друга. Иначе говоря, кэш обновляется для каждой выборки отдельно таким образом, что одна выборка обновляет кэш только для выбранных полей, а вторая выборка обновляет кэш для соответствующих полей. Если вторая выборка включает в себя поля, обновленные в первой выборке, они не обновляются в кэше повторно, если не достигнут предел кэширования.
Кэш Direct Discovery не применяется к визуализациям Таблица. Выборки таблицы каждый раз запрашивают источник данных.
Предельное значение должно быть указано в секундах. Предел кэша по умолчанию составляет 1800 секунд (30 минут).
Значение, используемое для DirectCacheSeconds, представляет собой значение, которое устанавливается во время выполнения оператора DIRECT QUERY. Это значение невозможно изменить во время выполнения.
Пример:
Можно выполнять асинхронные параллельные вызовы базы данных с помощью функции объединения подключений. Синтаксис загрузки скрипта для настройки функции объединения:
Числовой параметр указывает максимальное количество подключений к базе данных, которые можно использовать коду Direct Discovery при обновлении листа. По умолчанию параметр имеет значение 1.
Direct Discovery поддерживает выбор расширенных данных Юникода путем использования стандартного формата SQL для строковых литералов расширенных символов (N’<расширенная строка>’), как это требуют некоторые базы данных (в частности SQL Server). Этот синтаксис можно включить для Direct Discovery с помощью переменной скрипта DirectUnicodeStrings.
Если установить для этой переменной значение «true», то перед строковыми символами будет использоваться “N” — строковый маркер ANSI стандартной ширины. Не все базы данных поддерживают этот стандарт. По умолчанию параметр имеет значение «false».
Когда значение поля DIMENSION выбрано в объекте Qlik Sense, для исходной базы данных создается запрос. Если для запроса требуется группировка, Direct Discovery использует ключевое слово DISTINCT для выбора только уникальных значений. Однако для некоторых баз данных необходимо ключевое слово GROUP BY. Установите для параметра DirectDistinctSupport значение 'false', чтобы создавать запросы GROUP BY вместо DISTINCT для получения уникальных значений.
Если для параметра DirectDistinctSupport установлено значение «true», будет использоваться DISTINCT. Если значение не установлено, по умолчанию используется DISTINCT.
В многотабличных сценариях с большим количеством элементов можно создавать запросы, вложенные в запрос SQL, вместо создания длинного предложения IN. Для этого активируйте параметр DirectEnableSubquery, выбрав значение 'true'. По умолчанию установлено значение 'false'.
Переменные чередования запросов Teradata
Чередование запросов Teradata — это функция, которая позволяет корпоративным приложениям работать совместно с основной базой данных Teradata для повышения эффективности учета, определения приоритетов и управления рабочей нагрузкой. Чередование запросов позволяет переносить метаданные, такие как учетные данные пользователя, в запросе.
Доступны две переменные, которые являются строками. Они оцениваются и отправляются в базу данных.
Эта строка отправляется, когда создается подключение к базе данных.
Например, если OSuser() возвращает WA\sbt, это будет оценено как SET QUERY_BAND = 'Who=WA\sbt;' FOR SESSION;, что и будет отправлено в базу данных при создании подключения.
Эта строка отправляется для каждого одиночного запроса.
Direct DiscoveryСимвольные переменные
Можно задать символ, используемый в качестве разделителя полей в операторах Direct Query для баз данных, где в качестве разделителя требуется символ, отличный от запятой. В операторе SETуказанный символ должен быть заключен в одинарные кавычки.
Можно задать символ, чтобы заключать строки в кавычки в созданном запросе. По умолчанию это одинарные кавычки. В операторе SETуказанный символ должен быть заключен в одинарные кавычки.
Можно указать, что в созданных запросах можно использовать кавычки не в кодировке ANSI для идентификаторов. В настоящее время доступные кавычки не в кодировке ANSI — только GoogleBQ. По умолчанию используется элемент ANSI. Можно использовать символы в верхнем регистре, в нижнем регистре и в разных регистрах (ANSI, ansi, Ansi).
Например, кавычки ANSI используются в следующем операторе SELECT:
Если для параметра DirectIdentifierQuoteStyle установлено значение "GoogleBQ", оператор SELECT будет использовать следующие кавычки:
Можно задать символ, чтобы управлять заключением идентификаторов в кавычки в созданном запросе. Можно задать как один символ (двойные кавычки), так и два символа (квадратные скобки). По умолчанию это двойные кавычки.
Когда поля Direct Discovery используются в визуализации Таблица, устанавливается пороговое значение, чтобы ограничить количество отображаемых строк. Пороговое значение по умолчанию составляет 1000 записей. Пороговое значение по умолчанию можно изменить, настроив переменную DirectTableBoxListThreshold в скрипте загрузки. Пример.
Параметр порогового значения применим только к визуализациям Таблица, содержащим поля Direct Discovery. Визуализации Таблица, содержащие только поля в памяти, не ограничены параметром DirectTableBoxListThreshold.
В визуализации Таблица не будут отображаться поля, пока количество записей в выборке не будет меньше порогового значения.
Переменные интерпретации числа Direct Discovery
Заданный разделитель десятичной части заменяет символ десятичного разделителя для валюты в операторе SQL, созданном для загрузки данных с помощью Direct Discovery. Этот символ должен совпадать с символом, используемом в DirectMoneyFormat.
По умолчанию используется значение '.'
Пример:
Заданный разделитель заменяет формат валюты в операторе SQL, созданном для загрузки данных с помощью Direct Discovery. Символ валюты для разделителя тысяч не включается.
По умолчанию используется значение '#.0000'
Пример:
Заданный формат времени заменяет формат времени в операторе SQL, созданном для загрузки данных с помощью Direct Discovery.
Пример:
Заданный формат даты заменяет формат даты в операторе SQL, созданном для загрузки данных с помощью Direct Discovery.
Пример:
Set DirectDateFormat='MM/DD/YYYY';
Заданный формат заменяет формат даты и времени в операторе SQL, созданном в операторе SQL для загрузки данных с помощью Direct Discovery.
Пример:
Set DirectTimestampFormat='M/D/YY hh:mm:ss[.fff]';