制限事項と考慮事項

Spark と Hive を Lakehouse ランタイム カタログと統合すると、セルフホストの Hive Metastore(HMS)を維持する運用上のオーバーヘッドが解消され、BigQuery での統合メタデータの共有とテーブルの直接クエリが可能になります。

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

上限ではなく構成とクエリの手順については、Lakehouse ランタイム カタログで Spark と Hive を使用するをご覧ください。

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

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

Metastore の制限事項

  • Managed Service for Apache Spark は、ボーダーレス Lakehouse Metastore を使用する PySpark ジョブのみをサポートします。
  • Dataproc API は、properties フィールドでの Lakehouse Metastore プロパティの設定をサポートしていません。
  • 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 Metastore リソース Lakehouse ランタイム カタログ リソース IAM 権限
カタログ カタログ biglake.catalogs.*
データベース データベース biglake.namespaces.*
テーブル テーブル biglake.tables.*

ガバナンス

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

ストレージの制限事項

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

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

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

次のステップ