Hive-BigQuery-Connector

Mit dem Open-Source Connector Hive-BigQuery können Ihre Apache Hive Arbeitslasten Daten aus und in BigQuery und BigLake Tabellen 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 Ihnen in gängigen datengesteuerten Szenarien helfen kann:

  • Datenmigration. Sie möchten Ihr Hive-Data Warehouse zu BigQuery migrieren und 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 können Sie Hive einstellen.
  • Hive- und BigQuery-Workflows. Sie möchten Hive für einige Aufgaben und BigQuery für Arbeitslasten verwenden, die von den Funktionen von BigQuery 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 Anbieterabhängigkeit zu vermeiden, verwenden Sie einen vollständigen OSS-Stack für Ihr Data Warehouse. So sieht Ihr Datentarif aus:

    1. Sie migrieren Ihre Daten im ursprünglichen OSS-Format, z. B. Avro, Parquet oder ORC, über eine 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:

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 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 in BigQuery 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-Ladejobs keine Kosten 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 in der BigQuery-Speicherschicht vorzufiltern. Diese Technik kann die allgemeine Abfrageleistung erheblich verbessern, indem die Menge der Daten reduziert wird, die über das Netzwerk übertragen werden.

  • 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.