Direct Discovery 変数
Direct Discovery システム変数
ビジュアライゼーションの Direct Discovery クエリの結果のキャッシュ制限を設定できます。この時間制限に達すると、Qlik Sense は新たな Direct Discovery クエリが行われた際にキャッシュをクリアします。Qlik Sense は選択用にソース データのクエリを実行し、指定した時間制限に沿ったキャッシュを再び作成します。選択の組み合わせの結果は、個別にキャッシュされます。つまり、キャッシュは各選択ごとに個別に更新されるため、1 つ目の選択はその項目のキャッシュのみを更新し、2 つ目の選択はその項目のキャッシュのみを更新します。1 つ目の選択で更新された項目が 2 つ目の選択に含まれる場合、キャッシュ制限に達していなければ、これらの項目のキャッシュが再び更新されることはありません。
Direct Discovery キャッシュは [テーブル] のビジュアライゼーションには適用されません。テーブルの選択は、データ ソースを毎回クエリします。
制限値は秒単位で設定する必要があります。既定のキャッシュ制限は 1800 秒 (30 分) です。
DirectCacheSeconds に使用する値は、DIRECT QUERY ステートメント実行時に設定される値です。実行時にこの値を変更することはできません。
接続プーリング機能を使用することで、データベースへの非同期の同時呼び出しを行うことができます。ロード スクリプト構文では、プーリング機能を以下のように設定します。
この数値設定は、シート更新時に Direct Discovery コードが使用するデータベース接続の最大数を指定します。デフォルト設定は 1 です。
Direct Discovery は、一部のデータベース (特にSQL Server) で必要とされている場合、拡張された文字列リテラル (N’<extended string>’) 向けに SQL 標準形式を使用して、拡張 Unicode データの選択をサポートできます。この構文は、スクリプト変数 DirectUnicodeStrings を用いることで Direct Discovery での使用が可能になります。
この変数を「true」に設定すると、ANSI 標準ワイド文字マーカーの “N” を文字列リテラルの前に使用できるようになります。ただし、一部のデータベースではサポートされていません。デフォルト設定は「false」です。
DIMENSION 項目値が Qlik Sense オブジェクトで選択されている場合、ソース データベースに対するクエリが生成されます。クエリでグループ化が要求されている場合、Direct Discovery は DISTINCT キーワードを用いて一意の値のみ選択します。ただし、GROUP BY キーワードを使用しなければならないデータベースも一部存在します。この場合、DirectDistinctSupport を 'false' に設定し、一意の値のクエリで DISTINCT ではなく GROUP BY キーワードを用いるようにします。
DirectDistinctSupport を true に設定すると、DISTINCT が使用されます。設定しなかった場合は、デフォルトの DISTINCT が使用されます。
濃度の高いマルチテーブル シナリオでは、大きな IN 節を生成する代わりに SQL クエリで複数のサブ クエリを生成することができます。これは、DirectEnableSubquery に 'true' を設定することで可能になります。この値の既定値は 'false' です。
Teradata クエリ バンド変数
Teradata クエリ バンドとは、会計、優先度設定、ワークロード管理を改善するために、エンタープライズ アプリケーションが、根底にある Teradata データベースと連携して動作することを可能にする機能です。クエリ バンドを使用すると、クエリ周辺のメタデータ (ユーザー認証情報など) をラップすることができます。
以下の 2 つの変数が用意されており、そのいずれも評価の後にデータベースに送信される文字列です。
この文字列は、データベースへの接続が作成されると送信されます。
例えば、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 ステートメントでは次のように引用符が使用されます。
生成されたクエリで文字列を引用する際に制御する文字を指定できます。1 文字 (二重引用符 1 つなど) または 2 文字 (角括弧 2 つなど) に設定可能です。既定は二重引用符です。
[テーブル] のビジュアライゼーションで Direct Discovery 項目が使用されている場合、表示される行数を制限するしきい値が設定されます。既定のしきい値は 1000 です。既定のしきい値は、ロード スクリプトの DirectTableBoxListThreshold 変数を設定することで変更できます。例:
しきい値の設定は、Direct Discovery 項目が含まれる [テーブル] のビジュアライゼーションにのみ適用されます。インメモリ項目だけが含まれる [テーブル] のビジュアライゼーションは、DirectTableBoxListThreshold 設定による制限を受けません。
選択数がしきい値を下回るまで、[テーブル] のビジュアライゼーションに項目は表示されません。
Direct Discovery データ型変換変数
Direct Discovery で生成したデータ ロード用 SQL ステートメントで使用されている通貨の小数点記号の代わりに、ここで定義した小数点記号が使用されます。この文字は、DirectMoneyFormat で使用されている文字と一致する必要があります。
既定値: '.'
Direct Discovery で生成したデータ ロード用 SQL ステートメントで使用されている通貨書式の代わりに、ここで定義した記号が使用されます。千の桁区切り記号を含めることはできません。
既定値: '#.0000'
Direct Discovery で生成したデータ ロード用 SQL ステートメントで使用されている時間書式の代わりに、ここで定義した時間書式が使用されます。
Direct Discovery で生成したデータ ロード用 SQL ステートメントで使用されている日付書式の代わりに、ここで定義した日付書式が使用されます。
Set DirectDateFormat='MM/DD/YYYY';
Direct Discovery を使用して SQL ステートメントで生成したデータ ロード用 SQL ステートメントで使用されている日付および時間書式の代わりに、ここで定義した日付・時間書式が使用されます。
Set DirectTimestampFormat='M/D/YY hh:mm:ss[.fff]';