Hive-BigQuery-Connector

Open Source Hive-BigQuery-Connector kann Ihr Apache Hive Arbeitslasten lesen und schreiben Daten aus und in BigQuery und BigLake-Tabellen. Sie können Daten im BigQuery-Speicher oder in Open-Source-Datenformaten in Cloud Storage speichern.

Der Hive-BigQuery-Connector implementiert die Hive Storage Handler API, um Hive-Arbeitslasten in BigQuery- und BigLake-Tabellen einzubinden. Die Hive-Ausführungs-Engine bewältigt Rechenvorgänge wie Daten aggregiert und zusammengeführt. Der Connector verwaltet Interaktionen mit Daten, die in BigQuery oder über BigLake-verbundenen Cloud Storage-Buckets.

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

Hive-BigQuery-Connector-Architektur

Anwendungsfälle

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

  • Datenmigration Sie planen, Ihr Hive-Data Warehouse zu BigQuery zu verlagern, und übersetzen Ihre Hive-Abfragen dann schrittweise in den BigQuery-SQL-Dialekt. 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. Außerdem müssen Sie für eine kontinuierliche Verfügbarkeit während der Migration sorgen. So funktionierts:

    1. Sie verschieben Ihre Daten in BigQuery.
    2. Über den Connector greifen Sie auf Ihre ursprünglichen Hive-Abfragen zu und führen sie aus, 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 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 von BigQuery profitieren, z. B. BigQuery BI Engine oder BigQuery ML. Sie verwenden den Connector, um Hive-Tabellen mit Ihren BigQuery-Tabellen zu verknüpfen.

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

    1. Sie migrieren Ihre Daten im ursprünglichen OSS-Format wie Avro, Parquet oder ORC, zu Cloud Storage-Buckets über eine BigLake-Verbindung.

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

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

Features

Sie können den Hive-BigQuery-Connector für die Arbeit mit BigQuery-Daten und führen Sie die folgenden Aufgaben aus:

  • Abfragen mit MapReduce- und Tez-Ausführungsmodulen ausführen
  • BigQuery-Tabellen in Hive erstellen und löschen
  • BigQuery- und BigLake-Tabellen mit Hive-Tabellen zusammenführen.
  • Führen Sie schnelle Lesevorgänge aus BigQuery-Tabellen mithilfe der Storage Read API-Streams und der Apache Arrow-Format
  • Schreiben Sie Daten in BigQuery mit folgendem Befehl: Methoden:
    • 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. nahezu in Echtzeit Dashboards mit kurzen Aktualisierungszeitfenstern.
    • Indirekte Schreibvorgänge durch Staging temporärer Avro-Dateien in Cloud Storage und dann Laden der Dateien mithilfe der Load Job API in eine Zieltabelle Diese Methode ist günstiger als die direkte Methode, da für BigQuery-Ladejobs keine Kosten anfallen. Da diese Methode langsamer ist, eignet sie sich am besten für Arbeitslasten, die nicht zeitkritisch sind.
  • Auf BigQuery zeitpartitioniert zugreifen und geclusterten Tabellen. 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'
    );
  • Sie können Spalten entfernen, um zu verhindern, dass unnötige Spalten aus der Datenschicht abgerufen werden.

  • Mit Prädikats-Pushdowns können Sie Datenzeilen in der BigQuery-Speicherebene vorfiltern. Mit dieser Methode lässt sich die Abfrageleistung insgesamt erheblich verbessern, da die Menge der Daten, die das Netzwerk durchlaufen, reduziert wird.

  • Hive-Datentypen automatisch in BigQuery-Datentypen konvertieren

  • Lesen Sie BigQuery-Ansichten und Tabellen-Snapshots.

  • Einbindung in Spark SQL

  • Integration mit Apache Pig und HCatalog.

Mehr erfahren

Anleitung zum Installieren und Konfigurieren des Hive-BigQuery-Connectors in einem Hive-Cluster