回答:
分析するプロセスまたはイベントについて考えてください。
Lougle Analytics を構築していて、サイトへの訪問(単一ページのリクエストではなく)を分析するとします。Webサイトへのアクセスはプロセスです。
ファクトテーブルは、解析したいプロセスまたはイベントを表し、この場合には、サイト訪問のリストです。ファクトテーブルは、プロセスまたはイベントごとに1つずつ持つことができます。
サイト訪問の分析に役立つものは何ですか?
技術的には、Excelの場合と同様に、これらすべてを1つのテーブルに入れることができますが、これは非常に速く、非常に速くなるため、1レベルの正規化を行います。次元設計は、多くの場合、「分析に必要なものをすべて1つの大きなテーブルに入れて」から、1レベルを正規化するだけです。
したがって、ファクトテーブルは次のようになります。
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
他の表†の値を参照するキー値の束と、2つの非キーがあります。非キーは数値であり、Measuresと呼ばれます。あなたはウェブブラウザのブランド名の平均を取ることができますか?いいえ、それは次元です。訪問期間の平均を取ることができますか?はい、それは測定です。
他のテーブルはディメンションテーブルと呼ばれ、ip_address
ディメンションテーブルは次のようになります。
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
正規化されていないことに注意してください。国は都市(地域)から派生する可能性があります。ただし、データウェアハウスでは、最初に分析を容易にすることが重要です。分析を容易にするということは、深い結合を避けることを意味します。
ディメンションテーブルのデータの一部は階層的であることに注意してください:国>部門>地域。OLAPサーバーは(できれば)階層を理解してドリルダウン操作をサポートします。
論理キューブは、作業しているディメンションとメジャーの単なるコレクションです。ルービックキューブとは異なり、3つ以上の次元を持つことができます。ディメンションをデータセットの列と考えてください。
OLAPは、ピボット、スライス、ダイシング、ドリルなどのデータセットに対して実行できる一連の操作です。Excelのピボットテーブルを考えてください。アンOLAP Serverは、 OLAP操作を容易にします。
†通常、外部キーなし
下の画像は、基本的なスタースキーマの例です。ディメンションはDim_Tablesです。
これらは通常、データの分析に使用する値です。そのため、特定の期間における特定の国での特定の製品の売上高を確認する必要があります。
fact_salesテーブルには、Units_Soldという1つのメジャーのみがあります。
メジャー(最も単純なレベル)は、ディメンションの条件に基づいて分析するときに集約するものです。
あなたが知りたいより具体的な何かがあれば、私に知らせてください。
city
あなたのスキーマにaの言及がないので、あなたが言っているcountry could be derived from city
ことはあなたが言っていることを肯定的ではありません。