インライン ロードを使用したデータのロード このページ上 表示するリンクを増やす
スクリプトにデータを手動で入力してインライン テーブルを定義し、アプリに読み込むことができます。データ ロード エディター でインライン ロードを操作できます。
インライン テーブルを作成するには、ファイルやデータベースに接続するのではなく、スクリプトにデータを手動で入力します。必要な構文を使用して、スクリプト テキストがインライン データとして解釈されることを示します。アプリがエクスポートされる場合、インライン ロードで追加されたデータはアプリに含まれます。インライン テーブルは、ロード スクリプト内で読み取りおよび編集可能です。
基本的なインライン ロードはテーブルを作成し、データ項目とレコードを挿入します。
データ ロード エディタでのインライン ロード
基本的な構文の例
次のスクリプトには、単純なインライン ロードが含まれています。
MyTable:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
上記のインライン ロードには、次の構文が使用されます。
Load * Inline は Qlik Sense に対して、後続のインライン テーブルからすべての項目をロードするように指示します。
MyTable: はテーブルの名前を定義します。アプリ内のテーブルのリストには、データ モデル ビューア などからアクセスできます。
角括弧でデータを囲みます。
Load ステートメントの最初の行は、データ項目を定義します。
コンマはデータ項目とレコードを区切ります。
セミコロンは Load ステートメントを閉じます。
インライン テーブルのロード 次の手順を実行します。
アプリで データ ロード エディター を開きます。
新しい行で、必要な構文を使用してテーブルを定義します。
基本的な構文の例
完了したら、データのロード をクリックします。
インライン ロードを使用する理由 インライン ロードは、次のようなさまざまなユース ケースで役立ちます。
外部ソースに接続する必要がなく、データを管理および編集できます。
データ モデル内の既存のデータを補足します。たとえば、主にデータベース ソースから得られるデータ モデルに追加のテーブルを追加できます。
外部ソースからの継続的なロードを避けたいデータを追加します。データ ソースが将来変更される可能性があるが、データ値は同じままであることがわかっている場合、これにより時間を節約できます。
他のファイルからコンテンツをコピーしてスクリプトに貼り付けるのが簡単です。たとえば、ワード プロセッサ ドキュメントの .csv ファイルや表などです。
すぐにコピーして貼り付けることができるテスト スクリプトを作成します。
構文の概要 テーブルの名前付け ロードされた他のテーブルの場合と同様に、インライン テーブルの名前を追加できます。テーブル名の定義はオプションです。
テーブル名の後にコロンを挿入します。
LOAD と inline ステートメントLOAD スクリプト ステートメントを使用すると、インライン テーブルが inline 句とともにロードされます。inline 句は、テーブル内の後続のテキストにエディターに手動で入力されたデータが含まれることを示します。特に指定しない限り、インライン テーブルでは区切りテキスト ファイルの構造に従う txt 形式が使用されます。
LOAD ステートメントの詳細については、「ロード 」を参照してください。
エンクロージャーとデータ入力inline 句を通じて入力されるデータは、特定の文字で囲む必要があります。データを囲むために使用できる文字の組み合わせは次のとおりです。
角括弧:[ および]
二重引用符:" および"
単一引用符:' および'
バックティック:` および`
エンクロージャーとして選択した文字は、競合する文字を含むインライン データをロードするのに役立ちます。たとえば、データに角括弧で囲まれたレコードが含まれている場合は、代わりに引用符またはバックティックで囲むことができます。
代替エンクロージャーの例については、「例 - 代替データ エンクロージャー 」を参照してください。
代替のテーブル形式 (デフォルトは txt ) を指定しない限り、エンクロージャー間のテキストはファイルの内容と同じように解釈されます。そのため、テキスト ファイル内で新しい行を挿入する場合は、inline 句のテキスト内でも新しい行を挿入する必要があります。つまり、スクリプトを入力するときに Enter キーを押します。
インライン ロードの終了 インライン ロード ステートメントの終わりはセミコロンで示されます。
Data transformation変換を行わない単純なインライン ロードでは、列の数は最初の行で定義されます。次の例でロードされるテーブルには 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 ステートメントを終了するセミコロンの前に追加する必要があります。追加できるカスタマイズには次のようなものがあります。
同じテーブル内で複数の書式指定アイテムを使用する場合は、カンマで区切ります。例: (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
例 - 代替区切り文字カンマ以外の文字を使用して、テーブル内の列の値を区切ることができます。詳細については、「インライン ロードでの書式指定の構成 」を参照してください。
ロード スクリプトと結果 概要
区切り文字の交換は、テーブル内のデータにカンマが含まれている場合に便利です。カンマが含まれていないと、テーブル内の次の列への切り替えの信号が送られてしまいます。
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
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');
結果
データをロードしてシートを開きます。4 つのテーブルを作成し、次のように軸を追加します。
Table1 : ID , Phrase
Table2 : Num1 , Chr1
Table3 : Num2 , Chr2
Table4 : Num3 , Chr3
結果テーブル: 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.
例 - インライン ロードと他のデータ ソースからのロードの混合 ロード スクリプトと結果 概要
次のスクリプトは、まずコネクタから一連の項目を読み込み、次に共通項目と追加項目を含むインライン テーブルをロードします。この新しい項目は、データ接続を通じてロードされなかった行項目に関する別のプロパティを提供します。これは、2 つのテーブル間に共通する項目名が 1 つある場合にのみスムーズに機能することに注意してください。共通の項目名が複数ある場合は、合成キーが生成されます。
この切り詰められた例では、データ接続から注文の詳細のテーブルをロードします。次に、インライン テーブルを使用して追加項目、Supplemental Info を追加します。これには、たとえば、特定の注文 ID に関する特別なコメントに関する詳細が含まれる場合があります。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Orders:
LIB CONNECT TO 'My_Generic_Connection';
LOAD PRODUCT_DIVISION_A_ORDER_ID as Order ID,
PRODUCT_DIVISION_A_ORDER_DATE as ISSUE_KEY as Order Date,
PRODUCT_DIVISION_A_TYPE as Product Type,
PRODUCT_DIVISION_A_SALES_MANAGER as Manager,
PRODUCT_DIVISION_A_SHIPPED_STATUS as Shipped Status;
SELECT PRODUCT_DIVISION_A_ORDER_ID,
PRODUCT_DIVISION_A_ORDER_DATE,
PRODUCT_DIVISION_A_TYPE,
PRODUCT_DIVISION_A_SALES_MANAGER,
PRODUCT_DIVISION_A_SHIPPED_STATUS
FROM SourceTable
WITH PROPERTIES (
[...]
);
Orders_Inline_Info:
load * inline [
Order ID,Supplemental Info
PSF-001014,'Bulk order, pending deal with Paracel.'
PSF-001625,'NOTE: Product damaged. Investigation required.'
];
結果
データをロードした後、次の軸をテーブルに追加するとします。
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
結果のチャートは次のようになります。
結果テーブル: Orders PSF-000998 1/13/2024 Electronics Amanda Honda Shipped - PSF-000999 1/15/2024 Automotive Molly McKenzie Not Shipped - PSF-001014 1/17/2024 Home Appliances Amalia Craig Undefined Bulk order, pending deal with Paracel. PSF-001625 1/21/2024 Electronics Amanda Honda Undefined Product damaged. Investigation required.
両方のテーブルのすべての項目を同じビジュアライゼーションにどのように追加できるかに注目してください。テーブルはデータ モデル内で互いに関連付けられています。
例 - 列ヘッダーの省略書式指定を編集して、列ヘッダーを定義せずにインライン テーブルをロードします。これは 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 を定義するインライン ロード ステートメント。 (Table format 仕様の一部として) fix を使用して、ロードするデータが固定レコード形式であることを示します。 ロード スクリプト
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 のレコードには複数行のコンテンツが含まれています。
例 - 変換を伴うインライン ロードこれらの例は、インラインでロードされた項目に対して計算を実行して、データ モデルに新しい項目を作成する方法を示しています。
詳細については、「Data transformation 」を参照してください。
例: 項目の単純な名前変更 概要
データ ロード エディター を開き、次のロード スクリプトを新しいタブに追加します。
ロード スクリプト
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'
];
結果
データをロードしてシートを開きます。3 つのテーブルを作成し、次のように軸を追加します。
DerivedYears1 : initial_date1 , derived_year1
DerivedYears2 : initial_date2
DerivedYears3 : initial_date3 , derived_year3
結果テーブル: 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}
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: ProductName_Trimmed 。
結果テーブル Soft Drinks And Other Beverages Snack Food Electronics And Video Games
例 - 変換と句の演算子演算子を使用して、LOAD ステートメント内の変換と特定の句を定義できます。詳細については、「演算子とその他の句 」を参照してください。
演算子
ロード スクリプトと結果 概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
Purchases テーブルを定義するための単純なインライン ロード。
計算された項目 (OrderSize ) の挿入。この項目は、インライン データセットの amount 項目を変換したものです。金額が $2000.00 を超えるかどうかに応じて、購入を小規模または大規模に分類します。
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>0.05
;
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
結果テーブル 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 ];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します: Test 。
上のテーブルでは、最初のレコードは null 値です。したがって、ビジュアライゼーションには含まれていません。追加の軸を持つテーブルに存在する null 値は、- 記号で示されます。
他の例 追加の例については、「ロード 」を参照してください。