データウェアハウスとは?集約された分析用ストレージの解説
データウェアハウスは、大量の構造化されクレンジングされたデータに対する高速な分析クエリに最適化された、集約されたストレージです。
データウェアハウスは、組織が質問に答えるためにデータを集約する場所です。多数の小さな書き込みにチューニングされたトランザクショナルデータベースとは異なり、ウェアハウスはレポートやダッシュボードを生成するために数百万行をスキャンする、大規模で読み取り主体の分析クエリにチューニングされています。
データウェアハウスとは
データウェアハウスは、多数のソースからの統合された構造化データを、分析に最適化されたスキーマで格納するシステムです。モダンなクラウドウェアハウス - Snowflake、BigQuery、Redshift - はストレージとコンピュートを分離し、カラムナストレージを使用することで分析クエリを高速にします。
ウェアハウスとトランザクショナルデータベース
トランザクショナル(OLTP)データベースはアプリケーションを支え、多数の小さな読み書きを処理します。ウェアハウス(OLAP)は分析のために構築されており、巨大なテーブル全体を集計する、より少なく大きなクエリを扱います。データはpipelineを通じて前者から後者へと流れます。
データがどのように入るか
生データはウェアハウスにロードされ、その後、通常はdbtのようなツールを使ったELTアプローチで、クレンジングされモデル化されたテーブルへと変換されます。その結果、アナリストやMLのfeature pipelineが信頼できる、階層化されたテーブル群が得られます。
ウェアハウスとCI
ウェアハウスのロジックはSQLモデルとしてバージョン管理に存在し、CIはそれらのモデルを本番テーブルに到達する前に一時的なスキーマに対してビルドおよびテストします。
steps:
- run: dbt build --target ci # build into a CI schema
- run: dbt test --target ci # validate before promoteLatchkeyに関する注記
ウェアハウスのCI jobはほぼSQLを発行するだけなので、コンピュートは軽い一方でネットワークの信頼性に敏感です。Latchkeyでは、auto-retryにより長時間のdbt buildが一時的なウェアハウス接続の不調を乗り越えられ、toolchainをcacheすることでjobの起動が高速に保たれます。
重要なポイント
- データウェアハウスは、大量の構造化データに対する分析(OLAP)クエリに最適化された、集約されたストレージです。
- 多数の小さな読み書きにチューニングされたトランザクショナルデータベースとは異なります。
- ウェアハウスの変換はバージョン管理されたSQLとして存在し、本番に到達する前にCIでビルドおよびテストされます。