Einschränkungen und Überlegungen

Durch die Integration von Spark und Hive in den Lakehouse-Laufzeitkatalog wird der Betriebsaufwand für die Wartung eines selbst gehosteten Hive-Metastores (HMS) reduziert und eine einheitliche Metadatenfreigabe sowie direkte Tabellenabfragen in BigQuery ermöglicht.

In diesem Dokument werden die funktionalen Einschränkungen und Serviceüberlegungen dieser Integration erläutert. Bevor Sie Ihre Open-Source-Datenbankpipelines zum Lakehouse-Laufzeitkatalog migrieren oder darauf aufbauen, sollten Sie diese Einschränkungen prüfen, um festzustellen, ob diese Integration Ihren technischen Anforderungen entspricht.

Anstelle von Limits finden Sie Konfigurations- und Abfrageanleitungen unter Spark und Hive mit dem Lakehouse-Laufzeitkatalog verwenden.

Einschränkungen des Lakehouse-Laufzeitkatalogs

In diesem Abschnitt werden die Einschränkungen bei der Verwendung des Lakehouse-Laufzeitkatalogs mit verschiedenen Diensten aufgeführt.

Einschränkungen des Metastores

  • Managed Service for Apache Spark unterstützt nur PySpark-Jobs mit einem grenzenlosen Lakehouse-Metastore.
  • Mit der Dataproc API können keine Lakehouse-Metastore-Properties im Feld properties festgelegt werden.
  • Sie können keine Managed Service for Apache Spark-Cluster erstellen, die Kerberos verwenden, da der Lakehouse-Laufzeitkatalog keine APIs für Delegierungstoken oder Primärschlüssel unterstützt.
  • Für Datenbanken und Tabellen kann ein Cloud Storage-location_uri verwendet werden, der sich von ihrem Hive-Katalog unterscheidet, sofern 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 wird nicht unterstützt.

Tabelleneinschrä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ß-/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 (schreibgeschützt) unterstützt. Hive-Clients (z. B. Hive CLI) unterstützen keine Delta Lake-Tabellen. All Einschränkungen für externe BigQuery Delta Lake-Tabellen und BigLake-Tabellen gelten. Weitere Informationen und spezifische Einschränkungen finden Sie unter Spark mit Delta-Tabellen einrichten.

Batchgröße für Partitionen

Der Lakehouse-Laufzeitkatalog unterstützt das Speichern und Abrufen von Partitionierungsinformationen zur Verwendung bei der Partitionierung. Er ist für Lesevorgänge über Schreibvorgänge optimiert, was durch die Partitionierung zu einer schnelleren Abfrageleistung führt.

Um die Leistung bei der Aufnahme von Partitionen zu optimieren, ist die Batchgröße für Partitionen auf 900 begrenzt.

Legen Sie die folgende Konfiguration für die Hive- und Spark-Properties 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 werden in BigQuery die Datentypen ARRAY<ARRAY<>> oder ARRAY<MAP<>> nicht unterstützt. Die Unterstützung für MAP muss einer Zulassungsliste hinzugefügt werden. Wenden Sie sich an biglake-help@google.com, wenn Ihre Arbeitslasten MAP häufig verwenden.
  • MAP-Schlüsseltypen unterstützen nur primitive Datentypen. Sie können ARRAY, STRUCT oder MAP nicht als Schlüsseltypen verwenden.
  • BigQuery kann nur Daten aus Cloud Storage abfragen. Es gelten folgende Einschränkungen:

    • URI für Tabellenspeicherorte dürfen kein Platzhalterzeichen (*) enthalten.
    • URI für Tabellenspeicherorte müssen Verzeichnisse sein.

Einschränkungen bei der regionsübergreifenden Replikation und der Notfallwiederherstellung

Der Lakehouse-Laufzeitkatalog bietet regionsübergreifende Replikation und Notfallwiederherstellung, um die Verfügbarkeit und Zuverlässigkeit 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 primary_location so festlegen, dass er der Region Ihres Cloud Storage-Bucket entspricht. Der Lakehouse-Laufzeitkatalog kopiert die Metadaten dann automatisch in eine sekundäre Region, basierend auf der Dual-Region- oder Multiregion-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_time nur die Replikation von Katalogmetadaten erfasst. Es wird nicht erfasst, ob die Replikation der zugrunde liegenden Cloud Storage-Datendateien in die sekundäre Region abgeschlossen ist. Die Datenredundanz hängt von den Dual-Region- oder Multiregion-Einstellungen Ihres Buckets ab, die unabhängig von der Replikation der Lakehouse-Laufzeitkatalog-Metadaten sind.

Hinweise

Der Lakehouse-Laufzeitkatalog unterstützt eine Teilmenge 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-Laufzeitkatalog-Ressourcen 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. Governance auf Spaltenebene wird nicht unterstützt.

Speichereinschränkungen

  • Alle Einschränkungen für externe BigQuery-Tabellen gelten.

Partitionseinschränkungen

  • Das Erfassen von Statistiken auf Spaltenebene auf Partitionsebene wird nicht unterstützt.
  • Die BatchCreateHivePartitions API-Limits beschränken Aufrufe auf 900 Partitionen.

Nächste Schritte