基本的なコンセプト

このドキュメントでは、 Lakehouse for Apache Iceberg の重要な用語と概念について説明します。

このページは機能の完全なリストではなく、Google Cloud の Lakehouse ドキュメント全体で使用される用語と概念の一般的なリファレンスです。

基本概念

次のコンセプトは、Google Cloud の Lakehouse アーキテクチャの基盤を形成します。

データ レイクハウス

データ レイクハウスは、データレイクのコスト削減と柔軟性と、データ ウェアハウスのデータ管理とパフォーマンスを組み合わせたものです。Cloud Storage にオープン フォーマットでデータを保存し、正確なセキュリティ制御や高速クエリなどの BigQuery 機能を使用できます。

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

データ レイクハウスの一般的な設計パターンはメダリオン アーキテクチャです。これは、構造と品質の段階的なレイヤにデータを論理的に整理します。

  • ブロンズ(未加工)レイヤ: Cloud Storage 上の Apache Iceberg などのオープン フォーマットで未加工データを取り込んで保存します。
  • シルバー(クリーンアップ)レイヤ: 未加工データをクリーンアップ、フィルタリング、拡充して、標準化されたテーブルにします。
  • ゴールド(キュレート)レイヤ: 完全にキュレートされた集計済みのビジネスレベルのテーブルを提供します。Google Cloud の Lakehouse では、BigQuery がゴールドレイヤの提供に使用されることが多く、高性能の消費、レポート作成、分析を実現します。

オープンな相互運用性

オープンな相互運用性とは、BigQuery、Apache Spark、Apache Flink などの複数の分析システムとトランザクション システムが、Apache Iceberg などのオープン フォーマットのデータの単一コピーで動作できることです。これにより、データの重複が不要になり、異なるツール間でデータの一貫したビューが確保されます。

Lakehouse ランタイム カタログ

Lakehouse ランタイム カタログ は、Google Cloud の Lakehouse の唯一の情報源として機能する、一元化されたサーバーレスのメタデータ サービスです。Apache Spark、Apache Flink、BigQuery などの複数のエンジンで、同じテーブルを同時に検出してクエリできます。

カタログタイプ

Lakehouse ランタイム カタログには、メタデータの管理に使用できるさまざまなタイプのカタログが用意されています。

Apache Iceberg REST カタログ エンドポイント

これは、Apache Iceberg REST カタログ エンドポイントに基づくカタログです。オープンソース エンジンと BigQuery の相互運用性を提供し、認証情報の提供や障害復旧などの機能をサポートします。

BigQuery 用のカスタム Apache Iceberg カタログ

これは、BigQuery カタログをマネージド Apache Iceberg テーブルのバッキング メタデータ サービスとして直接使用する統合です。

Apache Hive カタログ エンドポイント

このエンドポイントは、 Apache Hive メタストア(HMS)インターフェースに依存するオープンソース ワークロードとの互換性を提供します。これにより、 でフルマネージド メタストア サービスに対して Apache Hive または Spark ワークロードを実行できます。Google Cloud

テーブルタイプ

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 の Lakehouse テーブル管理

Google Cloud の Lakehouse テーブル管理は、マネージド テーブルのコンパクションやガベージ コレクションなどのタスクを自動化することで、Lakehouse のメンテナンスを簡素化します。これにより、最適なクエリ パフォーマンスとストレージ効率が確保されます。

相互運用性のコンセプト

BigQuery カタログ フェデレーション

BigQuery カタログ フェデレーションを使用すると、Lakehouse ランタイム カタログの Apache Iceberg REST カタログ エンドポイントを使用して、BigQuery で管理されるテーブル(Iceberg マネージド テーブルなど)を Apache Spark や Trino などの外部オープンソース(OSS)エンジンに公開できます。

メタデータを保存する専用の Lakehouse カタログ コンテナを作成する代わりに、Apache Iceberg REST カタログ エンドポイントはプロキシ ゲートウェイとしてのみ機能し、カタログ リクエストを BigQuery の内部カタログに直接ルーティングします。これにより、標準の BigQuery DDL または API を使用して BigQuery 内でテーブルを直接作成して管理できます。また、外部 OSS エンジンは REST カタログ エンドポイントを介してこれらのテーブルをクエリする読み取り専用アクセス権を持ちます。

クロスクラウドの Lakehouse

クロスクラウドの Lakehouse は Google Cloud の Lakehouse を拡張し、リモートの外部カタログ(Databricks Unity Catalog や AWS Glue など)に接続できます。他のクラウド プロバイダのメタデータを同期することで、データを移行せずに、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 を表します。

  • プロジェクト: プロジェクト ID。 Google Cloud
  • カタログ: Lakehouse ランタイム カタログの名前。
  • Namespace: テーブルの論理グループ(データセットと同様)。
  • Table: データテーブルの名前。

セキュリティ コンセプト

接続

接続は、外部データにアクセスするための認証情報を保存する BigQuery リソースです。Google Cloud の Lakehouse では、接続のサービス アカウントがユーザーに代わってストレージ バケットにアクセスできるようにすることで、接続が Cloud Storage へのアクセスを委任します。

認証情報の提供

認証情報の提供は、Lakehouse ランタイム カタログを使用する際のアクセス制御を強化するセキュリティ メカニズムです。有効にすると、クエリに必要な特定のファイルパスにのみアクセス権を付与するように設計された、有効期間の短いスコープダウンされた認証情報が生成されます。

統合ガバナンス

統合ガバナンスを使用すると、セキュリティ ポリシーとデータ管理 ポリシーを一元的に定義して適用できます。 Knowledge Catalog との統合により。テーブルを Lakehouse ランタイム カタログに登録すると、対応するエントリがビジネス メタデータ カタログ(Knowledge Catalog)に自動的に登録されます。これにより、ファイルを移動またはコピーせずに、エンジン間でデータリネージ、セマンティック検索、一元管理が可能になります。

クエリエンジンのコンセプト

Google Cloud の Lakehouse はストレージとコンピューティングを分離し、さまざまな分析エンジンがオープン テーブルとやり取りできるようにします。

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 を使用して作成および管理できます。

信頼性のコンセプト

クロスリージョン レプリケーション

クロスリージョン レプリケーションは、リージョン停止時にカタログの可用性を確保するために、複数のリージョンにメタデータをレプリケートします。

フェイルオーバー

フェイルオーバーは、リージョン停止時にプライマリ リージョンとセカンダリ リージョンを切り替えてカタログ オペレーションを維持するプロセスです。