データ モデリングのベスト プラクティス

Qlik Sense アプリへのデータ ロード方法は、データ構造や希望するデータ モデルによって異なります。このセクションでは、こうしたデータ ロード方法について説明します。

データ列を行に変える

次のようなデータがあり、売上高を別個の項目にする場合:

元のデータ テーブル
Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

テーブルをロードするときに、Crosstable プレフィックスを使用します。

結果は次のようになります。

Crosstable プレフィックスを適用した後のテーブル
Year Quarter Sales
2013 Q1 34
2013 Q2 54
2013 Q3 53
2013 Q4 52
2014 Q1 47
... ... ...

Crosstable の詳細については、「データ ロード スクリプトでのクロス集計の使用」および「Crosstable」を参照してください。

データ行を項目に変える

次のような 3 つの項目を持つ汎用テーブルがあり、各属性を個別のテーブルにする場合:

3 つの項目を含む Generic テーブル
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

Proposed action  

[Generic] ロード プレフィックスを使用して汎用データ モデルを作成します。

次のようなデータ モデルを取得します。

Generic data model.

汎用データの詳細については、「汎用データベース」および「Generic」を参照してください。

階層レベルに整理されたデータ (組織図など) をロードする

次のような隣接するノード テーブルにデータが格納されている場合:

隣接するノード テーブル
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Hierarchy プレフィックスを使用してデータをロードし、展開ノード テーブルを作成します。

展開されたノード テーブル
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
2 1 Country manager General manager Country manager -
3 2 Region manager General manager Country manager Region manager

階層レベルの詳細については、「階層データのロード」および「Hierarchy」を参照してください。

大きなデータベースから新しいレコードや更新されたレコードのみをロードする

多数のレコードを含むデータベースがあり、アプリでデータを更新するためにデータベース全体はリロードしたくありません。新しい、または更新されたレコードのみをロードし、データベースから削除されたレコードを除去したいと思っています。

Proposed action  

QVD ファイルを使用して、増分ロード ソリューションを実装します。

詳細については、「増分ロードにより新規および更新された記録をロード」を参照してください。

共通項目を持つ 2 つのテーブルのデータを結合する

Qlik Sense は自動的に共通項目をテーブルに関連付けるが、テーブルの結合方法を制御する必要がある場合、

Proposed action : Join / Keep

Join または Keep プレフィックスを使用して 2 つのテーブルを 1 つの内部テーブルに結合できます。

詳細については、「Join と Keep を使用したテーブルの結合」を参照してください。

Proposed action : マッピング

テーブルを結合する代わりにマッピングを使用して、マッピング テーブルに関連付けられた値の検索を自動化します。これにより、ロードするデータ量を減らすことができます。

詳細については、「結合の代替としてのマッピング」を参照してください。

不連続値を間隔に一致させる

1 つの不連続数値のテーブル (Event) があり、これを 1 つ以上の間隔 (Start End) に一致させる場合、

離散数値のテーブル (Event)
Time Event (イベント) コメント
00:00 0 シフト 1 の開始
01:18 1 ラインの停止
02:23 2 ラインの 50% の再開
04:15 3 ライン速度 100%
08:00 4 シフト 2 の開始
11:43 5 稼働の終了
間隔が含まれているテーブル (Start および End)
開始 End 順序
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

IntervalMatch プレフィックスを使用して、Time 項目を Start End で定義される間隔にリンクします。

詳しくは「不連続データと間隔の一致」を参照してください。

間隔の開始と終了が明示的に定義されていない場合は、次の表のようにタイム スタンプのみを変更して間隔テーブルを作成する必要があります。

変更の日付と時刻を含むテーブル
通貨 データの変更 Rate
EUR - 8.59
EUR 28/01/2013 8.69
EUR 15/02/2013 8.45
USD - 6.50
USD 10/01/2013 6.56
USD 03/02/2013 6.30

詳細については、「単一の日付からの日付間隔の作成」を参照してください。

不一致項目値を処理する

データに、異なるテーブル間で名前が一致しない項目値が含まれる場合例えば、あるテーブルには国の値 US が、別のテーブルには United States が含まれます。関連付けが阻止されます。

テーブル 1
地域
米国 メリーランド
米国 アイダホ
米国 ニューヨーク
米国 カリフォルニア
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

マッピング テーブルを使用してデータ クレンジングを実行することで、項目値を比較して正しく関連付けることができます。

詳しくは「データ クレンジング」を参照してください。

不一致の項目値の大文字の処理

自分のデータに、テーブル間で書式設定が整合していない項目値が含まれているとします。例えば、あるテーブルのTypeにはsingleという値が含まれており、別のテーブルの同じ項目にはSingleという値が含まれているとします。この状況では、Type項目にsingleSingleの値の両方が含まれており、大文字と小文字の違いがあるため、関連付けが妨げられます。

テーブル 1
タイプ 価格
単色 23
2 色 39
テーブル 2
タイプ
単色 赤色
単色
2 色 白色
2 色 ブラック

Proposed action  

[データの追加] でデータをロードした場合は、この問題をデータ マネージャーで修正できます。

次の手順を実行します。

  1. データ マネージャーのテーブル エディタで、Table2を開きます。
  2. Type項目の名前をTable2.Typeに変更します。

    データ プロファイリングを有効にして、[データの追加] で単にテーブルを追加した場合は、自動関連付けが行われないようにするため、その項目にはTable2.Typeという名前がすでに付けられています。この場合は、次の手順によって 2 つのテーブルが関連付けられます。

  3. 数式 Lower(Table2.Type) を使用して計算項目を作成し、Type という名前を付けます。
  4. [データのロード] をクリックします。

これで、Table1Table2が項目Typeによって関連付けられます。この項目には、singledoubleのような小文字の値のみが含まれています。

大文字の部分が異なる値を使用する場合は、同様の手順で関連付けを行うことができますが、テーブルでは、同じ名前の項目を使用して関連付けが行われることに注意してください。

  • Single のようにすべての値を大 文字にする場合は、代わりに Table1 で計算された Type 項目を作成し、数式 Capitalize(Table1.Type) を使用します。
  • SINGLE のようにすべての値を大文字にする場合は、両方のテーブルで計算された Type 項目を作成し、それぞれのテーブルで数式 Upper(Table1.Type)Upper(Table2.Type) を使用します。

計算された項目の詳細については、「計算項目を使用する」を参照してください。

大文字化の詳細については、「Capitalize - スクリプトおよびチャート関数」、「Lower - スクリプトおよびチャート関数」、および「Upper - スクリプトおよびチャート関数」を参照してください。

地理空間データをロードしてマップのデータを可視化する

マップを使用して可視化するデータ (国別または店舗別の売上データなど) がある場合、マップ ビジュアライゼーションを使用するには、エリア データまたはポイント データをロードする必要があります。

Proposed action  

KML ファイルまたは Excel ファイルから、データ値の場所と一致するエリア データまたはポイント データをロードできます。また、実際のマップの背景もロードする必要があります。

詳細については、「ユーザー独自のマップ データのロード」を参照してください。