すべて展開 / 折りたたむ インライン テーブルからデータを読み込む このページ上 表示するリンクを増やす
スクリプトにデータを手入力して、インライン テーブルを定義します。
インライン テーブルは、ファイルおよびデータベースに接続するのではなく、スクリプトにデータを手入力して作成します。必要な構文を使用して、スクリプト テキストがインライン データとして解釈されることを示します。
基本インライン ロードを使うと、テーブルが作成され、データ項目とレコードが挿入されます。
インライン ロードを使用する理由
インライン ロードはさまざまなユース ケースで役立ちます:
外部ソースに接続せずに、データの管理と編集を行う場合。
データ モデルに既存データを補足する場合。例えば、ほぼデータベース ソースから派生するデータ モデルに、テーブルを追加することができます。
外部ソースからの継続的ロードを回避したいデータを追加する場合。これは、データ ソースは今後変更される可能性があるが、データ値は変わらないことがわかっている場合、時間の節約となります。
他のファイルからスクリプトにコンテンツをコピー & ペーストしやすくなります。例えば、ワープロ文書からの .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 is '|', no labels)
形式仕様の詳細については、「書式指定アイテム 」を参照してください。
演算子およびその他の節
さらに、インライン ロードは LOAD ステートメントであるため、LOAD ステートメントの他の引数をインライン ロードと組み合わせることができます。例えば、where または while 節を使って、行内のテキストに基づき特定の行をロードするかどうかを定義します。
同様に、テキスト コンテンツ自体の外に演算子を使用することもできます。演算子を使うと、インライン データの変換方法をカスタマイズすることも、特定のデータをロードするタイミングを定義することもできます。
具体的な例については、「例 - 変換のための演算子と節 」を参照してください。
例 - その他のデータ囲み文字
インライン ロードは、角括弧、引用符、バック ティックで囲むことができます。このセクションでは、例を挙げてこれについて説明します。詳細については、「囲み文字とデータ入力 」を参照してください。
ロード スクリプトと結果
概要
この例では、インライン データを囲むためにバック ティックを使用する方法を示します。例のデータには、角括弧文字が含まれていますが、そのため LOAD ステートメントの囲み文字として角括弧は使用できません。
ロード スクリプト
DataTable:
Load * inline
`
custom_property, date, amount
[11402], 1/1/2024, 92.99
[11403], 1/2/2024, 102.34
[11404], 1/3/2024, 50.26
[11405], 1/4/2024, 153.69
[11406], 1/5/2024, 75.62
`;
コードをクリップボードにコピーします
結果
custom_property
date
amount
結果テーブル
[11402]
1/1/2024
92.99
[11403] 1/2/2024 102.34 [11404] 1/3/2024 50.26 [11405] 1/4/2024 153.69 [11406] 1/5/2024 75.62
例 - その他の区切り文字
カンマ以外の文字を使って、テーブルの列の値を区切ることができます。詳細については、「インライン ロードで形式仕様を構成する 」を参照してください。
ロード スクリプトと結果
概要
区切り文字は、テーブル内のデータにカンマが含まれている場合に交換できます。カンマが含まれていない場合、テーブル内の次の列に切り替える合図となります。
この例には、ロードするテーブルが 4 つ含まれています。次の通りです。
ロード スクリプト
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');
Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');
Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);
Table4:
LOAD * INLINE [
Num3 Chr3
1 A
2 B ] (Delimiter is '\t');
コードをクリップボードにコピーします
結果
結果テーブル: Table1
1
The transaction was complete, but the order has not yet shipped.
2 We need to confirm the following details: sales rep number, order status, and shipping priority.
例 - 列ヘッダーの省略
形式仕様を編集して、列ヘッダーを定義せずにインライン テーブルをロードします。これは、labels 仕様を使って実行されます (値 no labels に設定する)。詳細については、「インライン ロードで形式仕様を構成する 」を参照してください。
列名を定義せずにテーブルをロードすると、システム定義の列名が自動的に使用されます。
ロード スクリプトと結果
概要
この例は、列名を定義せずにインライン テーブルをロードできる方法を示しています。
ロード スクリプト
Expenses:
Load * inline
[
1,Category1,40566.49
2,Category2,3504.54
3,Category3,593206.30
] (no labels);
コードをクリップボードにコピーします
結果
結果テーブル
1
Category1
40566.49
2 Category2 3504.54 3 Category3 593206.30
例 - 別のデータ型のロード
この例は、固定レコード形式にインライン テーブルをロードできる方法を示しています。「インライン ロードで形式仕様を構成する 」を参照してください。
ロード スクリプトと結果
概要
この例のスクリプトには、次の要素が含まれています。
テーブル DataTable を定義するインライン ロード ステートメント。
ロードするデータが固定レコード形式であることを示す fix (Table format 仕様の一部として) の使用。
ロード スクリプト
DataTable:
LOAD
"@1:4",
"@5:8",
"@9:12",
"@13:16"
INLINE [
a b c d
1 2 3 4
x y z w
] (fix, utf8, embedded labels);
コードをクリップボードにコピーします
結果
例 - 複数行コンテンツ
この例は、複数行項目コンテンツをインライン テーブルに入力できる方法を示しています。「インライン ロードで形式仕様を構成する 」を参照してください。
ロード スクリプトと結果
概要
この例のスクリプトには、次の要素が含まれています。
テーブル T1 を定義する単純なインライン ロード。
複数行コンテンツをサポートする Quotes 指定子 (値 msq とともに) の使用。
フィートとインチで指定された長さの値。
二重引用符記号 (" ) は、複数行入力の終わりを示します。この例では、同じ記号がインチの値を示すのにも使用されています。これは、同じ LOAD ステートメントで両方を使用する必要がある場合の構文と結果の動作を示すためのものです。基本的に、" 記号を 2 つの連続する文字 ("" ) に入力した場合、コードが記号の単一テキスト インスタンスとして解釈されることを示します。
ロード スクリプト
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8" ] (msq);
コードをクリップボードにコピーします
結果
複数行を意図通りに表示するには、[プロパティ... ] 構成で [複数行設定 ] を調整する必要があります。
結果テーブル
1
1' 2"
22' 10"
2 14' 8"
上のテーブルでは、ID 値が 1 のレコードに複数行コンテンツが含まれています。
例 - 変換付きのインライン ロード
これらの例は、インラインでロードされた項目に対して計算を実行し、データ モデルに新しい項目を作成する方法を示しています。
詳細については、「データの変換 」を参照してください。
例: 項目の単純な名前変更
ロード スクリプト
ORDERS:
Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
コードをクリップボードにコピーします
結果
結果テーブル
ProductA
ProductA
ProductB ProductB ProductC ProductC
例: ID 項目の単純な挿入
概要
この例は、計算された項目を定義して、各 ID 値を手入力しなくても各データ行の ID を示すことができる方法を示しています。
ロード スクリプト
ORDERS:
Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
コードをクリップボードにコピーします
結果
例: LOAD 変換を処理するためにステートメントを構成する
概要
この例では、単純な変換をインライン データに適用する方法をいくつか示しています。1 つまたは複数の LOAD ステートメントを使用し、異なる方法で構文を構成することにより、変換により元の項目が置換されるか、それとも元の項目と新規の項目の両方がロードされるのかを定義できます。
特に、次のバリエーションと、出力にそれらがどう影響するかに注意してください。
この例のスクリプトには、次の要素が含まれています。
ロード スクリプト
DerivedYears1:
Load *,
Year(initial_date1) as derived_year1
;
Load
* inline [
initial_date1
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears2:
Load
Year(initial_date2) as derived_year2
;
Load
* inline [
initial_date2
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears3:
Load Year(initial_date3) as derived_year3,
* inline [
initial_date3
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
DerivedYears4:
Load Year(initial_date4) as derived_year4
inline [
initial_date4
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
コードをクリップボードにコピーします
結果
結果テーブル: DerivedYears1
1/1/2022
2022
1/1/2023 2023 1/1/2024 2024
結果テーブル: DerivedYears2
2022
2023 2024
結果テーブル: DerivedYears3
1/1/2022
2022
1/1/2023 2023 1/1/2024 2024
結果テーブル: DerivedYears4
2022
2023 2024
例: 項目コンテンツの変更
概要
大きなテキスト ファイルからスクリプト エディタに情報をペーストしているが、データセットのレコードに追加処理を実行したいと考えています。例えば、特定の文字とプレフィックスを削除して、各単語を大文字にしたい場合などです。
この例のスクリプトには、次の要素が含まれています。
ロード スクリプト
Transformations:
Load
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;
Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product: {snack food}
Product: {electronics and video games}
];
コードをクリップボードにコピーします
結果
結果テーブル
Soft Drinks And Other Beverages
Snack Food Electronics And Video Games
例 - 変換のための演算子と節
LOAD ステートメントで演算子を使用して、変換と特定の説を定義できます。詳細については、「演算子およびその他の節 」を参照してください。
演算子
ロード スクリプトと結果
概要
この例のスクリプトには、次の要素が含まれています。
テーブル Purchases を定義する単純なインライン ロード。
計算された項目、OrderSize の挿入。この項目は、インライン データセットから amount 項目を変換したものです。購入額が 2000 ドルを超えるかどうかで、大か小に分類されます。
amount が 0.05 ドル未満の場合にレコードがロードされないようにする where 節。
ロード スクリプト
Purchases:
Load
If(amount<2000,'Small Purchase','Large Purchase') as OrderSize,
* inline
[
ID, amount
1,2660.39
2,100.01
3,500.42
4,5023.99
5,0.04
6,2002.39
7,31034.53
8,1643.58
9,3993.65
10,614.34
11,675.93
]
WHERE
amount>1
;
コードをクリップボードにコピーします
結果
結果テーブル
1
2660.39
Large Purchase
2 100.01 Small Purchase 3 500.42 Small Purchase 4 5023.99 Large Purchase 6 2002.39 Large Purchase 7 31034.53 Large Purchase 8 1643.58 Small Purchase 9 3993.65 Large Purchase 10 614.34 Small Purchase 11 675.93 Small Purchase
上のテーブルでは、5 の ID のトランザクションがテーブルにロードされませんでした。これは、amount の値が 0.05 ドル未満だからです。
例 - インライン テーブルで null 値を作成する
この例は、NullInterpret 変数を使用して、インライン データで null 値を作成できる方法を示しています。
NullInterpret
ロード スクリプトと結果
概要
この例のスクリプトには、次の要素が含まれています。
ロード スクリプト
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
コードをクリップボードにコピーします
結果
上のテーブルでは、最初のレコードが null 値です。そのため、ビジュアライゼーションには含まれません。追加の軸を持ちこのテーブルに存在する null 値は、- 記号で示されます。
その他の例
その他の例については、「 Load 」を参照してください。