制限事項と考慮事項

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

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

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

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

Metastore の制限事項

  • サーバーレス バッチ ワークロードの場合、Managed Service for Apache Spark は、Apache Hive カタログ エンドポイントに接続するときに PySpark ジョブのみをサポートします。
  • サーバーレス ワークロードの場合、Dataproc API は properties フィールドの hive.* または hive:* metastore プロパティをサポートしていません。代わりに spark.hive.metastore.* プロパティを指定します(または、クラスタで Hive CLI を使用する場合は /etc/hive/conf/hive-site.xml フラグまたは --hiveconf フラグを構成します)。
  • Lakehouse ランタイム カタログは委任トークン API や主キー API をサポートしていないため、Kerberos を使用する Managed Service for Apache Spark クラスタを作成することはできません。
  • データベースとテーブルは、Cloud Storage バケットが Hive カタログと同じリージョンにある限り、Hive カタログとは異なる Cloud Storage location_uri を使用できます。
  • Hive カタログに Iceberg の名前空間とテーブルを含めることはできません。Iceberg の名前空間とテーブルを作成して使用するには、代わりにレイクハウス ランタイム カタログを使用します。
  • 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 ランタイム カタログは、クロスリージョン レプリケーションと障害復旧を提供し、カタログの可用性と復元力を向上させます。

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

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

考慮事項

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

リソース マッピング

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

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

ガバナンス

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

ストレージの制限

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

パーティションの制限

  • パーティション レベルでの列レベルの統計情報のトラッキングはサポートされていません。
  • BatchCreatePartitions、BatchDeletePartitions、BatchUpdatePartitions の API メソッドでは、呼び出しがバッチあたり 900 パーティションに制限されます。

次のステップ