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

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

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

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

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

Orders data table
OrderID OrderDate ShipperID Freight CustomerID
12987 2007-12-01 1 27 3
12988 2007-12-01 1 65 4
12989 2007-12-02 2 32 2
12990 2007-12-03 1 76 3
Customers data table
CustomerID Name Country ...
1 DataSales Spain ...
2 BusinessCorp Italy ...
3 TechCo Germany ...
4 Mobecho France ...

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

Country mapping table
CustomerID Country
1 Spain
2 Italy
3 Germany
4 France

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

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

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

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

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

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

Result mapping table
OrderID OrderDate ShipperID Freight CustomerID Country
12987 2007-12-01 1 27 3 Germany
12988 2007-12-01 1 65 4 France
12989 2007-12-02 2 32 2 Italy
12990 2007-12-03 1 76 3 Germany

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

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

分析の近代化プログラムに参加する

Remove banner from view

分析最新化プログラムにより、重要な QlikView app を危険にさらすことなく最新化しましょう。 ここをクリック して詳細を表示するか、次にお問い合わせください。 ampquestions@qlik.com