ボーダーレスな Lakehouse アーキテクチャを使用すると、Google Cloudの分散環境とオープン フォーマット ストレージ システム全体でデータ分析を統合できます。これらの基本的なコンセプトを理解することで、アーキテクチャを評価し、Lakehouse ワークロード全体で統合カタログ、マルチエンジン コンピューティング、ガバナンスを構成できます。
このリファレンスでは、機能の網羅的なリストを提供するのではなく、Lakehouse のドキュメント全体で使用されている主要な用語の概要を説明します。
基本概念
次のコンセプトは、Google Cloud のレイクハウス アーキテクチャの基盤となります。
データ レイクハウス
データ レイクハウスは、データレイクの費用削減と柔軟性を、データ ウェアハウスのデータ マネジメントとパフォーマンスに統合します。これにより、Cloud Storage にオープン形式でデータを保存し、正確なセキュリティ管理や高速クエリなどの BigQuery 機能を使用できます。
メダリオン アーキテクチャ
データ レイクハウスの一般的な設計パターンはメダリオン アーキテクチャです。これは、データを構造と品質の段階的なレイヤに論理的に整理します。
- ブロンズ(未加工)レイヤ: Apache Iceberg などのオープン形式の元データを取り込み、Cloud Storage に保存します。
- シルバー(クレンジング済み)レイヤ: 元データをクレンジング、フィルタリング、拡充して、標準化されたテーブルに変換します。
- ゴールド(キュレート済み)レイヤ: 完全にキュレートされ、集計されたビジネスレベルのテーブルを提供します。Google Cloud のレイクハウスでは、BigQuery がゴールドレイヤとして、高パフォーマンスの消費、レポート、分析によく使用されます。
オープンな相互運用性
オープンな相互運用性とは、BigQuery、Apache Spark、Apache Flink などの複数の分析システムとトランザクション システムが、Apache Iceberg などのオープン フォーマットでデータの単一コピーを操作できる機能です。これにより、データの重複が不要になり、異なるツール間で一貫したデータビューが確保されます。
Lakehouse ランタイム カタログ
Lakehouse ランタイム カタログは、Google Cloud の Lakehouse の信頼できる唯一の情報源として機能する、一元化されたサーバーレス メタデータ サービスです。これにより、Apache Spark、Apache Flink、BigQuery などの複数のエンジンで、同じテーブルを同時に検出してクエリを実行できます。
カタログの種類
レイクハウス ランタイム カタログには、メタデータを管理するためのさまざまな種類のカタログが用意されています。
Apache Iceberg REST カタログ エンドポイント
これは、Apache Iceberg REST カタログ エンドポイントに基づくカタログです。オープンソース エンジンと BigQuery 間の相互運用性を提供し、認証情報のベンディングや障害復旧などの機能をサポートします。
カタログ ストレージの構成
Apache Iceberg REST カタログ エンドポイントを作成するときに、次の 2 つのストレージ モデルから選択できます。
- マルチバケット カタログ(推奨): カタログに個別に名前を付け、最大 15 個の Cloud Storage バケット(
default_locationとrestricted_locations)を構成できます。クライアント クエリエンジン(Spark や Trino など)を構成する場合は、ウェアハウス パスをbl://projects/PROJECT_ID/catalogs/CATALOG_IDに設定します。 - 単一バケット カタログ: カタログが単一の Cloud Storage バケットにロックされ、バケットの名前を継承するレガシー構成。クライアント クエリエンジンを構成するときに、ウェアハウス パスを
gs://CLOUD_STORAGE_BUCKET_NAMEに設定します。
BigQuery 用のカスタム Apache Iceberg カタログ
これは、マネージド Apache Iceberg テーブルのバッキング メタデータ サービスとして BigQuery カタログを直接使用する統合です。
Apache Hive カタログ エンドポイント
このエンドポイントは、Apache Hive メタストア(HMS)インターフェースに依存するオープンソース ワークロードとの互換性を提供します。これにより、Google Cloudのフルマネージド metastore サービスに対して Apache Hive ワークロードまたは Spark ワークロードを実行できます。
テーブルタイプ
Google Cloud の Lakehouse は、データの管理に使用するエンジンと使用しているカタログ エンドポイントに応じて、いくつかのテーブル形式をサポートしています。
Apache Iceberg テーブル
これらは、オープンソース エンジンから作成して Cloud Storage に保存する Apache Iceberg テーブルです。Lakehouse ランタイム カタログは、これらのテーブルを管理し、Apache Iceberg REST カタログ エンドポイントを介してテーブルへのアクセスを提供します。オープンソース エンジンはこれらのテーブルに対する読み取りアクセス権と書き込みアクセス権を持ち、BigQuery は読み取りアクセス権と書き込みアクセス権(プレビュー)を持ちます。このオプションは、ETL ワークフローをオープンソース エンジンで管理する場合に最適です。
BigQuery テーブル
これらのテーブルは BigQuery で管理されます。
Apache Iceberg テーブル
これらは、BigQuery から作成して Cloud Storage に保存する Apache Iceberg テーブルです。BigQuery は、すべてのデータ レイアウトと最適化を処理します。これらのテーブルは複数のエンジンで読み取ることができますが、BigQuery はこれらのテーブルに直接書き込むことができる唯一のエンジンです。
ネイティブ テーブル
これらのテーブルは BigQuery によって管理され、BigQuery ストレージにデータを保存します。これらのテーブルは、Lakehouse ランタイム カタログに接続できます。
外部テーブル
外部テーブルは Lakehouse ランタイム カタログの外部にあります。データとメタデータは、サードパーティのカタログ(Cloud Storage、S3、Azure Blob Storage など)でセルフマネージドされます。BigQuery はこれらのテーブルから読み取るだけです。
テーブルの機能
テーブルの進化
Google Cloud の Lakehouse は Apache Iceberg テーブルの進化をサポートしています。これにより、テーブルデータを書き換えたり、テーブルを再作成したりすることなく、テーブルのスキーマやパーティション仕様を時間の経過とともに変更できます。
タイムトラベル
タイムトラベルを使用すると、特定の時点またはスナップショット ID に存在していたテーブルのデータをクエリできます。これは、監査、テストの再現、誤って削除したデータの復元に役立ちます。
メタデータのキャッシュ保存
メタデータのキャッシュ保存は、外部テーブルのクエリ パフォーマンスを高速化する機能です。テーブルのメタデータのコピーを BigQuery ストレージに保存するため、クエリの実行中に Cloud Storage からメタデータ ファイルを読み取る必要性が軽減されます。
Google Cloud のレイクハウス テーブル管理
Google Cloud のレイクハウス テーブル管理では、マネージド テーブルの圧縮やガベージ コレクションなどのタスクを自動化することで、レイクハウスのメンテナンスを簡素化します。これにより、クエリのパフォーマンスとストレージ効率が最適化されます。
相互運用性のコンセプト
ボーダーレス レイクハウス
ボーダーレス Lakehouse は、Google Cloud の Lakehouse を拡張し、リモートの外部カタログ(Databricks Unity Catalog、AWS Glue、Snowflake Horizon Catalog、Workday Data Lake、SAP BDC など)に接続できるようにします。他のクラウド プロバイダからメタデータを同期するため、データを移行することなく、Apache Iceberg REST カタログ エンドポイントを介して BigQuery や外部のオープンソース エンジンでデータをクエリできます。
公開データセット
Google Cloud の Lakehouse は、Apache Iceberg REST カタログを介して提供される高品質の一般公開データセットをホストし、インフラストラクチャを管理することなく、探索とテストのための読み取り専用権限を提供します。
P.C.N.T. の命名構造
P.C.N.T. 命名構造は、BigQuery から Lakehouse ランタイム カタログ内のテーブルを一意に識別してクエリするために使用される 4 つの部分からなる規則です。これは Project.Catalog.Namespace.Table の略です。
- プロジェクト: Google Cloud プロジェクト ID。
- カタログ: Lakehouse ランタイム カタログの名前。
- 名前空間: テーブルの論理グループ(データセットに類似)。
- テーブル: データテーブルの名前。
セキュリティ コンセプト
接続
接続は、外部データにアクセスするための認証情報を格納する BigQuery リソースです。Google Cloud の Lakehouse では、接続のサービス アカウントがユーザーに代わってストレージ バケットにアクセスできるようにすることで、接続が Cloud Storage へのアクセスを委任します。
認証情報の提供
認証情報の払い出しは、Lakehouse ランタイム カタログを使用する際のアクセス制御を強化するセキュリティ メカニズムです。有効にすると、サービスは、クエリに必要な特定のファイルパスにのみアクセスを許可するように設計された、有効期間が短く、スコープが限定された認証情報を生成します。
統合ガバナンス
統合ガバナンスにより、Knowledge Catalog との統合を通じて、セキュリティ ポリシーとデータ マネジメント ポリシーを一元的に定義して適用できます。Lakehouse ランタイム カタログにテーブルを登録すると、対応するエントリがビジネス メタデータ カタログ(Knowledge Catalog)に自動的に登録されます。これにより、ファイルを移動またはコピーすることなく、データリネージ、セマンティック検索、エンジン間の一元管理が可能になります。
クエリエンジンのコンセプト
Google Cloud のレイクハウスは、ストレージをコンピューティングから分離することで、さまざまな分析エンジンがオープンテーブルを操作できるようにします。
Managed Service for Apache Spark
Managed Service for Apache Spark(旧称: Managed Service for Apache Spark)は、Apache Iceberg などのオープン テーブル形式を処理するためのフルマネージド ランタイムを提供します。主に次の 2 つの実行モードをサポートしています。
- サーバーレス バッチ: 自動化された非インタラクティブなデータ処理パイプラインと ETL ワークロード向けに設計されています。この実行ごとの課金モデルにより、クラスタ管理が不要になり、ジョブ間のリソース競合が解消され、インフラストラクチャのメンテナンスが自動化されます。
- サーバーレス インタラクティブ セッション: 探索的データ分析、データ エンジニアリング、データ サイエンスのテスト用に設計されています。インタラクティブ セッションは、Spark Connect またはリモート Spark カーネルを使用して、Apache Spark ノートブックをバックグラウンドで実行します。これにより、インフラストラクチャの設定なしで自動スケーリング環境が提供されます。
サービスティア
Lakehouse ランタイム カタログに対して Apache Spark ワークロードを実行する場合は、次の異なるサービスティアから選択できます。
- スタンダード ティア: 標準のバッチ処理ワークロードに適したデフォルトの実行ティア。
- プレミアム ティア: サーバーレス インタラクティブ ノートブック セッションのサポートや、Lightning Engine などのパフォーマンスを高速化する機能など、高度な機能を提供します。
セッション テンプレート
セッション テンプレートを使用すると、サーバーレス インタラクティブ セッションの構成を簡素化できます。管理者は、共通の環境設定(カタログ プロパティ、ネットワーク構成、ランタイム バージョンなど)を定義して保持できます。これにより、一貫性が促進され、繰り返しの設定が最小限に抑えられるため、デベロッパーの生産性が向上します。セッション テンプレートは、 Google Cloud コンソール、gcloud CLI、REST API、または Terraform を使用して作成および管理できます。
信頼性のコンセプト
クロスリージョン レプリケーション
クロスリージョン レプリケーションでは、複数のリージョンにメタデータを複製して、リージョン停止時にカタログの可用性を確保します。
フェイルオーバー
フェイルオーバーは、リージョンでサービスが停止したときに、カタログ オペレーションを維持するためにプライマリ リージョンとセカンダリ リージョンを切り替えるプロセスです。