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