Hive-BigQuery-Connector

Mit dem Open-Source- Hive-BigQuery-Connector können Ihre Apache Hive Arbeitslasten Daten aus und in BigQuery und BigLakeTabellen lesen und 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 eingebunden 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 der Rechen- und der Datenschicht positioniert ist.

Hive-BigQuery-Connector-Architektur

Anwendungsfälle

Hier sind einige Beispiele dafür, wie der Hive-BigQuery-Connector in gängigen datengesteuerten Szenarien helfen kann:

  • Datenmigration. Sie möchten Ihr Hive-Data Warehouse zu BigQuery migrieren, dann Ihre Hive-Abfragen schrittweise in den BigQuery-SQL-Dialekt übersetzen. Aufgrund der Größe Ihres Data Warehouse und der großen Anzahl verbundener Anwendungen wird die Migration voraussichtlich viel Zeit in Anspruch nehmen. Sie müssen die Kontinuität während der Migrationsvorgänge gewährleisten. So sieht der Workflow aus:

    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 schrittweise in den BigQuery SQL-Dialekt übersetzen, der mit ANSI kompatibel ist.
    3. Nach Abschluss der Migration und Übersetzung stellen Sie Hive ein.
  • Hive- und BigQuery-Workflows. Sie möchten Hive für einige Aufgaben und BigQuery für Arbeitslasten 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.

  • Abhängigkeit von einem Open-Source-Software-Stack (OSS). Um eine Anbieterbindung zu vermeiden, verwenden Sie einen vollständigen OSS-Stack für Ihr Data Warehouse. So sieht Ihr Datenplan aus:

    1. Sie migrieren Ihre Daten im ursprünglichen OSS-Format, z. B. Avro, Parquet oder ORC, mit einer BigLake-Verbindung zu 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 die folgenden Funktionen zu nutzen:

Funktionen

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 aus 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.
  • Daten mit den folgenden Methoden schreiben:
    • Direkte Schreibvorgänge mit der BigQuery Storage Write API im Modus „Ausstehend“. Verwenden Sie diese Methode für Arbeitslasten, die eine geringe Schreiblatenz erfordern, z. B. Dashboards in Echtzeit mit kurzen Aktualisierungszeiträumen.
    • Indirekte Schreibvorgänge durch Staging 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-Lade jobs keine Gebühren anfallen. Diese Methode ist langsamer und eignet sich am besten für Arbeitslasten, die nicht zeitkritisch sind.
  • Auf zeitpartitionierte und gruppierte BigQuery-Tabellen zugreifen. Im folgenden Beispiel wird die Beziehung zwischen einer Hive-Tabelle und einer Tabelle definiert, die in BigQuery partitioniert und gruppiert 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'
    );
  • Spalten bereinigen, um zu vermeiden, dass unnötige Spalten aus der Datenschicht abgerufen werden.

  • Prädikat-Pushdowns verwenden, um Datenzeilen auf der BigQuery-Speicher ebene vorzufiltern. Mit dieser Technik kann die allgemeine Abfrageleistung erheblich verbessert werden, da die Menge der Daten, die über das Netzwerk übertragen werden, reduziert wird.

  • Hive-Datentypen automatisch in BigQuery-Datentypen konvertieren.

  • BigQuery-Ansichten und Tabellen-Snapshots lesen.

  • In Spark SQL einbinden.

  • In Apache Pig und HCatalog einbinden.

Jetzt starten

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