メイン コンテンツをスキップする

スクリプト構文とデータ構造を理解する

このページ上

関連する学習

スクリプト構文とデータ構造を理解する

抽出、変換、ロード

一般的に、アプリにデータをロードする方法は、抽出、変換、ロードプロセスで説明できます。

  • 抽出

    最初のステップは、データ ソース システムからのデータ抽出です。スクリプトで、SELECT または LOAD ステートメントを使用してこれを定義します。この 2 つのステートメントには、以下のような違いがあります。

    • SELECT は、ODBC データ ソースあるいは OLE DB プロバイダからのデータ選択に使用します。SELECT SQL ステートメントは、Qlik Sense ではなく、データ プロバイダによって評価されます。
    • LOAD は、ファイルのデータやスクリプトで定義されたデータ、以前にロードされたテーブル、ウェブページ、後続の SELECT ステートメントの結果からロードされたデータ、または自動的に生成されたデータのロードに使用します。
  • 変換

    変換段階では、スクリプト関数とルールを使用してデータを操作し、目的のデータ モデル構造を取得します。標準的な操作は以下のとおりです。

    • 新しい値の計算
    • コード化された値の変換
    • 項目名の変更
    • テーブルの結合
    • 値の集計
    • ピボット化
    • データ検証
  • ロード

    最後のステップで、アプリに定義したデータ モデルをロードするスクリプトを実行します。

Your goal should be to create a data model that enables efficient handling of the data in Qlik Sense. Usually this means that you should aim for a reasonably normalized star schema or snowflake schema without any circular references, that is, a model where each entity is kept in a separate table. In other words a typical data model would look like this:

  • a central fact table containing keys to the dimensions and the numbers used to calculate measures (such as number of units, sales amounts, and budget amounts).
  • surrounding tables containing the dimensions with all their attributes (such as products, customers, categories, calendar, and suppliers).
注: In many cases it is possible to solve a task, for example aggregations, either by building a richer data model in the load script, or by performing the aggregations in the chart expressions. As a general rule, you will experience better performance if you keep data transformations in the load script.
ヒント: It's good practice to sketch out your data model on paper. This will help you by providing structure to what data to extract, and which transformations to perform.

データ ロードのステートメント

データは、LOAD または SELECT ステートメントによりロードされます。各ステートメントは、1 つの内部テーブルを生成します。テーブルは常にデータのリストとして表示されます。各レコード (行) には、オブジェクト タイプの新しいインスタンス、各項目 (列) には、オブジェクトの特定の属性またはプロパティが含まれます。

この 2 つのステートメントには、以下のような違いがあります。

  • SELECT は、ODBC データ ソースあるいは OLE DB プロバイダからのデータ選択に使用します。SELECT SQL ステートメントは、Qlik Sense ではなく、データ プロバイダによって評価されます。
  • LOAD は、ファイルのデータやスクリプトで定義されたデータ、以前にロードされたテーブル、ウェブページ、後続の SELECT ステートメントの結果からロードされたデータ、または自動的に生成されたデータのロードに使用します。

ルール

以下の規則はデータを Qlik Sense にロードする際に適用されます。

  • Qlik Sense では、LOAD ステートメントで生成されるテーブルと SELECT ステートメントで生成されるテーブルに違いはありません。つまり、複数のテーブルをロードする場合、LOADSELECT のいずれか一方のステートメントを使用するか、これら 2 つを組み合わせて使用するかは問題にはなりません。
  • Qlik Sense ロジックでは、ステートメント内またはデータベース内の元のテーブルの項目の順序は任意です。
  • 項目名は、項目を識別したり、関連付けを作成する処理で使用されます。項目名には大文字と小文字の区別があり、そのために項目名を変更する必要がしばしば生じます。

スクリプトの実行

典型的な LOAD または SELECT ステートメントでは、イベントの順序は概ね次のようになります。

  1. 数式の評価
  2. as による項目名の変更
  3. alias による項目名の変更
  4. 項目名の修飾
  5. 項目名が一致する場合はデータのマッピング
  6. 内部テーブルへのデータの保存