私たちは銀行のデータ ウェアハウスに取り組んでおり、ステージング テーブル、スター スキーマ、ETL の標準的な Kimball モデルにほぼ従っており、プロセスを通じてデータを取得しています。
Kimball は、データをスター スキーマに入れる準備が整うまで、インポート、クリーニング、処理などすべてにステージング領域を使用することについて話しています。実際には、これは通常、ほとんどまたはまったく変更せずにソースから一連のテーブルにデータをアップロードし、その後、必要に応じて中間テーブルを介してスター スキーマに入る準備ができるまでデータを取得することを意味します。これは単一のエンティティにとっては大変な作業であり、単一の責任はありません。
私が取り組んできた以前のシステムでは、さまざまなテーブル セットが次のように区別されていました。
- テーブルのアップロード: 未加工のソース システム データ、未変更
- ステージング テーブル: 中間処理、型付けおよびクレンジング
- 倉庫テーブル
これらを個別のスキーマに貼り付けて、アーカイブ/バックアップ/セキュリティなどに異なるポリシーを適用できます。他の人の 1 人は、StagingInputとStagingOutputがあるウェアハウスに取り組んでいます。同様の話です。チームは全体として、データ ウェアハウスとその他の両方で多くの経験を積んでいます。
しかし、これらすべてにもかかわらず、Kimball と Web を調べてみると、ステージング データベースに何らかの構造を与えることについて、まったく何も書かれていないようです。キンボール氏が私たち全員に、この巨大で深く暗い構造化されていないデータのプールであるステージングを使用させようとしていると信じることは許されるでしょう。
もちろん、ステージング領域に構造を追加したい場合にどうすればよいかは明らかですが、それについて何も書かれていないように見えるのは非常に奇妙に思えます。
それで、そこにいる他のみんなは何をしているのですか?ステージングは、構造化されていない大きな混乱にすぎないのでしょうか?それとも、人々はいくつかの興味深いデザインを持っているのでしょうか?