Wenn Sie Apache Spark und Apache Hive über den Apache Hive-Katalogendpunkt in den Lakehouse-Laufzeitkatalog einbinden, können Sie einheitliche Metadaten freigeben und Tabellen direkt in BigQuery abfragen, ohne einen selbst gehosteten Hive Metastore (HMS) verwalten zu müssen.
Bevor Sie Open-Source-Datenbankpipelines im Lakehouse-Laufzeitkatalog migrieren oder erstellen, sollten Sie die funktionalen Einschränkungen und Dienstüberlegungen in diesem Dokument prüfen, um festzustellen, ob die Integration Ihren technischen Anforderungen entspricht. Eine Anleitung zum Einrichten und Abfragen finden Sie unter Spark und Hive mit dem Lakehouse-Laufzeitkatalog einrichten.
Einschränkungen des Lakehouse-Laufzeitkatalogs
In diesem Abschnitt werden die Einschränkungen bei der Verwendung des Lakehouse-Laufzeitkatalogs mit verschiedenen Diensten aufgeführt.
Metastore-Einschränkungen
- Für serverlose Batcharbeitslasten unterstützt Managed Service for Apache Spark nur PySpark-Jobs, wenn eine Verbindung zum Apache Hive-Katalogendpunkt hergestellt wird.
- Für serverlose Arbeitslasten unterstützt die Dataproc API die Metastore-Attribute
hive.*oderhive:*im Feldpropertiesnicht. Geben Sie stattdessenspark.hive.metastore.*-Attribute an oder konfigurieren Sie die Flags/etc/hive/conf/hive-site.xmloder--hiveconf, wenn Sie die Hive CLI auf einem Cluster verwenden. - Sie können keine Managed Service for Apache Spark-Cluster erstellen, die Kerberos verwenden, da der Lakehouse-Laufzeitkatalog keine Delegierungstoken- oder Primärschlüssel-APIs unterstützt.
- Datenbanken und Tabellen können einen Cloud Storage-
location_uriverwenden, der sich von ihrem Hive-Katalog unterscheidet, solange sich der Cloud Storage-Bucket in derselben Region wie der Hive-Katalog befindet. - Der Hive-Katalog darf keine Iceberg-Namespaces und -Tabellen enthalten. Verwenden Sie stattdessen den Lakehouse-Laufzeitkatalog, um Iceberg-Namespaces und -Tabellen zu erstellen und zu verwenden.
- Kaskadierende Löschvorgänge werden für Hive-Datenbanken und Hive-Kataloge nicht unterstützt.
- Trino-Unterstützung ist nicht verfügbar.
Tabellenbeschränkungen
- Das Umbenennen von Tabellen wird nicht unterstützt.
- Das Umbenennen von Partitionen wird nicht unterstützt.
- Durch das Löschen von Tabellen oder Datenbanken werden die zugehörigen Dateien nicht aus Cloud Storage entfernt.
- Die Suche ohne Berücksichtigung der Groß- und Kleinschreibung wird nicht unterstützt.
- Clustering und Bucketing werden nicht unterstützt.
- Es werden nur virtuelle Ansichten unterstützt.
- Delta Lake-Tabellen werden über Apache Spark (Lesen und Schreiben) und BigQuery (nur Lesen) unterstützt. Hive-Clients (z. B. Hive CLI) unterstützen keine Delta Lake-Tabellen. Es gelten alle Einschränkungen für externe BigQuery Delta Lake-Tabellen und Einschränkungen für BigLake-Tabellen. Weitere Informationen und spezifische Einschränkungen finden Sie unter Spark mit Delta-Tabellen einrichten.
Batchgröße der Partition
Der Lakehouse-Laufzeitkatalog unterstützt das Speichern und Abrufen von Partitionierungsinformationen für die Verwendung beim Partition Pruning. Es ist für Lesevorgänge gegenüber Schreibvorgängen optimiert, was durch Partitionsbereinigung zu einer schnelleren Abfrageleistung führt.
Um die Leistung der Partitionsaufnahme zu optimieren, ist die Größe der Batchpartition auf 900 begrenzt.
Legen Sie die folgende Konfiguration für die Hive- und Spark-Attribute fest, die die Batchgröße von Partitionierungsvorgängen bestimmen:
SET hive.msck.repair.batch.size = 900;SET spark.sql.addPartitionInBatch.size = 900;
BigQuery-Einschränkungen
- Standardmäßig unterstützt BigQuery die Datentypen
ARRAY<ARRAY<>>undARRAY<MAP<>>nicht. Die Unterstützung fürMAPmuss einer Zulassungsliste hinzugefügt werden. Wenden Sie sich an biglake-help@google.com, wenn Ihre ArbeitslastenMAPin großem Umfang verwenden. MAP-Schlüsseltypen unterstützen nur primitive Datentypen. Sie könnenARRAY,STRUCToderMAPnicht als Schlüsseltypen verwenden.BigQuery kann nur Daten aus Cloud Storage abfragen. Es gelten folgende Einschränkungen:
- URIs für Tabellenspeicherorte dürfen keinen Platzhalter (
*) enthalten. - URIs für Tabellenspeicherorte müssen Verzeichnisse sein.
- URIs für Tabellenspeicherorte dürfen keinen Platzhalter (
Einschränkungen bei der regionsübergreifenden Replikation und Notfallwiederherstellung
Der Lakehouse-Laufzeitkatalog bietet regionenübergreifende Replikation und Notfallwiederherstellung, um die Verfügbarkeit und Ausfallsicherheit Ihres Katalogs zu verbessern.
Wenn Sie den Lakehouse-Laufzeitkatalog mit Hive-Katalogen verwenden, gelten die folgenden Einschränkungen:
- Wenn Sie einen Hive-Katalog erstellen, müssen Sie dessen
primary_locationso festlegen, dass er mit der Region Ihres Cloud Storage-Bucket übereinstimmt. Der Lakehouse-Laufzeitkatalog kopiert die Metadaten dann automatisch in eine sekundäre Region, basierend auf der Dual-Region- oder Multi-Region-Konfiguration Ihres Buckets. Diese sekundäre Metadatenkopie hat Lesezugriff, bis Sie sie mit einem Failover-Vorgang zur primären Kopie hochstufen. - Während eines Failovers wird mit dem Zeitstempel
replication_timenur die Replikation von Katalogmetadaten erfasst, nicht aber, ob die zugrunde liegenden Cloud Storage-Datendateien vollständig in die sekundäre Region repliziert wurden. Die Datenredundanz hängt von den Dual-Region- oder Multi-Region-Einstellungen Ihres Buckets ab, die von der Replikation der Metadaten des Lakehouse-Laufzeitkatalogs getrennt sind.
Hinweise
Der Lakehouse-Laufzeitkatalog unterstützt einen Teil der Hive Metastore-Schnittstelle. Bei diesem Design wird die Kompatibilität mit dem Spark-ExternalCatalog priorisiert, für den keine vollständige Kompatibilität mit dem Hive-Metastore erforderlich ist.
Ressourcenzuordnung
In der folgenden Tabelle werden Hive Metastore-Ressourcen den Lakehouse-Laufzeitkatalogressourcen und den erforderlichen IAM-Berechtigungen (Identity and Access Management) zugeordnet.
| Hive Metastore-Ressource | Lakehouse-Laufzeitkatalog-Ressource | IAM-Berechtigung |
|---|---|---|
| Katalog | Katalog | biglake.catalogs.* |
| Datenbank | Datenbank | biglake.namespaces.* |
| Tabelle | Tabelle | biglake.tables.* |
Governance
Der Hive Metastore (HMS) bietet Governance auf Tabellen-, Spalten- und Partitionsebene. Der Lakehouse-Laufzeitkatalog bietet IAM-Berechtigungen auf Tabellen- und Partitionsebene. Die Governance auf Spaltenebene wird nicht unterstützt.
Speicherbeschränkungen
- Es gelten alle Einschränkungen für externe BigQuery-Tabellen.
Partitionsbeschränkungen
- Das Erfassen von Statistiken auf Spaltenebene auf Partitionsebene wird nicht unterstützt.
- Die API-Methoden
BatchCreatePartitions,BatchDeletePartitionsundBatchUpdatePartitionsbeschränken Aufrufe auf 900 Partitionen pro Batch.