What is the medallion lakehouse architecture? | Databricks on AWS [2022/8/17時点]の記事です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
メダリオンアーキテクチャは、レイクハウスに格納されているデータの品質を示す一連のデータレイヤーを表現します。企業のデータプロダクトに対して信頼できる唯一の情報源(single source of truth)を構築するために、Databricksではマルチレイヤーのアプローチを取ることをお勧めしています。このアーキテクチャは、公立的な分析に最適化されたレイアウトでデータ格納される前の検証、変換を行う複数のレイヤーをデータが追加する際の、原子性、一貫性、分離性、耐久性を保証します。ブロンズ(生)、シルバー(検証済み)、ゴールド(拡張済み)という用語はそれぞれのレイヤーにおけるデータの品質を表現しています。
このメダリオンアーキテクチャは、他のディメンショナルモデリングの技術を置き換えるものではないことに注意することが重要です。それぞれのレイヤーのスキーマやテーブルは、データ更新の頻度や性質、後段でのデータのユースケースに応じて、様々な形態や正規化の度合いを選択することができます。
企業は組織内からアクセス可能な検証済みのデータセットを作成、維持するためにDatabricksレイクハウスを活用することができます。企業においてプロダクトとしてのデータを整理することにフォーカスしたマインドセットを持つことは、プロダクトとしてのデータデータレイクハウスの構築を成功させるキーのステップとなります。
生のデータをブロンズレイヤーに取り込む
ブロンズレイヤーには検証されていないデータが格納されています。ブロンズレイヤーに取り込まれるデータは通常は以下のようなものとなります。
- 生の状態のデータソースを維持します。
- インクリメンタルに追加され、時間と共に増加します。
- ストリーミングとバッチトランザクションの組み合わせとなる場合があります。
効率的なストレージフォーマットでデータセットごとに未処理の完全な状態で保持することで、特定のデータシステムの任意の状態を再作成することが可能となります。
検索可能性を強化したり、ソースデータセットの説明を追加したり、後段のアプリケーションのパフォーマンスを最適化するために、(ソースファイル名、処理時刻などの)追加のメタデータが取り込みの際に追加されることがあります。
シルバーレイヤーでデータの検証、重複排除を行う
ブロンズレイヤーでは、ほぼ生の状態でデータ履歴全体を格納しますが、シルバーレイヤーは後段の分析で信頼できる検証済みかつ補強されたバージョンのデータを表現していることを思い出してください。
Databricksはブロンズ、シルバー、ゴールドレイヤーによって推進されるレイクハウスビジョンを強く信頼していますが、シンプルにシルバーレイヤーを効率的に実装することで、即座にレイクハウスの潜在的なメリットを解放することになるでしょう。
いかなるデータパイプラインにおいても、シルバーレイヤーには1つ以上のテーブルが含まれます。
ゴールドレイヤーを用いて分析を強化する
このゴールドデータは、多くの場合は高度に洗練され集計され、分析、機械学習、プロダクションのアプリケーションを強化するデータを格納します。レイクアウスのすべてのテーブルは重要な目的に供するべきですが、ゴールドテーブルは単なる情報ではなく、知識へと変換されたデータを表現します。
アナリストは自身の主な責任によってゴールドテーブルに大きく依存していますが、顧客と共有されるデータがこのレベルで外部に格納されることはまず無いでしょう。
これらのテーブルに対するアップデートは、定期的にスケジュールされたプロダクションワークロードの一部として実行され、コストのコントロールの助けとなり、確立すべきサービスレベルアグリーメント(SLA)を実現します。
レイクハウスはにはデータウェアハウスで遭遇するかもしれないデッドロックの問題はありませんが、データリクエストにおけるクラウドの制限を回避するために、多くの場合ゴールドテーブルは異なるストレージコンテナに格納されます。
通常、データがゴールドレイヤーに書き込まれる前に集計、join、フィルタリングが適用されるので、ユーザーはゴールドテーブルにおいては低レーテンシーのクエリーパフォーマンスを体験することになります。