私は初心者の開発者で、いくつかの異なる日付を持つデータベースを持っています。作成日 変換日 紛失日 変更日など
データは 1 つのアプリケーションで表示し、すべての日付でフィルター処理する必要があります。私は QlikView でコーディングしており、島を作成して日付を記入し、ネイティブのセット分析を使用してデータをフィルター処理することができましたが、これはパフォーマンスに大きな影響を与えています。
QlikView でコーディングしている人は、似たようなシナリオに出くわしますか?
私は初心者の開発者で、いくつかの異なる日付を持つデータベースを持っています。作成日 変換日 紛失日 変更日など
データは 1 つのアプリケーションで表示し、すべての日付でフィルター処理する必要があります。私は QlikView でコーディングしており、島を作成して日付を記入し、ネイティブのセット分析を使用してデータをフィルター処理することができましたが、これはパフォーマンスに大きな影響を与えています。
QlikView でコーディングしている人は、似たようなシナリオに出くわしますか?
実際、集合分析はパフォーマンスに大きな影響を与えます。QlikView の通常の「選択」機能を使用することをお勧めします。
以下の回答については、スター スキーマ開発の概念に精通していることを前提としています。つまり、ディメンション (選択フィールド) をファクト フィールド (カウンター フィールド、集計フィールドなど) から分離し、リンク テーブルを介して接続することを意味します。
次の 2 つのシナリオが考えられます。
1. 複数の日付が同じ事実に関連しています。
たとえば、販売に関係する実際の金額を含む「販売トランザクション」テーブルがあり、「販売日」だけでなく「支払い日」もあり、両方を選択したいとします。この場合、ユーザーが変換日、作成日などを選択するかどうかわからないため、複数の独立した日付を選択する必要があります。「日付アイランド」を異なるキー名で複製し、それをに接続する必要があります。トランザクション テーブルを 2 回。両方の日付プールは島ではなくなり、より適切には「カレンダー ディメンション」と呼ばれます。
2. 異なる日付は、異なる事実に関連しています。
この場合、1 つの「カレンダー ディメンション」を使用して、すべての日付フィールドに対応できます。カレンダーにオートナンバー キーを 1 つ作成し、それを呼び出すだけ%DateKey
です。このフィールドをカレンダー テーブルとリンク テーブルの間の接続にします。カレンダーで選択可能にしたい日付を持つすべてのファクト テーブルについて、Autonumber ハッシュに日付を含むキーを使用してリンクテーブルに接続するようにしてください。
これと同じことを経験したことで、私が推奨するのは、以下の例のようなキー テーブルと呼ばれるものを作成することです。関係を保持し、セット分析をあまり使用する必要はありません。可能なすべての日付を含むテーブルを子テーブルの 1 つとして配置し、littlegreen が提案するような %DateKey を配置してください。