インライン テーブルからデータを読み込む
スクリプトにデータを手入力して、インライン テーブルを定義します。
インライン テーブルは、ファイルおよびデータベースに接続するのではなく、スクリプトにデータを手入力して作成します。必要な構文を使用して、スクリプト テキストがインライン データとして解釈されることを示します。
基本インライン ロードを使うと、テーブルが作成され、データ項目とレコードが挿入されます。
インライン ロードを使用する理由
インライン ロードはさまざまなユース ケースで役立ちます:
-
外部ソースに接続せずに、データの管理と編集を行う場合。
-
データ モデルに既存データを補足する場合。例えば、ほぼデータベース ソースから派生するデータ モデルに、テーブルを追加することができます。
-
外部ソースからの継続的ロードを回避したいデータを追加する場合。これは、データ ソースは今後変更される可能性があるが、データ値は変わらないことがわかっている場合、時間の節約となります。
-
他のファイルからスクリプトにコンテンツをコピー & ペーストしやすくなります。例えば、ワープロ文書からの .csv ファイルまたはテーブルなどが考えられます。
-
迅速にコピー & ペーストできるテスト スクリプトを作成する場合。
基本構文の例
次のスクリプトには、単純なインライン ロードが含まれています。
MyTable:
Load * Inline [Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
次の構文は、上記のインライン ロードに使用されます。
-
Load * Inline は、QlikView に対して、後続のインライン テーブルからすべての項目をロードするように指示します。
-
MyTable: は、テーブルの名前を定義します。
-
角括弧はデータを囲みます。
-
Load ステートメントの最初の行は、データ項目を定義します。
-
カンマにより、データ項目とレコードが区切られます。
-
セミコロンは、Load ステートメントを閉じます。
構文の概要
テーブルの命名
ロードされた他のテーブルと同様、インライン テーブルに名前を追加できます。テーブル名の定義は任意です。
テーブルの名前の後に、コロンを挿入します。
LOAD と inline ステートメント
LOAD スクリプト ステートメントを使用すると、インライン テーブルは inline 節とともにロードされます。inline 節は、エディターに手入力されたデータがテーブルの後続のテキストに含まれていることを示しています。特に指定しない限り、インライン テーブルは txt 形式を使用します。これは、区切り記号付きテキスト ファイルの構造と同様です。
LOAD ステートメントの詳細については、「 Load」を参照してください。
囲み文字とデータ入力
inline 節を使って入力されたデータは、特殊文字で囲む必要があります。データの囲い込みに使用できる文字の組み合わせは次の通りです。
-
角括弧 [ ]:[ また、]
-
二重引用符:" また、"
-
単一引用符 ' ':' また、'
-
バックティック `:` また、`
囲み文字として選択した文字は、競合する文字を含むインライン データを読み込むのに有用です。例えば、データに角括弧で囲まれたレコードが含まれる場合、引用符かバックティックで囲むことができます。
その他の囲み文字の例については、「例 - その他のデータ囲み文字」を参照してください。
代わりのテーブル形式を指定しない限り (デフォルトは txt)、囲み文字の間のテキストはファイルのコンテンツと同様に解釈されます。そのため、テキスト ファイルで新しい行を挿入する場合と同様に、inline 節のテキストについても Enter キーを押します。
インライン ロードの編集
インライン ロード ステートメントの終わりは、セミコロンで示されます。
データの変換
変換のない単純なインライン ロードの場合、列の数は最初の行によって定義されます。次の例では、ロードされたテーブルに 3 つの列があります。Product_ID、Supplier_Name、および Product_Category。
Products:
Load * Inline [
Product_ID, Supplier_Name, Product_Category
1, Paracel, Home Decor
2, PageWave, Electronics
3, Talarian, Software
4, Userland, Appliances
];
同一のインライン テーブルで変換を実行し、列を新規作成することもできます。先行する Load を使用すると、同一テーブルにロードするのに複数の LOAD ステートメントを使用できます。
具体的な例については、「例 - 変換付きのインライン ロード」を参照してください。
インライン ロードで形式仕様を構成する
ロードされた他のテーブルと同様、形式仕様項目を使用してインライン テーブルの形式指定を変更できます。形式仕様は括弧内に追加されます。データ囲み文字の後、LOAD ステートメントの終わりのセミコロンの前に追加する必要があります。追加できるカスタマイズには次のようなものがあります。
-
区切り文字をコンマから別の文字に変更する。例については、「例 - その他の区切り文字」を参照してください。
参照: Delimiter
-
テーブル列ヘッダーを省略する。例については、「例 - 列ヘッダーの省略」を参照してください。
参照: Labels
-
別のデータ形式を使用する (例えば、固定レコード形式など)。例については、「例 - 別のデータ型のロード」を参照してください。
参照: テーブル形式
情報メモすべての Table format オプションの一部は、インライン ロードでサポートされていません。 -
複数行コンテンツを許可する。例については、「例 - 複数行コンテンツ」を参照してください。
参照: Quotes
同一テーブルで複数の形式仕様項目を使用するには、カンマで区切ります。例: (Delimiter is '|', no labels)
形式仕様の詳細については、「書式指定アイテム」を参照してください。
演算子およびその他の節
さらに、インライン ロードは LOAD ステートメントであるため、LOAD ステートメントの他の引数をインライン ロードと組み合わせることができます。例えば、where または while 節を使って、行内のテキストに基づき特定の行をロードするかどうかを定義します。
同様に、テキスト コンテンツ自体の外に演算子を使用することもできます。演算子を使うと、インライン データの変換方法をカスタマイズすることも、特定のデータをロードするタイミングを定義することもできます。
具体的な例については、「例 - 変換のための演算子と節」を参照してください。
例 - その他のデータ囲み文字
インライン ロードは、角括弧、引用符、バック ティックで囲むことができます。このセクションでは、例を挙げてこれについて説明します。詳細については、「囲み文字とデータ入力」を参照してください。
例 - その他の区切り文字
カンマ以外の文字を使って、テーブルの列の値を区切ることができます。詳細については、「インライン ロードで形式仕様を構成する」を参照してください。
例 - 列ヘッダーの省略
形式仕様を編集して、列ヘッダーを定義せずにインライン テーブルをロードします。これは、labels 仕様を使って実行されます (値 no labels に設定する)。詳細については、「インライン ロードで形式仕様を構成する」を参照してください。
列名を定義せずにテーブルをロードすると、システム定義の列名が自動的に使用されます。
例 - 別のデータ型のロード
この例は、固定レコード形式にインライン テーブルをロードできる方法を示しています。「インライン ロードで形式仕様を構成する」を参照してください。
例 - 複数行コンテンツ
この例は、複数行項目コンテンツをインライン テーブルに入力できる方法を示しています。「インライン ロードで形式仕様を構成する」を参照してください。
例 - 変換付きのインライン ロード
これらの例は、インラインでロードされた項目に対して計算を実行し、データ モデルに新しい項目を作成する方法を示しています。
詳細については、「データの変換」を参照してください。
例 - インライン テーブルで null 値を作成する
この例は、NullInterpret 変数を使用して、インライン データで null 値を作成できる方法を示しています。
その他の例
その他の例については、「 Load」を参照してください。