メインコンテンツまでスキップ

フェーズ6: Delta Lake建築設計

このフェーズでは、レイクハウスのDelta Lakeストレージ アーキテクチャとデータ編成パターンを設計します。

デザイン メダリオンアーキテクチャ

メダリオンアーキテクチャは、データを階層化することで、パイプラインを通過する際のデータ品質を向上させます。このパターンは、適切に構造化されたレイクハウスを構築するための基本です。

最も単純な形式では、メダリオン アーキテクチャは、ブロンズ レイヤー (生データ)、シルバー レイヤー (洗練されたデータ)、およびゴールド レイヤー (ビジネス対応データ) の 3 つのレイヤーで構成されます。

ブロンズレイヤー (生データ)

ソースデータをレイクハウスの第1層に取り込み、そこに永続化します。すべてのダウンストリーム データがブロンズ レイヤーから作成されると、必要に応じてこのレイヤーから後続のレイヤーを再構築できます。

ブロンズレイヤーの特徴

  • 真実のソース : ソース システムから届いたそのままの生データ。
  • 最小限の変換 :データは元の形式で保存される(または監査可能性のためにDeltaに変換される)。
  • 不変 :データは追記専用であり、更新または削除されることはありません。
  • スキーマ・オン・リード :多様なソースシステムに対応した柔軟なスキーマ処理。
  • 監査証跡 :一部のアプリケーション( GDPRや規制対象データなど)では、このレイヤーをDelta形式に変換することが適切な場合があります。

ブロンズレイヤーのベストプラクティス

  • 完全な監査可能性を確保するため、すべてのソースデータフィールドを保存してください。
  • 生のファイルを格納するには、 Unity Catalogボリュームを使用してください。
  • 全面的な再処理を避けるため、段階的なデータ取り込みを実装してください。
  • 効率的なデータ管理のために、取り込み日ごとにパーティション化します。
  • データソースとデータ取り込みスケジュールを文書化する。

シルバーレイヤー(リファインデータ)

第2層の目的は、クレンジング、精製、フィルタリング、および集約されたデータを保持することです。

シルバーレイヤーの特徴

  • データ品質 :重複データの削除、欠損値の処理、スキーマの強制。
  • データ拡充 :複数のソースからのデータを結合して、統合データセットを作成します。
  • 標準化 :一貫したデータ型、フォーマット、および命名規則を適用する。
  • ビジネスルール :検証ルールとビジネスロジックを実装します。
  • アナリティクスに役立ちます : レポート、ダッシュボード、機械学習の基盤。

シルバーレイヤーのベストプラクティス

  • データ品質チェックとモニタリングを実施する。
  • シルバーレイヤーデータにはUnity Catalogマネージドテーブルを使用します。
  • ビジネスディメンション(例:日付、地域、製品)で分割します。
  • 文書変換ロジックとビジネスルール。
  • データの鮮度に関するSLA(サービスレベル契約)を確立する。

ゴールドレイヤー(ビジネスですぐに使えるデータ)

第3層は、ビジネスやプロジェクトのニーズに基づいて構築されます。これは、他の事業部門やプロジェクトに対してデータ製品として異なる視点を提供し、セキュリティ要件(例えば、匿名化データ)に合わせてデータを準備したり、パフォーマンスを最適化したり(例えば、事前集計されたビュー)します。

ゴールドレイヤーの特徴

  • ビジネス特化型 :特定のユースケースや顧客に合わせてカスタマイズされています。
  • パフォーマンス最適化済み :高速クエリのために事前集計および非正規化されています。
  • アクセス制御 :行レベルのセキュリティと列マスキングを実装します。
  • 消費者向け :BIツール、アプリケーション、機械学習モデル向けに構造化されています。
  • データ製品 :組織全体で再利用可能なデータセットとして公開されます。

ゴールドレイヤーのベストプラクティス

  • 異なる事業部門またはユースケースごとに、個別のゴールドテーブルを作成する。
  • 行レベルおよび列レベルのセキュリティには、動的ビューを使用します。
  • 頻繁にクエリされるテーブルには予測的最適化を実装します。
  • ドキュメントデータをブロンズからゴールドにリネージします。
  • 明確な所有権のもと、Unity Catalogを通じてデータ製品を公開します。

着陸地点の検討

大規模な組織のパイプラインには、クラウド上に追加のランディング ゾーンがあることがよくあります。 ランディング ゾーンは、ブロンズ レイヤーに取り込まれる前に、外部システムから生のファイルを受信します。

着陸地点パターン

  • クラウドオブジェクトストレージ :ファイルドロップには、S3、ADLS Gen2、またはGCSバケットを使用します。
  • Unity Catalogボリューム : Unity Catalogガバナンス機能により、POSIXスタイルの安全なファイルアクセスを実現します。
  • 第三者アクセス :外部システムはランディングゾーンに直接書き込むことができます。
  • 通知トリガー :イベント通知を使用して、データ取り込みパイプラインをトリガーします。

メダリオン アーキテクチャの包括的なガイダンスについては、 「メダリオン レイクハウス アーキテクチャとは何ですか?」を参照してください。 。

設計データ取り込み戦略

ブロンズレイヤーへのデータの取り込みは、メダリオンアーキテクチャの最初のステップです。 データソース、データ量、およびレイテンシ要件に基づいて、データ取り込み戦略を設計してください。

摂取方法

Lakeflowコネクト

LakeFlow Connectは、 Databricksが提供するマネージド データ取り込みサービスで、コードを 1 行も記述することなく、外部ソースからDatabricksにデータを定期的に同期できます。

パートナー向けデータ取り込みツール

Fivetranなどのツールは、 LakeFlow Connectでサポートされていないデータも取り込むことができます。 このような生の非構造化データは、(外部ロケーションではなく) Unity Catalogボリュームに保存する必要があります。

カスタム取り込みパイプライン

複雑な変換要件またはサポートされていないソースの場合は、 LakeFlow Spark宣言型パイプラインまたはノートブックを使用してカスタム取り込みパイプラインを構築します。

摂取パターン

バッチ取り込み

  • 定期的なデータ読み込みをスケジュール設定します(例:1時間ごと、1日ごと、1週間ごと)。
  • 大量の履歴データに最適です。
  • ストリーミング配信に比べてコストが低い。
  • 分析ワークロードにとって許容可能なレイテンシ。

ストリーミング取り込み

  • 低遅延での継続的なデータ取り込み。
  • ストリーミング ファイルの取り込みには、 Auto LoaderでLakeFlow Spark宣言型パイプラインを使用します。
  • 突然の分析と運用のユースケースに最適です。
  • コンピュートコストは高くなりますが、データは新鮮です。

チェンジデータキャプチャ(CDC)

  • ソースシステムからの段階的な変更をキャプチャして適用する。
  • 更新頻度の高い大規模なテーブルに効率的です。
  • データリネージと監査証跡を保存します。
  • LakeFlow ConnectおよびLakeFlow Spark宣言型パイプラインによってサポートされています。

データ取り込みのベストプラクティス

  • Bronze を取り込む前に生データをランディングするためにUnity Catalogボリュームを使用します。
  • 再試行を安全に処理するために、冪等なデータ取り込みを実装してください。
  • クラウド ストレージから効率的にファイルを取り込むには、 Auto Loader使用します。
  • 着陸ゾーンデータの保持ポリシーを設定します。
  • データ取り込みパイプラインの障害やデータ品質の問題を監視する。

デザインテーブル管理戦略

テーブルとボリュームは、マネージドボリュームまたは外部ボリュームとして作成できます。トレードオフを理解することで、最適なテーブル戦略を設計することができます。

管理テーブルと外部テーブル

マネージドテーブルとボリューム

Unity Catalog 、 Databricksからの外部テーブルとボリュームへのアクセスを管理しますが、基になるファイルを制御したり、それらのファイルの保存場所をフルマネージドしたりすることはありません。 一方、マネージドテーブルとボリュームはUnity Catalogによるフルマネージドであり、含まれるスキーマに関連付けられた管理されたストレージの場所に保存されます。

Databricksは、構成、最適化、およびガバナンスを簡素化するため、ほとんどのワークロードに対してマネージドボリュームとマネージドテーブルの使用を推奨しています。予測的最適化やマネージド DR などの新機能はマネージドテーブルでのみ利用可能です。

外部テーブルとボリューム

外部との最大の違いは、マネージドテーブルがschema_name/table_nameの単純なフォルダー構造を提供せず、代わりに内部 GUID スタイルのフォルダーを使用することです。 これらのフォルダには、 Unity Catalog経由でのみアクセスしてください。

外部テーブルを使用するタイミング

  • 規制またはコンプライアンス上の理由から、データは特定のクラウドストレージパスに保持されなければなりません。
  • 外部システムは、データへの直接的なファイルアクセスを必要とする。
  • Delta Sharingを使用できないシステムとのデータ共有。
  • マネージドストレージに移行できない既存データ。

テーブル管理のベストプラクティス

  • すべての新しいレイクハウス データ (ブロンズ、シルバー、ゴールド) にはマネージドテーブルを使用します。
  • ランディングゾーンと未加工の非構造化データには、マネージドボリュームを使用してください。
  • 外部テーブルは、特定のパスに保持する必要のあるデータのみに使用してください。
  • すべてのテーブルに関するドキュメントの所有権とライフサイクルポリシー。
  • 頻繁にクエリされるマネージドテーブルに対して予測的最適化を有効にします。

ハブアンドスポークメダリオンデザイン

ハブアンドスポーク設計パターンは、エンタープライズ展開においてメダリオンアーキテクチャと組み合わせることができる。このパターンは、共有データ資産を一元化しつつ、ドメイン固有のデータ処理を可能にする。

ハブアンドスポークメダリオンの特徴

  • データハブ :組織全体の資産(例えば、SAPデータや、天気や財務などの一般的な資産)を取り込み、整理し、管理します。これらは、ソースリンク型データ製品とみなすことができる。
  • データドメイン :各ドメインは、ハブがキュレーションしたデータ製品の一部を読み込むとともに、ドメイン固有の生データを取り込み、キュレーションします。そして、各ドメインはドメイン固有のデータ製品を生成する。
  • 出版モデル
    • 集中型パブリッシング :ドメインは、組織全体で利用できるよう、データ製品をハブに公開します。
    • 分散型パブリッシング :ドメインは、ドメイン固有の用途のために、独自のカタログ内でデータ製品を公開します。

ハブアンドスポーク型メダリオンの例

Data Hub (Central)
├── Bronze: Organization-wide raw data (SAP, financials, weather)
├── Silver: Curated shared datasets
└── Gold: Enterprise-wide data products

Sales Domain
├── Bronze: Sales-specific raw data + shared hub data
├── Silver: Sales analytics datasets
└── Gold: Sales data products (published to hub or domain)

Engineering Domain
├── Bronze: Engineering telemetry + shared hub data
├── Silver: Engineering metrics
└── Gold: Engineering dashboards (published within domain)

ハブアンドスポーク型メダリオンのベストプラクティス

  • 複数のドメインが利用する組織全体の共有データには、ハブを使用してください。
  • 各ドメインが、ドメイン固有のデータを取り込み、管理できるようにする。
  • クリアデータ製品公開ポリシーを確立します (集中型と分散型)。
  • Unity Catalogを使用して、ハブデータとドメインデータを分離します。
  • Databricksが管理するDelta Sharingを使用して、ハブとドメイン間でデータ製品を共有します。

データガバナンス戦略の設計

データガバナンスは、レイクハウス全体におけるデータの品質、検索性、およびコンプライアンスを保証します。組織の成熟度と要件に適したガバナンス戦略を策定する。

データ品質戦略

メダリオンアーキテクチャのバリエーションに関わらず、データが各層を通過するにつれて、データ品質は向上しなければならない。その結果、ビジネスの観点から見て、データに対する信頼は必然的に高まるだろう。

データ品質ツール

  • 制約事項 :テーブルに追加されたデータの品質と整合性が自動的に検証されるようにする。
  • 主キーと外部キー :テーブル内のフィールド間の関係をエンコードします(情報提供のみを目的としており、強制的なものではありません)。
  • 期待 : データ品質の問題が下流に波及するのを防ぎます (現在はLakeFlow Spark宣言型パイプラインで、間もなくすべてのUnity Catalogテーブルで)。
  • レイクハウスモニタリング : アカウント内のすべてのテーブルのデータの統計的特性と品質を監視します。

データ品質のベストプラクティス

  • ブロンズレベルのデータ取り込み時にデータ品質チェックを実装する(例:スキーマ検証、nullチェック)。
  • データがシルバーやゴールドへと移行するにつれて、より厳格な品質基準を適用する。
  • データ品質メトリクスと長期的な傾向を監視します。
  • 重要なデータセットのデータ品質に関するSLAを定義する。
  • データ品質違反に関するアラートを自動化する。

データサイロを避ける

データの移動、コピー、複製には時間がかかり、特にデータサイロ化につながる場合は、レイクハウス内のデータの品質を低下させる可能性があります。データコピーとデータサイロの違いを明確にするために、スタンドアロンまたは使い捨てのデータコピー自体は、それ自体では有害ではありません。時には、機敏性、実験性、そして革新性を高めることが必要となる。これらのコピーが、下流のビジネスデータ製品がそれに依存する形で運用されるようになると、それらはデータサイロとなる。これらのサイロはすぐに同期が取れなくなり、最終的には信頼性の低いデータレイクへとつながる。

データサイロを回避するためのベストプラクティス

  • データをコピーする代わりに、 Unity CatalogビューとDelta Sharingを使用してください。
  • データセットごとに単一の真実のソースを確立します。
  • 部門レベルでのデータコピーや重複は避けてください。
  • Unity Catalogリネージを使用してデータ依存関係を追跡します。
  • 不要なデータセットは定期的に削除する。

データカタログとデータ検索

Unity Catalog使いやすさとデータガバナンスのためにデータ治安とリネージを提供します。

データディスカバリー

あらゆる事業分野のユーザー、特にセルフサービスモデルを採用している企業は、関連データを容易に発見できる必要がある。したがって、レイクハウスにはビジネスに関連するすべてのデータを網羅するデータカタログが必要です。 データカタログの主な目的は以下のとおりです。

  • ユーザーがデータセットを検索・発見できるようにする。
  • データセットのメタデータ、説明、およびドキュメントを提供する。
  • ソースから消費までのデータリネージを表示します。
  • データの品質メトリクスと鮮度情報を表示します。

データリネージ

データリネージを正確に追跡することで、ユーザーがデータが現在の形になった経緯を説明できるようにします。 Unity Catalog 、以下のリネージを自動的にキャプチャします:

  • テーブル間の依存関係。
  • データの読み書きを行うノートブックおよびジョブの実行。
  • 上流のソースシステム。
  • 下流の消費者とデータ製品。

データカタログのベストプラクティス

  • すべてのカタログ、スキーマ、テーブルに説明とタグを追加します。
  • 文書データの所有者および主題専門家。
  • Unity Catalog検索を使用してデータ蓄積を有効にします。
  • メタデータは定期的に確認し、更新してください。
  • 変更を加える前に、リネージを使用してデータ間の依存関係を理解してください。

Delta Lake建築に関する推奨事項

推奨

  • データレイクの構造化には、メダリオンアーキテクチャ(ブロンズ、シルバー、ゴールド)を使用します。
  • すべてのレイクハウス データ (ブロンズからゴールド) にはUnity Catalogマネージドテーブルを使用します。
  • ランディングゾーンと未加工の非構造化データには、 Unity Catalogボリュームを使用してください。
  • 各階層(ブロンズ、シルバー、ゴールド)でデータ品質チェックを実施する。
  • Unity Catalog使用して、データ蓄積とリネージ追跡を有効にします。
  • 頻繁にクエリされるマネージドテーブルに対して予測的最適化を有効にします。
  • ハブアンドスポーク型アーキテクチャ向けに、明確なデータ製品公開ポリシーを策定する。

避ける

  • 運用データを複数のドメインに重複して保存することで、データサイロを作成しないようにしてください。
  • データが特定のストレージパスに保持される必要がある場合を除き、外部テーブルを使用しないでください。
  • ブロンズレイヤーは省略しないでください(生データは常に真実のソースとして保存してください)。
  • 納期を守るために、データ品質チェックを省略してはいけません。
  • Unity Catalogガバナンスなしに、管理されていないデータの無秩序な拡散を許してはいけません。

第6相の結果

フェーズ6を完了すると、以下のものが得られます。

  • メダリオンアーキテクチャーデザイン(目的が明確なブロンズ、シルバー、ゴールドレイヤー)。
  • データ取り込み戦略を定義する(要件に基づいて、バッチ処理、ストリーミング処理、またはCDC)。
  • テーブル管理戦略を設計しました(管理対象テーブルと外部テーブル)。
  • ハブアンドスポーク型のメダリオンアーキテクチャを評価(複数ドメイン組織向け)。
  • 各階層で適切なチェックを行うデータ品質戦略を定義する。
  • データガバナンスポリシーを制定(カタログ、リネージ、ディスカバリーなど)。
  • 着陸ゾーンのアーキテクチャ設計(外部システムに必要な場合)。
  • データ製品の公開モデルが定義されています(集中型、分散型、またはハイブリッド型)。

次のフェーズフェーズ7:インフラストラクチャ・アズ・コードのアプローチを計画する

実装ガイド :Delta Lake 設計を実装するための手順については、 「Databricks における Delta Lake とは?」を参照してください。