制限事項と考慮事項

Apache Hive カタログ エンドポイント を介して Apache Spark と Apache Hive を Lakehouse ランタイム カタログと統合すると、自己ホスト型の Hive Metastore(HMS)を維持することなく、統合されたメタデータを共有し、BigQuery でテーブルに直接クエリを実行できます。

Lakehouse ランタイム カタログでオープンソース データベース パイプラインを移行または構築する前に、このドキュメントの機能上の制約とサービスに関する考慮事項を確認して、統合が技術要件を満たしているかどうかを判断してください。設定とクエリの手順については、 Lakehouse ランタイム カタログで Spark と Hive を設定するをご覧ください。

Lakehouse ランタイム カタログの制限事項

このセクションでは、さまざまなサービスで Lakehouse ランタイム カタログを使用する場合の制限事項について説明します。

メタストアの制限事項

  • Managed Service for Apache Spark は、ボーダーレス Lakehouse Metastore を使用する PySpark ジョブのみをサポートします。
  • Dataproc API は、properties フィールドでの Lakehouse Metastore プロパティの設定をサポートしていません。
  • Lakehouse ランタイム カタログは委任トークンまたは主キー API をサポートしていないため、Kerberos を使用する Managed Service for Apache Spark クラスタを作成することはできません。
  • Cloud Storage バケットが Hive カタログと同じリージョンにある限り、データベースとテーブルは Hive カタログとは異なる Cloud Storage location_uri を使用できます。
  • Hive カタログに Iceberg Namespace とテーブルを含めることはできません。Iceberg Namespace とテーブルを作成して使用するには、代わりに Lakehouse ランタイム カタログを使用します。
  • Hive データベースと Hive カタログでは、カスケード削除はサポートされていません。
  • Trino はサポートされていません。

テーブルの制限事項

  • テーブルの名前変更はサポートされていません。
  • パーティションの名前変更はサポートされていません。
  • テーブルまたはデータベースを削除しても、関連するファイルは Cloud Storage から削除されません。
  • 大文字と小文字を区別しない検索はサポートされていません。
  • クラスタリングとバケット化はサポートされていません。
  • 仮想ビューのみがサポートされています。
  • Delta Lake テーブルは、Apache Spark(読み取りと書き込み)と BigQuery(読み取り専用)でサポートされています。Hive クライアント(Hive CLI など)は Delta Lake テーブルをサポートしていません。BigQuery Delta Lake 外部テーブルの制限事項と BigLake テーブルの制限事項がすべて適用されます。詳細と具体的な制限事項については、 Delta テーブルで Spark を設定するをご覧ください。

パーティション バッチサイズ

Lakehouse ランタイム カタログは、パーティション プルーニングで使用するパーティショニング情報の保存と取得をサポートしています。書き込みよりも読み取りに最適化されているため、パーティション プルーニングによってクエリのパフォーマンスが向上します。

パーティションの取り込みパフォーマンスを最適化するため、バッチ パーティション サイズは 900 に制限されています。

パーティショニング オペレーションのバッチサイズを決定する Hive プロパティと Spark プロパティに次の構成を設定します。

  • SET hive.msck.repair.batch.size = 900;
  • SET spark.sql.addPartitionInBatch.size = 900;

BigQuery の制限事項

  • デフォルトでは、BigQuery は ARRAY<ARRAY<>> または ARRAY<MAP<>> データ型をサポートしていません。MAP のサポートを許可リストに追加する必要があります。ワークロードで MAP を多用する場合は、biglake-help@google.com までお問い合わせください。
  • MAP キータイプはプリミティブ データ型のみをサポートします。ARRAY、STRUCT、MAP をキータイプとして使用することはできません。
  • BigQuery は Cloud Storage のデータのみをクエリできます。次の制限が適用されます。

    • テーブルのロケーション URI にワイルドカード(*)を含めることはできません。
    • テーブルのロケーション URI はディレクトリである必要があります。

クロスリージョン レプリケーションと障害復旧の制限事項

Lakehouse ランタイム カタログは、カタログの可用性と復元力を向上させるために、クロスリージョン レプリケーションと 障害復旧を提供します。

Lakehouse ランタイム カタログを Hive カタログで使用する場合、次の制限が適用されます。

  • Hive カタログを作成するときは、Cloud Storage バケットのリージョンと一致するように primary_location を設定する必要があります。Lakehouse ランタイム カタログは、バケットのデュアルリージョンまたはマルチリージョン構成に基づいて、メタデータをセカンダリ リージョンに自動的にコピーします。このセカンダリ メタデータのコピーは、フェイルオーバー オペレーションを使用してプライマリに昇格するまで読み取り専用です。
  • フェイルオーバー中、replication_time タイムスタンプはカタログ メタデータのレプリケーションのみを追跡し、基盤となる Cloud Storage データファイルがセカンダリ リージョンへのレプリケーションを完了したかどうかは追跡しません。データの冗長性は、バケットのデュアルリージョンまたはマルチリージョン設定に依存します。これは、Lakehouse ランタイム カタログのメタデータ レプリケーションとは異なります。

考慮事項

Lakehouse ランタイム カタログは、Hive Metastore インターフェースのサブセットをサポートしています。この設計では、Hive Metastore との完全な互換性を必要としない Spark ExternalCatalog との互換性が優先されます。

リソース マッピング

次の表に、Hive Metastore リソースと Lakehouse ランタイム カタログ リソース、および必要な Identity and Access Management(IAM)権限を示します。

Hive Metastore リソース Lakehouse ランタイム カタログ リソース IAM 権限
カタログ カタログ biglake.catalogs.*
データベース データベース biglake.namespaces.*
テーブル テーブル biglake.tables.*

ガバナンス

Hive Metastore(HMS)は、テーブル、列、パーティション レベルでガバナンスを提供します。Lakehouse ランタイム カタログは、テーブルレベルとパーティション レベルの IAM 権限を提供します。列レベルのガバナンスはサポートされていません。

保存容量の上限

  • BigQuery 外部テーブルの制限事項がすべて適用されます。

パーティションの制限事項

  • パーティション レベルでの列レベルの統計情報の追跡はサポートされていません。
  • BatchCreateHivePartitions API は、呼び出しを 900 パーティションに制限します。

次のステップ