2

私は初心者の開発者で、いくつかの異なる日付を持つデータベースを持っています。作成日 変換日 紛失日 変更日など

データは 1 つのアプリケーションで表示し、すべての日付でフィルター処理する必要があります。私は QlikView でコーディングしており、島を作成して日付を記入し、ネイティブのセット分析を使用してデータをフィルター処理することができましたが、これはパフォーマンスに大きな影響を与えています。

QlikView でコーディングしている人は、似たようなシナリオに出くわしますか?

4

2 に答える 2

4

実際、集合分析はパフォーマンスに大きな影響を与えます。QlikView の通常の「選択」機能を使用することをお勧めします。

以下の回答については、スター スキーマ開発の概念に精通していることを前提としています。つまり、ディメンション (選択フィールド) をファクト フィールド (カウンター フィールド、集計フィールドなど) から分離し、リンク テーブルを介して接続することを意味します。

次の 2 つのシナリオが考えられます。

1. 複数の日付が同じ事実に関連しています。

たとえば、販売に関係する実際の金額を含む「販売トランザクション」テーブルがあり、「販売日」だけでなく「支払い日」もあり、両方を選択したいとします。この場合、ユーザーが変換日、作成日などを選択するかどうかわからないため、複数の独立した日付を選択する必要があります。「日付アイランド」を異なるキー名で複製し、それをに接続する必要があります。トランザクション テーブルを 2 回。両方の日付プールは島ではなくなり、より適切には「カレンダー ディメンション」と呼ばれます。

2. 異なる日付は、異なる事実に関連しています。

この場合、1 つの「カレンダー ディメンション」を使用して、すべての日付フィールドに対応できます。カレンダーにオートナンバー キーを 1 つ作成し、それを呼び出すだけ%DateKeyです。このフィールドをカレンダー テーブルとリンク テーブルの間の接続にします。カレンダーで選択可能にしたい日付を持つすべてのファクト テーブルについて、Autonumber ハッシュに日付を含むキーを使用してリンクテーブルに接続するようにしてください。

于 2010-10-31T08:14:43.300 に答える
1

これと同じことを経験したことで、私が推奨するのは、以下の例のようなキー テーブルと呼ばれるものを作成することキーテーブルです。関係を保持し、セット分析をあまり使用する必要はありません。可能なすべての日付を含むテーブルを子テーブルの 1 つとして配置し、littlegreen が提案するような %DateKey を配置してください。

于 2011-12-22T16:28:20.347 に答える