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 はディレクトリである必要があります。
- テーブルのロケーション 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 外部テーブルの制限事項がすべて適用されます。
パーティションの制限事項
- パーティション レベルでの列レベルの統計情報の追跡はサポートされていません。
BatchCreateHivePartitionsAPI は、呼び出しを 900 パーティションに制限します。
次のステップ
- Lakehouse ランタイム カタログで Spark と Hive を使用する。