メイン コンテンツをスキップする 補完的コンテンツへスキップ

Store

Store ステートメントは、QVDParquetCSV、または TXT ファイルを作成します。

構文:  

Store [ fieldlist from] table into filename [ format-spec ];

このステートメントにより、明示的に命名された QVDParquet、またはテキスト ファイルが作成されます。

項目のエクスポートは 1 つのデータ テーブルからのみ行えます。エクスポートする項目が複数のテーブルに存在する場合、スクリプトで明示的に join を行い、エクスポート対象のデータ テーブルを作成する必要があります。

テキスト値は UTF-8 形式で CSV ファイルにエクスポートされます。区切り文字を指定できます (LOAD を参照)。CSV ファイルへの store ステートメントでは、BIFF エクスポートを行えません。

情報メモデータが整形式ではない場合、データが正しく解釈されるように、項目が二重引用符で囲まれる場合があります。これは、項目に引用符、カンマ、スペース、改行などの文字が含まれている場合などに発生する可能性があります。

引数:  

コマンド引数の保存
引数 説明
fieldlist::= ( * | field) { , field } )

選択する項目のリスト。項目リストとして * を使用すると、すべての項目が指定されます。 

field::= fieldname [as aliasname ]

fieldname は、table の項目名と同じテキストです。(項目名にスペースや非標準的な文字などが含まれる場合、ストレート二重引用符または角括弧で囲む必要があります。)

aliasname は、結果の QVD ファイルまたは CSV ファイルで使用される項目の別名です。

table データ ソースとして使用するロード済みテーブルを表すスクリプト ラベル。
filename

既存のフォルダ データ接続への有効なパスを含むターゲット ファイルの名前。

'lib://Table Files/target.qvd'

レガシー スクリプト モードは、次のパス形式にも対応しています。

  • 絶対パス

    c:\data\sales.qvd

  • Qlik Sense アプリ作業ディレクトリへの相対パス。

    data\sales.qvd

    パスを省略すると、Qlik SenseDirectory ステートメントで指定されたディレクトリにファイルを保存します。Directory ステートメントがない場合、Qlik Sense は作業ディレクトリ C:\Users\{user}\Documents\Qlik\Sense\Apps にファイルを保存します。

format-spec ::=( ( txt | qvd | parquet), compression is codec)

これらのファイル形式のいずれかに書式指定を設定できます。書式指定が省略されている場合は、qvd で処理されます。

  • CSV および TXT ファイルの txt

  • QVD ファイルの qvd

  • Parquet ファイルの parquet

parquet を使用する場合、[圧縮は] で使用する圧縮コーデックを設定することもできます。[圧縮は] で圧縮コーデックを指定しない場合、snappy が使用されます。次の圧縮設定を使用できます。

  • uncompressed

  • snappy

  • gzip

  • lz4

  • brotli

  • zstd

  • lz4_hadoop

例:

Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4);

Store mytable into xyz.qvd (qvd);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

Store Name, RegNo from mytable into xyz.qvd;

Store Name as a, RegNo as b from mytable into 'lib://FolderConnection/myfile.qvd';

Store mytable into myfile.txt (txt);

Store mytable into myfile.parquet (parquet);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

情報メモDataFiles 接続のファイル拡張子は大文字と小文字を区別します。例: .qvd

Parquet ファイルでの保存

Parquet は強く型付けされたファイル フォーマットで、各フィールドには特定のデータ型(in32、ダブル、日付と時刻、テキストなど)が 1 つずつ保存されます。Qlik Sense は、内部データを緩く型付けされたデュアルとして保存し、異なるソースからのデータを同じフィールドに混在させることができます。Parquet の各項目にはデュアルの一部分しか保存できないため、各項目に何が含まれているかを知ることが重要です。既定では、Qlik Sense は項目タイプを使用して項目の保存方法を決定します。特定のフォーマットで Parquet ファイルにデータを保存する場合、ロード時に項目のデータ型を指定する必要があります。テキスト項目に数字、タイムスタンプ項目にテキストなど、Parquet ファイルの互換性のない項目にデータを保存しようとすると、NULL 値になってしまいます。

Parquet に保存するデータをロードするときに、既定の動作を変更できます。データ型を変更するためにフォーマットするか、Parquet で特定の列タイプを強制するためにタグ付けできます。

Parquet に保存するデータのフォーマット

Qlik Sense フォーマット関数を使用してデータを分類できます。たとえば、Text()Num()Interval() または Timestamp() は Parquet でデータを保存する際、データフォーマットを強制できます。Qlik Sense は、項目の属性と自動項目タグによって、ほぼ 20 種類のデータ型にデータを保存できます。詳細については、「変換関数」を参照してください。

Num()Text() でのデータのフォーマット

次の例は、Parquet に保存するデータを準備する例です。 Num() は数値項目に適用されます。Text() はテキストと混合の両方に適用されます。混合の場合、Text() は Parquet で数値項目のように扱われ、テキスト値が NULL 値に変更されるのを防ぎます。

Data: LOAD * INLINE [ num, text, mixed 123.321, abc, 123 456.654, def, xyz 789.987, ghi, 321 ]; Format:
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);

Parquet に保存するためのデータのタグ付け

Parquet にデータを保存する際、特定の列タイプを強制的に指定する $parquet タグをデータに付けます。各データ型は、対応するコントロール タグを追加することで強制できます。例えば、項目を INT32 としてParquet に保存するには、ロード スクリプトで $parquet-int32 のタグを付けます。データ型によって、文字列か数値表現のどちらかのデュアル データが保存されます。

以下の Parqeut コントロール タグは、Parquet ファイルに保存する項目のタグ付けに使用できます。

Parquet コントロール タグ
コントロール タグデュアル物理型論理型変換型
$parquet-boolean数値BOOLEANNONENONE
$parquet-int32数値INT32NONENONE
$parquet-int64数値INT64NONENONE
$parquet-float数値FLOATNONENONE
$parquet-double数値DOUBLENONENONE
$parquet-bytearray文字列BYTE_ARRAYNONEUTF8
$parquet-bytearrayfix数値FIXED_LEN_BYTE_ARRAYNONEDECIMAL
$parquet-decimal数値INT64DECIMALDECIMAL
$parquet-date数値INT32DATEDATE
$parquet-time数値INT64TIMETIME_MICROS
$parquet-timestamp数値INT64TIMESTAMPTIMESTAMP_MICROS
$parquet-string文字列BYTE_ARRAYSTRINGUTF8
$parquet-enum文字列BYTE_ARRAYENUMENUM
$parquet-interval数値FIXED_LEN_BYTE_ARRAYINTERVALINTERVAL
$parquet-json文字列BYTE_ARRAYJSONJSON
$parquet-bson文字列BYTE_ARRAYBSONBSON
$parquet-uuid文字列FIXED_LEN_BYTE_ARRAYUUIDNONE

Parquet に保存するためのデータのタグ付け

この例では、2 つのタグを使って Parquet 用のデータを定義しています。フィールド num$parquet-int32 とタグ付けされ、Parquet では INT32 として設定される数値フィールドとして定義されます。

Data: LOAD * INLINE [ num, text, 123.321, abc 456.654, def 789.987, ghi ]; TAG num WITH '$parquet-int32'; STORE Data INTO [lib://DataFiles/Tmp.parquet] (parquet);

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。