基本的なコンセプト

ボーダーレス Lakehouse のコア用語を理解すると、Lakehouse アーキテクチャを評価し、 Google Cloudでカタログ、テーブル、クエリエンジン、ガバナンスを構成できます。各エントリは、Lakehouse のドキュメント全体で使用される重要なコンセプトを定義し、詳細なガイドへのリンクを提供します。これらのコンポーネントがどのように連携するかのエンドツーエンドのビューについては、ボーダーレス レイクハウスの仕組みをご覧ください。

レイクハウスの基礎

次のコンセプトは、Google Cloud のレイクハウス アーキテクチャの基盤となります。

データ レイクハウス

データ レイクハウスは、データレイクの費用削減と柔軟性を、データ ウェアハウスのデータ マネジメントとパフォーマンスに統合します。これにより、Cloud Storage にオープン形式でデータを保存し、正確なセキュリティ管理や高速クエリなどの BigQuery 機能を使用できます。

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

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

  • ブロンズ(元データ)レイヤ: 元データを取り込み、Cloud Storage 上の Apache Iceberg などのオープン形式で保存します。
  • シルバー(クレンジング済み)レイヤ: 元データをクレンジング、フィルタリング、拡充して、標準化されたテーブルに変換します。
  • ゴールド(キュレート)レイヤ: 完全にキュレートされ、集計されたビジネスレベルのテーブルを提供します。BigQuery は、高パフォーマンスの消費、レポート、分析のためにゴールド レイヤを提供するためによく使用されます。

オープンな相互運用性

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

Lakehouse ランタイム カタログ

Lakehouse ランタイム カタログは、Google Cloud の Lakehouse の信頼できる唯一の情報源として機能する、一元化されたサーバーレス メタデータ サービスです。これにより、Apache Spark、Apache Flink、Trino、BigQuery などの複数のエンジンで、同じテーブルを同時に検出してクエリを実行できます。エンジンは、カタログ エンドポイントを介して接続します。詳細については、Lakehouse ランタイム カタログについてをご覧ください。

リソース階層

Lakehouse ランタイム カタログは、Apache Iceberg 標準に沿った階層でメタデータを整理し、論理 ID を物理ストレージパスにマッピングします。

カタログ

カタログは、Lakehouse ランタイム カタログの最上位の論理コンテナです。これにより、テーブルデータを保存できる場所と、メタデータを提供するリージョンが定義されます。詳細については、カタログを作成するをご覧ください。

カタログの種類

カタログを作成するときに、次の 2 つのストレージ モデルのいずれかを選択します。

  • マルチバケット カタログ(推奨): カタログに独自の名前を付け、デフォルトのストレージ ロケーション(default_location)と、restricted_locations 内の最大 128 個の追加の Cloud Storage バケットまたはサブパスを構成できます。クライアント クエリエンジン(Spark や Trino など)を構成するときに、ウェアハウス パスを bl://projects/PROJECT_ID/catalogs/CATALOG_ID に設定します。
  • 単一バケット カタログ: カタログが単一の Cloud Storage バケットにロックされ、バケットの名前を継承するレガシー構成。クライアント クエリエンジンを構成するときに、ウェアハウス パスを gs://CLOUD_STORAGE_BUCKET_NAME に設定します。

詳細については、カタログとストレージのロケーションをご覧ください。

名前空間

名前空間は、カタログ内のテーブルの論理グループです。BigQuery に精通しているユーザーにとって、名前空間は機能的にデータセットに似ています。Namespace は親カタログのリージョンを継承し、ネストをサポートしていません。

テーブル

テーブルは、Cloud Storage 内のデータを指すエンティティです。Apache Iceberg テーブルの場合、テーブル メタデータには、スキーマ、パーティショニング情報、metadata.json ファイルを介した現在のテーブル状態へのポインタが含まれます。Lakehouse でサポートされているテーブルタイプについては、テーブルタイプをご覧ください。

P.C.N.T 命名規則

P.C.N.T 命名規則は、BigQuery からレイクハウス ランタイム カタログ内のテーブルを一意に識別してクエリするために使用される 4 つの部分からなる規則です。これは Project.Catalog.Namespace.Table の略です。

  • プロジェクト: Google Cloud プロジェクト ID。
  • カタログ: Lakehouse ランタイム カタログ内のカタログの名前。
  • 名前空間: テーブルの論理グループ(データセットに類似)。
  • テーブル: データテーブルの名前。

カタログ エンドポイント

カタログ エンドポイントは、クエリエンジンが Lakehouse ランタイム カタログに接続するために使用するプロトコル インターフェースです。使用するエンドポイントによって、使用できるテーブル形式とエンジンが決まります。

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

Apache Iceberg REST カタログ エンドポイントは、オープン標準の Iceberg REST Catalog API を実装しています。これは、新しいワークロードに推奨されるエンドポイントであり、オープンソース エンジンと BigQuery 間の読み取りと書き込みの相互運用性を提供します。マルチバケット カタログ、認証情報の提供、クロスリージョン レプリケーション(プレビュー)をサポートしています。詳細については、Apache Iceberg REST カタログ エンドポイントの概要をご覧ください。

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

Apache Hive カタログ エンドポイントは、Apache Hive メタストア(HMS)インターフェースに依存するオープンソース ワークロードとの互換性を提供します。Lakehouse ランタイム カタログがこのエンドポイントを提供するため、セルフホスト型の Hive metastore を維持することなく、Apache Hive または Spark ワークロードを実行できます。このエンドポイントは、Apache Iceberg テーブルではなく、標準の Hive テーブルと Spark テーブルを管理し、Cloud Storage 内のデータの顧客管理の暗号鍵(CMEK)をサポートします。詳細については、Hive カタログ エンドポイントについてをご覧ください。

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

BigQuery 用のカスタム Apache Iceberg カタログは、カタログ プラグイン(BigQueryMetastoreCatalog)を使用して、オープンソース エンジンが Apache Iceberg テーブル定義を BigQuery に保存できるようにする以前の統合です。名前空間は BigQuery データセットにマッピングされるため、標準の BigQuery データセット構文を使用してこれらのテーブルをクエリします。新しいワークロードでは、代わりに Apache Iceberg REST カタログ エンドポイントを使用します。詳細については、BigQuery のカスタム Apache Iceberg カタログをご覧ください。

テーブルタイプ

Google Cloud のレイクハウスは、データの管理に使用するエンジンと使用するカタログ エンドポイントに応じて、いくつかのテーブルタイプをサポートしています。詳細な比較については、テーブルタイプの比較をご覧ください。

Lakehouse ランタイム カタログの Apache Iceberg テーブル

これらは、Lakehouse ランタイム カタログが管理し、Apache Iceberg REST カタログ エンドポイントを介して提供する Apache Iceberg テーブルです。データは Cloud Storage データストアに保存されます。オープンソース エンジンには、これらのテーブルに対する読み取り / 書き込みアクセス権があります。BigQuery には、読み取りアクセス権と、BigQuery DML を有効にした場合の書き込みアクセス権(プレビュー)があります。これは、ほとんどのオープン レイクハウス ワークロードに推奨されるオプションです。詳細については、Apache Iceberg テーブルを管理するをご覧ください。

Apache Hive テーブル

これらは、Parquet、ORC、Avro、Delta Lake などの形式の標準の Apache Hive テーブルと Spark テーブルです。Lakehouse ランタイム カタログは、Apache Hive カタログ エンドポイントを介してこれらのテーブルを管理します。オープンソース エンジンには読み取り / 書き込みアクセス権があり、BigQuery には読み取り専用アクセス権があります。Delta Lake テーブルを使用するには、Apache Spark などの Delta 互換エンジンでテーブルを作成し、metastore に登録します。詳細については、サポートされているストレージ形式とタイプをご覧ください。

BigQuery テーブル

これらのテーブルは BigQuery で管理されます。

Apache Iceberg マネージド テーブル

これらは、BigQuery から作成して Cloud Storage に保存する Apache Iceberg テーブルです。BigQuery は、すべてのデータ レイアウトと最適化を処理します。これらのテーブルは複数のエンジンで読み取ることができますが、直接書き込むことができるのは BigQuery のみです。これらのテーブルは、Lakehouse ランタイム カタログの Apache Iceberg テーブルとは異なります。詳細については、Apache Iceberg マネージド テーブルをご覧ください。

ネイティブ テーブル

これらのテーブルは BigQuery によって管理され、データは BigQuery ストレージに保存されます。これらのテーブルは Lakehouse ランタイム カタログに接続できます。

外部テーブル

外部テーブルは Lakehouse ランタイム カタログの外部にあります。データとメタデータは、Cloud Storage、Amazon S3、Azure Blob Storage などのストレージでセルフマネージドされ、BigQuery は接続を介してそれらにアクセスします。BigQuery はこれらのテーブルから読み取るだけです。

テーブルの機能とオプション

特に明記されていない限り、次の機能は Lakehouse ランタイム カタログの Apache Iceberg テーブルに適用されます。

Apache Iceberg テーブルのバージョン

Lakehouse ランタイム カタログは、Apache Iceberg V2 テーブルと V3 テーブル(プレビュー)をサポートしています。V3 テーブルはバイナリ削除ベクトルをサポートしています。これにより、データファイル全体を書き換えることなく、特定の行を削除できます。Iceberg V1 テーブルはサポートされていません。まず V2 にアップグレードする必要があります。詳細については、Iceberg V3 テーブルでバイナリ削除ベクトルを使用するをご覧ください。

テーブルの進化

テーブルの進化により、テーブルデータの書き換えやテーブルの再作成を行うことなく、テーブルのスキーマやパーティション仕様を時間の経過とともに変更できます。Lakehouse ランタイム カタログの Apache Iceberg テーブルは、デフォルトで柔軟な列名もサポートしているため、列名にスペースや国際文字などの文字を含めることができます。

タイムトラベル

タイムトラベルを使用すると、特定の時点またはスナップショット ID に存在していたテーブルのデータをクエリできます。これは、監査、テストの再現、誤って削除したデータの復元に役立ちます。オープンソース エンジンは、テーブル プロパティで構成された保持期間内でタイムトラベルできますが、BigQuery のタイムトラベルは 7 日間に制限されています。

表オプション

テーブル オプションは、個々の Apache Iceberg テーブルに対して Google が管理する機能を有効にするテーブル プロパティです。詳細については、テーブル オプションを構成するをご覧ください。

BigQuery DML

BigQuery DML はプレビュー版です。gcp.biglake.bigquery-dml.enabled テーブル プロパティを設定すると、BigQuery は GoogleSQL DDL ステートメントと DML ステートメント(INSERT、UPDATE、DELETE、MERGE)を使用してテーブルを作成、変更、修正できます。一方、オープンソース エンジンは同じテーブルの読み取りと書き込みを続行します。

テーブル管理

テーブル管理(プレビュー)は、Apache Iceberg テーブルのストレージ メンテナンスを自動化します。gcp.biglake.table-management.enabled テーブル プロパティを設定すると、Lakehouse はバックグラウンドでコンパクション(coalesce)、スナップショットの有効期限、ガベージ コレクションを実行して、クエリ パフォーマンスとストレージ効率を維持します。テーブル管理では、カタログで認証情報の提供を使用する必要があります。詳細については、テーブル管理を有効にするをご覧ください。

変更履歴

変更履歴を使用すると、GoogleSQL APPENDS テーブル値関数を使用して、指定した期間に Apache Iceberg マネージド テーブルに追加された行を追跡できます。これを使用すると、レプリカを段階的に維持したり、データの追加を監査したり、テーブル全体をスキャンせずにダウンストリーム パイプラインをトリガーしたりできます。詳細については、変更履歴を操作するをご覧ください。

メタデータのキャッシュ保存

メタデータのキャッシュ保存により、BigQuery 外部テーブルのクエリ パフォーマンスが向上します。テーブルのメタデータのコピーを BigQuery ストレージに保存するため、クエリの実行中に Cloud Storage からメタデータ ファイルを読み取る必要性が軽減されます。

データの取り込みと移行

レイクハウスには、Apache Iceberg テーブルにデータを読み込み、既存のメタストアからメタデータを移動するためのパスがいくつか用意されています。

バッチテーブルのインポート

Dataflow ジョブビルダー テンプレートを使用すると、コードを記述せずに、既存の Apache Iceberg、Delta Lake テーブル、Parquet ファイルを Lakehouse で管理される Apache Iceberg テーブルにインポートできます。

ストリーミング取り込み

オープンソース エンジン(Spark や Kafka など)、Dataflow、または BigQuery Storage Write API(gRPC)を使用して、Apache Iceberg テーブルにデータをストリーミングできます。この API は、トランザクションの 1 回限りの書き込みを提供します。BigQuery 継続的クエリの出力を Apache Iceberg マネージド テーブルに直接書き込むこともできます。

変更データ キャプチャ(CDC)

CDC の取り込みでは、テーブル全体を再読み込みするのではなく、挿入、更新、削除を適用することで、Apache Iceberg テーブルをソースシステムと同期します。Apache Iceberg マネージド テーブルは BigQuery CDC 取り込み(プレビュー版)をサポートしています。Dataflow を使用して、Apache Iceberg テーブルと Delta Lake テーブル(プレビュー版)から CDC ログを移行できます。

メタストアの移行

metastore の移行では、データファイルをコピーせずに、既存の metastore から Lakehouse ランタイム カタログにテーブル メタデータを移動します。Dataproc Metastore から Apache Iceberg REST カタログ エンドポイントまたは Apache Hive カタログ エンドポイントへの 1 回限りの移行またはドライランを実行できます。また、Hive metastore(プレビュー)などの外部 metastore から移行することもできます。

クロスクラウド データアクセス

クロスクラウド データアクセスを使用すると、ファイルの移行や ETL パイプラインの構築を行わずに、他のクラウドや SaaS プラットフォームに保存されているデータを Google Cloudから直接クエリできます。詳細については、クロスクラウド データアクセスについてをご覧ください。

連携カタログ

連携カタログは、Lakehouse ランタイム カタログ内のカタログで、リモート カタログ プロバイダに接続し、Apache Iceberg REST カタログ エンドポイントを介してテーブルを公開します。これらのテーブルは、BigQuery、Managed Service for Apache Spark、Apache Spark でクエリできます。サポートされているリモート カタログ プロバイダには、Databricks Unity Catalog、AWS Glue Data Catalog、Snowflake Horizon Catalog、Workday Data Lake、SAP Business Data Cloud(SAP BDC)などがあります。詳細については、リモートデータにクエリを実行するをご覧ください。

バックグラウンドでのメタデータの更新

バックグラウンド メタデータ更新は、連携カタログが更新間隔に基づいてリモート カタログから名前空間とテーブルのメタデータを定期的に同期するプロセスです。Lakehouse は、OIDC トークン連携または Secret Manager に保存されている認証情報を使用して、リモート カタログを認証します。

クロスクラウド転送

クロスクラウド データアクセスでは、バックグラウンド メタデータの更新とクエリデータの転送が分離されます。セキュリティと費用の要件を満たすために、公共のインターネット経由または Cross-Cloud Interconnect 経由でプライベートにルーティングできます。データの引き出しを制限するには、VPC Service Controls を使用して連携カタログ エンドポイントを保護することもできます。

クロスクラウド キャッシュ

クロスクラウド キャッシュは、リモート オブジェクト ストレージから読み取られたファイル ブロックを、クエリが実行される Google Cloud リージョンにローカルに保存します。これにより、繰り返されるクエリはリモート クラウドではなくキャッシュから読み取られます。キャッシュは、クロスクラウドの下り(外向き)料金の削減に役立ちます。デフォルトでは無効になっています。連携カタログまたは BigQuery クロスクラウド接続で有効にします。詳細については、インテリジェント キャッシュをご覧ください。

ID モード

ID モードは、リモート カタログに対してクエリを実行する ID を決定します。

  • サービス ID(デフォルト): バックグラウンドのメタデータの更新とクエリは、カタログのサービス アカウントとして実行されます。
  • ユーザー ID 連携: クエリはエンドユーザーの ID として実行されます。これにより、リモート カタログは独自の権限を適用し、監査ログを個々のユーザーに関連付けることができます。このモードは、Databricks Unity Catalog でサポートされています。

SAP BDC の統合

SAP BDC 統合は双方向で機能します。フェデレーションは、Delta Sharing プロトコルを使用して SAP BDC 共有を Lakehouse に同期します。これにより、BigQuery からクエリを実行できます。公開すると、データを移行せずに Apache Iceberg テーブルまたは Knowledge Catalog データ プロダクトを SAP BDC と共有できます。詳細については、SAP BDC の統合についてをご覧ください。

公開データセット

ボーダーレス Lakehouse は、Apache Iceberg REST カタログ エンドポイントを介して提供される一般公開データセットをホストし、インフラストラクチャを管理することなく、探索とテストのための読み取り専用権限を提供します。ストレージの料金は Google が支払い、お客様は実行したクエリに対してのみ料金を支払います。詳細については、一般公開データセットをご覧ください。

セキュリティとガバナンス

レイクハウスは、Identity and Access Management(IAM)、ストレージ アクセスの委任、ネットワーク制御を組み合わせて、レイクハウスを保護します。

リソースレベルのアクセス制御

カタログ、名前空間、テーブルに対する IAM ポリシーは、Lakehouse リソースを表示および変更できるユーザーを制御します。詳細については、カタログ、名前空間、テーブルの ACL を管理するとロールと権限をご覧ください。

認証情報のベンディング

認証情報の払い出しは、Lakehouse ランタイム カタログを使用する際のアクセス制御を強化するセキュリティ メカニズムです。Apache Iceberg REST カタログ エンドポイントは、ユーザーに直接バケット権限を付与するのではなく、クエリに必要な特定のテーブルパスにアクセスを制限した、有効期間が短く、スコープが限定されたストレージ認証情報を発行します。認証情報のベンディングは、テーブル管理にも必要です。詳細については、認証情報の提供をご覧ください。

接続

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

VPC Service Controls

VPC Service Controls のサービス境界は、Lakehouse API(biglake.googleapis.com)とテーブルデータを保存する Cloud Storage バケットへのアクセスを制限することで、データの引き出しを防ぎます。詳細については、認証情報の自動販売で VPC Service Controls を使用するをご覧ください。

リージョン エンドポイント

リージョン エンドポイントは、ターゲット カタログ リソースがエンドポイントで指定されたロケーションに存在する場合にのみリクエストを処理するように制限します。これにより、データ所在地の要件を満たすことができます。詳細については、リージョン エンドポイントをご覧ください。

監査ロギング

Cloud Audit Logs には、レイクハウス リソースに対する管理アクティビティとデータアクセス アクティビティが記録されます。詳細については、監査ログを表示するをご覧ください。

統合ガバナンス

統合ガバナンスにより、Knowledge Catalog との統合を通じて、セキュリティ ポリシーとデータ マネジメント ポリシーを一元的に定義して適用できます。Lakehouse ランタイム カタログにテーブルを登録すると、システムは対応するエントリを Knowledge Catalog に自動的に登録します。これにより、ファイルの移動やコピーを行うことなく、検索と見つけやすさ、データリネージ、データ プロファイリング、AI 生成のデータ分析情報(プレビュー)をエンジン間で利用できます。

クエリエンジンとツール

Google Cloud の Lakehouse はストレージをコンピューティングから分離するため、さまざまな分析エンジンが同じオープンテーブルを操作できます。

オープンソース エンジン

オープンソース エンジンは、標準の Apache Iceberg クライアント構成を使用して、Apache Iceberg REST カタログ エンドポイントを介して Lakehouse ランタイム カタログに接続します。エンジン固有の設定については、Apache Spark、Apache Flink、Trino をご覧ください。Terraform を使用してレイクハウス リソースを管理することもできます。

Managed Service for Apache Spark

Managed Service for Apache Spark(旧称 Dataproc Serverless)は、Apache Iceberg などのオープン テーブル形式を処理するためのフルマネージド ランタイムを提供します。主に次の 2 つの実行モードをサポートしています。

  • サーバーレス バッチ: 自動化された非インタラクティブなデータ処理パイプラインと ETL ワークロード向けに設計されています。この従量課金制モデルでは、クラスタ管理が不要になり、ジョブ間のリソース競合が解消され、インフラストラクチャのメンテナンスが自動化されます。
  • サーバーレス インタラクティブ セッション: 探索的データ分析、データ エンジニアリング、データ サイエンスのテスト用に設計されています。インタラクティブ セッションは、Spark Connect またはリモート Spark カーネルを使用して Apache Spark ノートブックを強化し、インフラストラクチャの設定なしで自動スケーリング環境を提供します。

サービスティア

Managed Service for Apache Spark で Apache Spark ワークロードを実行する場合は、次のサービスティアから選択できます。

  • スタンダード ティア: 標準のバッチ処理ワークロードに適したデフォルトの実行ティア。
  • プレミアム ティア: サーバーレス インタラクティブ ノートブック セッションのサポートや、Lightning Engine などのパフォーマンスを高速化する機能など、高度な機能を提供します。

セッション テンプレート

セッション テンプレートを使用すると、サーバーレス インタラクティブ セッションの構成が簡素化されます。管理者は、共通の環境設定(カタログ プロパティ、ネットワーク構成、ランタイム バージョンなど)を定義して保持できるため、一貫性が向上し、繰り返しの設定を最小限に抑えることができます。セッション テンプレートは、 Google Cloud コンソール、gcloud CLI、REST API、または Terraform を使用して作成および管理できます。

会話型分析

会話型分析(プレビュー)を使用すると、BigQuery で自然言語プロンプトを使用して、クロスクラウド ソースを含む Lakehouse ランタイム カタログ内のテーブルをクエリできます。

信頼性

Lakehouse ランタイム カタログは、Apache Iceberg REST カタログ エンドポイント(プレビュー)を使用するカタログにマネージド障害復旧を提供します。詳細については、クロスリージョン レプリケーションと障害復旧についてをご覧ください。

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

クロスリージョン レプリケーションでは、カタログがデュアルリージョンまたはマルチリージョンの Cloud Storage バケットを使用している場合に、カタログ メタデータがプライマリ リージョンからセカンダリ リージョンにコピーされます。これにより、リージョンが停止してもカタログを使用できます。Cloud Storage は、基盤となるテーブルデータを複製します。

フェイルオーバー

フェイルオーバーにより、カタログとそのすべての名前空間とテーブルのプライマリ リージョンとセカンダリ リージョンが切り替わります。ソフト フェイルオーバーでは、新しいプライマリが書き込みを受け入れる前に、すべてのデータが同期されるのを待機します。これにより、データ損失が防止され、計画されたテストに適しています。ハード フェイルオーバーでは、可用性が優先され、以前のプライマリに到達できない場合でも、新しいプライマリが引き継ぎます。