Skip to content
Latchkey

データウェアハウスとは?集約された分析用ストレージの解説

データウェアハウスは、大量の構造化されクレンジングされたデータに対する高速な分析クエリに最適化された、集約されたストレージです。

データウェアハウスは、組織が質問に答えるためにデータを集約する場所です。多数の小さな書き込みにチューニングされたトランザクショナルデータベースとは異なり、ウェアハウスはレポートやダッシュボードを生成するために数百万行をスキャンする、大規模で読み取り主体の分析クエリにチューニングされています。

データウェアハウスとは

データウェアハウスは、多数のソースからの統合された構造化データを、分析に最適化されたスキーマで格納するシステムです。モダンなクラウドウェアハウス - Snowflake、BigQuery、Redshift - はストレージとコンピュートを分離し、カラムナストレージを使用することで分析クエリを高速にします。

ウェアハウスとトランザクショナルデータベース

トランザクショナル(OLTP)データベースはアプリケーションを支え、多数の小さな読み書きを処理します。ウェアハウス(OLAP)は分析のために構築されており、巨大なテーブル全体を集計する、より少なく大きなクエリを扱います。データはpipelineを通じて前者から後者へと流れます。

データがどのように入るか

生データはウェアハウスにロードされ、その後、通常はdbtのようなツールを使ったELTアプローチで、クレンジングされモデル化されたテーブルへと変換されます。その結果、アナリストやMLのfeature pipelineが信頼できる、階層化されたテーブル群が得られます。

ウェアハウスとCI

ウェアハウスのロジックはSQLモデルとしてバージョン管理に存在し、CIはそれらのモデルを本番テーブルに到達する前に一時的なスキーマに対してビルドおよびテストします。

Testing warehouse models in CI
steps:
  - run: dbt build --target ci      # build into a CI schema
  - run: dbt test --target ci       # validate before promote

Latchkeyに関する注記

ウェアハウスのCI jobはほぼSQLを発行するだけなので、コンピュートは軽い一方でネットワークの信頼性に敏感です。Latchkeyでは、auto-retryにより長時間のdbt buildが一時的なウェアハウス接続の不調を乗り越えられ、toolchainをcacheすることでjobの起動が高速に保たれます。

重要なポイント

  • データウェアハウスは、大量の構造化データに対する分析(OLAP)クエリに最適化された、集約されたストレージです。
  • 多数の小さな読み書きにチューニングされたトランザクショナルデータベースとは異なります。
  • ウェアハウスの変換はバージョン管理されたSQLとして存在し、本番に到達する前にCIでビルドおよびテストされます。

関連ガイド