質問

イベントログからのデータをDataWarehouseにロードし始めています。 Factテーブルの列が1つのイベントを表す通常の星スキーマがあります。ディメンションテーブルは、user_agent、IP、参照、ページなどの典型的な組み合わせです。1つのディメンションテーブルは次のようになります。

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

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

役に立ちましたか?

解決

代理PKの自動インクリメント整数は問題ありませんが、(キンボール氏によると)寸法テーブルにも自然な鍵があるはずです。だからハッシュ NaturalKey 列は順調です Status 「電流」または「有効期限が切れる」の列は、SCDタイプ2を許可するのに役立つ場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top