メイン コンテンツをスキップする
データの変換 #データの変換

このページ上

データの変換

データ ロード エディターでさまざまなテクニックを使って、データを変換および操作できます。

データ操作のメリットの 1 つは、ファイルからデータのサブセットのみをロードするという選択ができることです。つまり、テーブルからいくつかの列だけを選択してより効率的にデータを処理できます。また、データを複数回に渡りロードして、生データをいくつかの新しい論理テーブルに分化することもできます。さらに、複数のソースからデータをロードして、Qlik Sense にある 1 つのテーブルに結合することも可能です。

このトピックでは、まず Resident LOAD を使って、次に Preceding LOAD を使って、いくつかの基本的なデータ変換を実行します。

Resident LOAD

Resident ソース修飾子を LOAD ステートメントで使用すると、以前ロードしたテーブルからデータをロードできます。日付や数値の処理といった Qlik Sense 関数を使用するオプションがない場合でも、SELECT ステートメントを使用してロードされたデータで計算を行う場合に役立ちます。

この例では、Sales_Buckets という新しいテーブルを作成し、Resident LOAD を使って Table1 からデータをロードします。Sales_Buckets テーブルで、quantity_threshold という変数を作成し、Where ステートメントを使ってしきい値と一致するデータのみをロードします。

  1. Scripting Tutorial アプリでデータ ロード エディターを開きます。
  2. Sales タブをクリックします。
  3. 次の内容をスクリプトの最後に追加します。
  4. SET quantity_threshold = 12000;  Sales_Buckets:     LOAD     "Sales Qty" as "High_Quantity",     "Item Description" as "Item",     "Customer Number" as "Customer" Resident Table1 Where ("Sales Qty" > $(quantity_threshold)); 

    これで、スクリプトは次のようになります。

    Sales_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ

    Sales_Buckets という新しいテーブルを作成するスクリプトが表示されたロード スクリプト ウィンドウ。
  5. [データのロード] をクリックします。
  6. [データ モデル ビューア] を開きます。 指定した項目と設定したしきい値に従ってロードされたデータを使用して Sales_Buckets という新しいテーブルが作成されたことを確認できます。
  7. データ モデル ビューアー内の Sales_Buckets テーブル

    データ モデル ビューア内の Sales_Buckets テーブル。
  8. アプリのテーブルにデータを追加します。ItemCustomer を軸として追加します。Count で集計されるメジャーとして High-Quantity を追加し、再度 Sumで集計します。続いて、次の数式を指定した新しい列をメジャーとして追加します。
  9. = Sum(High_Quantity) / Count(High_Quantity)

    数式を指定した新しいメジャー

    数式を指定した新しいメジャー。

    テーブルを見ると、たとえば、Customer 10025737 から High Top Dried Mushrooms の大量の注文が 4 回あり、平均数量は 14,800 であることがわかります。項目でデータのソートを実行するには、[完了] をクリックして [編集] モードを終了します。

    大量に注文した顧客を示すテーブル

    大量に注文した顧客を示すテーブル。
  10. これで、この例を完了しました。quantity_threshold 変数と Sales_Buckets テーブルのスクリプトをコメント アウトしてください。
  11. スクリプトの最後は次のようになります。

    コメント アウトされたスクリプト

    コメント アウトされたスクリプト。

先行する LOAD

先行する LOAD を使用すると、変換を実行してフィルターを適用し、1 つのパスでデータをロードできます。基本的に、これは以下の LOAD または SELECT ステートメントからロードする LOAD ステートメントのことで、通常指定する FromResident などのソース修飾子を指定せずに実行します。この方法では、LOAD ステートメントをいくつでもスタックできます。ステートメントの評価は、最下部のステートメントから順番に、上に向かって実行されます。

このチュートリアルで前述したように、LOAD および SELECT ステートメントを使用して、データを Qlik Sense にロードできます。各ステートメントは、1 つの内部テーブルを生成します。LOAD はファイルまたはインライン テーブルから、SELECT はデータベースからデータをロードする際に使用します。このチュートリアルでは、ファイルからロードしたデータを使用しました。この例では、インライン テーブルを使用します。ただし、SELECT ステートメントの前に先行する LOAD を使用し、データを操作できる点は注目に値します。基本は、今回説明する LOAD の使用と同じです。

この例は、このチュートリアルでロードしているデータには関連していません。先行する LOAD がどのように見えるかを示す目的のみに使用されています。データ ロード エディターで、Transactions というインライン テーブルを作成します。日付の変換は先行する LOAD で実行され、 transaction_date という新しい項目が作成されます。この項目は sale_date 項目から作成されます。

  1. 新しいアプリを作成し、ReformatDate という名前を付けます。
  2. データ ロード エディターを開き、TransactionData という新しいタブを作成します。
  3. 次のスクリプトを追加します。
  4. Transactions:  Load *, Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date; Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code  3750, 20180830, 23.56, 2, 2038593, L, Red  3751, 20180907, 556.31, 6, 203521, m, orange  3752, 20180916, 5.75, 1, 5646471, S, blue  3753, 20180922, 125.00, 7, 3036491, l, Black  3754, 20180922, 484.21, 13, 049681, xs, Red  3756, 20180922, 59.18, 2, 2038593, M, Blue  3757, 20180923, 177.42, 21, 203521, XL, Black ];

    これで、スクリプトは次のようになります。

    先行する LOAD を記述したロード スクリプト

    先行する LOAD を記述したロード スクリプト。
  5. [データのロード] をクリックします。
  6. [データ モデル ビューア] を開きます。 Transactions テーブルを選択して展開します。先行する LOAD ステートメントで * で指定されたとおり、すべての項目がロードされたことを確認できます。transaction_date という新しい項目が作成されました。この項目は、日付の書式が再設定されています。
  7. データ モデル ビューア内の transaction_date という新しい項目

    データ モデル ビューア内の transaction_date という新しい項目。