メイン コンテンツをスキップする 補完的コンテンツへスキップ

結合の代替としてのマッピング

Qlik SenseJoin プレフィックスは、データ モデルで複数のデータ テーブルを組み合わせる強力な方法です。

ただし、組み合わされたテーブルが大きくなり、パフォーマンスに問題が生じる可能性があるという欠点もあります。そこで、別のテーブルから単一の値を探す必要がある場合など、Join の代わりにマッピングを使用することができます。結合ではテーブルのレコード数が変わるため、計算のスピードダウンとエラーの原因になる可能性がある不要なデータのロードを回避できます。

マッピング テーブルは、比較項目 (入力) とマッピング値項目 (出力) という 2 つの列で構成されます。

この例では注文テーブル (Orders), を使用しており、顧客の国を把握する必要があります。この情報は、顧客テーブル (Customers) に保管されています。

Orders データ テーブル
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Customers データ テーブル
CustomerID名前...
1DataSalesSpain...
2BusinessCorpItaly...
3TechCoGermany...
4MobechoFrance...

顧客の国 (Country) を見つけるには、以下のようなマッピング テーブルが必要です。

マッピング テーブル
CustomerID
1Spain
2Italy
3Germany
4France

MapCustomerIDtoCountry という名前を付けたマッピング テーブルは、以下のようにスクリプトで定義されます。

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

次に、注文テーブルをロードする際に、ApplyMap 関数を使用してマッピングを適用します。

Orders: LOAD *, ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country From Orders ;

ApplyMap 関数の 3 番目のパラメータは、マッピング テーブルで値が見つからない場合に何を返すのか定義するために使われます。この例では、Null() です。

この結果、テーブルは次のようになります。

結果テーブル
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273Germany
129882007-12-011654France
129892007-12-022322Italy
129902007-12-031763Germany

詳細を見る

 

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。