データ モデルの表示および変換
データ モデル ビューアーは、アプリのデータ構造の概要です。テーブルや項目に関する詳細なメタデータを表示できます。軸とメジャーをデータ項目から作成することもできます。
各データ テーブルはボックスとして表示され、各ボックスにはテーブル名とすべての項目が含まれています。テーブル間の関係は線で示されます (点線は循環参照を表しています)。テーブルまたは項目を選択すると関係がハイライトされるため、項目とテーブルの関連を一目で把握できます。] をクリックすると、特定のテーブルと項目を検索できます。
ズーム レベルは、 またはをクリックするか、
スライダーを使って変更できます。をクリックして、
ズーム レベルを 1:1 に復元します。
このプレビューを使うことで、テーブルや項目の内容を確認可能です。項目を選択した際に、軸とメジャーをアプリに追加することもできます。詳細については、「データ モデル ビューアでのテーブルおよび項目のプレビュー」を参照してください。
テーブルの移動
キャンバスにドラッグして、テーブルを移動できます。テーブルの位置は、アプリを保存する際に同時に保存されます。
テーブル レイアウト (位置およびサイズ) は、キャンバス右側の をクリックするとロックできます。テーブル レイアウトのロックを解除するには、
をクリックします。
ツールバーの の下にある次のオプションを使用して、自動的にレイアウトを調整することもできます。
UI 項目 | 名前 | 説明 |
---|---|---|
|
[グリッド レイアウト] | グリッド内でテーブルを調整します。 |
|
[自動レイアウト] | ウィンドウ内にテーブルが収まるように調整します。 |
|
[レイアウトの復元] | データ モデル ビューアーを最後に開いたときの状態にレイアウトを復元します。 |
テーブルのサイズ変更
テーブルの右下隅にある矢印を使用して、テーブルの表示サイズを調整できます。表示サイズは、アプリの保存時には保存されません。
また、ツールバーで表示サイズの自動変更オプションを使用することもできます。
UI 項目 | 名前 | 説明 |
---|---|---|
|
全て折りたたむ | テーブルを最小化して、テーブル名のみ表示します。 |
|
リンクされている項目を表示する | すべてのテーブル サイズを縮小し、テーブル名と他のテーブルに関連付けられた全項目を表示します。 |
|
すべてを展開 | すべてのテーブルを最大化し、テーブルのすべての項目を表示します。 |
データ モデルのパフォーマンス
これらは、データ モデルのパフォーマンスに影響を与える可能性のあるインジケーターです。それぞれがアプリの使いやすさを向上させるベスト プラクティスです。
アクション | 説明 |
---|---|
合成キーを削除する |
Qlik Sense は、2 つ以上のデータ テーブルに 2 つ以上の共通の項目がある場合に合成キーを作成します。これは、スクリプトまたはデータ モデル にエラーがあることを意味する場合があります。 |
データ モデルから循環参照を削除する |
2 つの項目に複数の関連付けがある場合、循環参照が発生します。Qlik Sense は、いずれかのテーブルへの接続を変更することにより、これらを解決しようとします。ただし、循環参照の警告はすべて解決する必要があります |
データの粒度を適切にする |
必要なデータのみをロードする必要があります。例えば、ユーザーのグループに必要なのは、週、月、年で分割されたデータだけです。集約データをロードするか、ロード スクリプト内でデータを集約してメモリを節約できます。ユーザーがより細かいレベルでデータを視覚化する必要がある場合は、 |
可能な場合は QVDs を使用する |
|
QVD ファイルをロード時に最適化する |
最適化されたロードに関して、いくつかの制限があります。項目の名前は変更できますが、これらの操作はいずれも標準のロードとなります。
|
増分ロードを活用する |
継続的に更新される、データベースからの大量のデータにアプリが接続する場合、データ セット全体をリロードするには時間がかかります。代わりに、増分ロードを使用して、データベースから新しいレコードまたは変更されたレコードを取得する必要があります。 |
|
スノーフレーク データ モデルを使用している場合は、 |
項目の数が少ないテーブルを非正規化する |
項目が少ない 2 つのテーブルがある場合、それらを結合するとパフォーマンスが向上する可能性があります。 |
マッピング ロードがあるルックアップ (リーフ) テーブルを非正規化する |
1 つの項目をテーブルから別の項目に追加するだけでよい場合は、 |
日付項目からタイム スタンプを削除または分離する |
日付項目は、タイムスタンプが存在する場合、個別のタイム スタンプ値による大きな値と不必要な一意性によってスペースを埋めることができます。分析にタイム スタンプが不要な場合は、Date(Floor(YourDateField)) を使用してタイム スタンプを削除できます。タイムスタンプが必要な場合は、日付自体から切り離すことができます。同じ Floor() 関数を使用して、次の行に沿って何かを使用することにより、抽出されたタイムスタンプで新しい項目を作成できます。Time(Frac(Timestamp#(YourDateField,'MM/DD/YYYY h:mm:ss TT'))) |
データ モデルから不要な項目を削除する |
データ モデルに必要な項目のみをロードする必要があります。
|
大量のデータを処理するときにリンク テーブルを回避する |
可能な場合はリンク テーブルを使用してください。ただし、大量のデータを処理している場合、連結されたテーブルはリンク テーブルよりもパフォーマンスが高くなる可能性があります。 |
連結された軸を新しい項目に分割する |
連結された軸を別々の項目に分割する必要があります。これにより、項目内の値の一意の出現回数が減少します。これは、タイムスタンプを最適化する方法に似ています。 |
可能な場合は AutoNumber を使用する |
最適化されたロードを作成するには、QVD ファイルのデータをロードしてから、AutoNumber ステートメントを使用して値をシンボル キーに変換します。 |
データ アイランドを回避する |
データ アイランドは便利ですが、通常はパフォーマンスに影響します。選択値のアイランドを作成する場合は、変数を使用します。 |
QVD は増分時間枠に基づいて保存する |
QVD は毎月などのセグメントに格納する必要があります。これらの小さな月次 QVD は、すべてのデータを必要としない可能性がある多くの異なるアプリをサポートできます。 |
その他のベスト プラクティスについては、データ モデリングのベスト プラクティス を参照してください。