2

イベントログからのデータをデータウェアハウスにロードし始めています。ファクトテーブルの行が1つのイベントを表す通常のスタースキーマがあります。ディメンションテーブルは、user_agent、ip、referal、pageなどの一般的な組み合わせです。1つのディメンションテーブルは次のようになります。

create table referal_dim(
  id integer,
  domain varchar(255),
  subdomain varchar(255),
  page_name varchar(4096),
  query_string varchar(4096)
  path varchar(4096)
)

IDを自動生成して、最終的にファクトテーブルに対して結合する場所。私の質問は、バルクロードプロセスで重複レコードを識別するための最良の方法は何ですか?永続ストアに実際に挿入する前に、ログファイルのすべてのレコードを一時テーブルにアップロードしますが、IDは自動インクリメントされるだけなので、2日間の2つの同一のdimレコードのIDは異なります。値の列のハッシュを作成して、それを比較しようとするのは適切でしょうか?各値の列を比較しようとすると時間がかかるようです。このような状況のベストプラクティスはありますか?

4

1 に答える 1

6

サロゲートPKの自動インクリメント整数は問題ありませんが、(キンボール氏によると)ディメンションテーブルにも自然キーが必要です。したがって、ハッシュNaturalKey列が適切であり、Status「現在」または「期限切れ」の列もSCDタイプ2を許可するのに役立つ場合があります。

于 2009-11-13T03:58:54.543 に答える