Hive-BigQuery-Connector

Mit dem Open-Source-Hive-BigQuery-Connector können Ihre Apache Hive-Arbeitslasten Daten aus BigQuery- und BigLake-Tabellen lesen und in diese schreiben. Sie können Daten in BigQuery-Speicher oder in Open-Source-Datenformaten in Cloud Storage speichern.

Der Hive-BigQuery-Connector implementiert die Hive Storage Handler API, damit Hive-Arbeitslasten in BigQuery- und BigLake-Tabellen integriert werden können. Die Hive-Ausführungs-Engine verarbeitet Rechenvorgänge wie Aggregationen und Joins. Der Connector verwaltet Interaktionen mit Daten, die in BigQuery oder in mit BigLake verbundenen Cloud Storage-Buckets gespeichert sind.

Das folgende Diagramm veranschaulicht, wie der Hive-BigQuery-Connector zwischen die Compute- und Datenebene passt.

Hive-BigQuery-Connector-Architektur

Anwendungsfälle

Hier sind einige Möglichkeiten, wie der Hive-BigQuery-Connector Sie in gängigen datengesteuerten Szenarien unterstützen kann:

  • Datenmigration Sie planen, Ihr Hive-Data Warehouse zu BigQuery zu migrieren und Ihre Hive-Abfragen dann schrittweise in den BigQuery-SQL-Dialekt zu übersetzen. Sie gehen davon aus, dass die Migration aufgrund der Größe Ihres Data Warehouse und der großen Anzahl verbundener Anwendungen viel Zeit in Anspruch nehmen wird, und müssen für Kontinuität während der Migrationsvorgänge sorgen. So funktioniert es:

    1. Sie verschieben Ihre Daten zu BigQuery.
    2. Mit dem Connector können Sie auf Ihre ursprünglichen Hive-Abfragen zugreifen und sie ausführen, während Sie die Hive-Abfragen nach und nach in den ANSI-kompatiblen SQL-Dialekt von BigQuery übersetzen.
    3. Nach Abschluss der Migration und Übersetzung wird Hive eingestellt.
  • Hive- und BigQuery-Workflows Sie planen, Hive für einige Aufgaben und BigQuery für Arbeitslasten zu verwenden, die von den Funktionen profitieren, z. B. BigQuery BI Engine oder BigQuery ML. Mit dem Connector können Sie Hive-Tabellen mit Ihren BigQuery-Tabellen verknüpfen.

  • Verwendung eines Open-Source-Software-Stacks (OSS). Um eine Abhängigkeit von einem bestimmten Anbieter zu vermeiden, verwenden Sie für Ihr Data Warehouse einen vollständigen OSS-Stack. Hier ist Ihr Datenplan:

    1. Sie migrieren Ihre Daten im ursprünglichen OSS-Format, z. B. Avro, Parquet oder ORC, mithilfe einer BigLake-Verbindung in Cloud Storage-Buckets.

    2. Sie verwenden weiterhin Hive, um Ihre Hive-SQL-Dialekt-Abfragen auszuführen und zu verarbeiten.

    3. Sie verwenden den Connector nach Bedarf, um eine Verbindung zu BigQuery herzustellen und von den folgenden Funktionen zu profitieren:

Features

Mit dem Hive-BigQuery-Connector können Sie mit Ihren BigQuery-Daten arbeiten und die folgenden Aufgaben ausführen:

  • Abfragen mit MapReduce- und Tez-Ausführungs-Engines ausführen
  • BigQuery-Tabellen in Hive erstellen und löschen
  • BigQuery- und BigLake-Tabellen mit Hive-Tabellen verknüpfen
  • Schnelle Lesevorgänge aus BigQuery-Tabellen mit den Storage Read API-Streams und dem Apache Arrow-Format ausführen
  • Sie können Daten mit den folgenden Methoden in BigQuery schreiben:
    • Direkte Schreibvorgänge mit der BigQuery Storage Write API im ausstehenden Modus. Verwenden Sie diese Methode für Arbeitslasten, die eine niedrige Schreiblatenz erfordern, z. B. Dashboards in Echtzeit mit kurzen Aktualisierungszeiträumen.
    • Indirektes Schreiben durch Bereitstellen temporärer Avro-Dateien in Cloud Storage und anschließendes Laden der Dateien in eine Zieltabelle mit der Load Job API. Diese Methode ist kostengünstiger als die direkte Methode, da für BigQuery-Ladejobs keine Gebühren anfallen. Da diese Methode langsamer ist, eignet sie sich am besten für Arbeitslasten, die nicht zeitkritisch sind.
  • Greifen Sie auf zeitpartitionierte und geclusterte BigQuery-Tabellen zu. Im folgenden Beispiel wird die Beziehung zwischen einer Hive-Tabelle und einer Tabelle definiert, die in BigQuery partitioniert und geclustert ist.

    CREATE TABLE my_hive_table (int_val BIGINT, text STRING, ts TIMESTAMP)
    STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler'
    TBLPROPERTIES (
    'bq.table'='myproject.mydataset.mytable',
    'bq.time.partition.field'='ts',
    'bq.time.partition.type'='MONTH',
    'bq.clustered.fields'='int_val,text'
    );
  • Entfernen Sie Spalten, um zu vermeiden, dass unnötige Spalten aus der Datenschicht abgerufen werden.

  • Verwenden Sie Predicate Pushdowns, um Datenzeilen in der BigQuery-Speicherebene vorzufiltern. Mit dieser Technik lässt sich die allgemeine Abfrageleistung erheblich verbessern, da die Menge der Daten, die das Netzwerk durchlaufen, reduziert wird.

  • Hive-Datentypen werden automatisch in BigQuery-Datentypen konvertiert.

  • BigQuery-Ansichten und Tabellen-Snapshots

  • Integration in Spark SQL

  • Integration in Apache Pig und HCatalog.

Jetzt starten

Eine Anleitung zum Installieren und Konfigurieren des Hive-BigQuery-Connectors in einem Hive-Cluster finden Sie hier.