Hive-BigQuery-Connector

Mit dem Open-Source-Hive-BigQuery-Connector können Sie mit Ihren Apache Hive-Arbeitslasten Daten aus BigQuery- und BigLake-Tabellen lesen und in diese schreiben. 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 verarbeitet Verarbeitungsvorgänge wie Aggregationen und Joins. Der Connector verwaltet Interaktionen mit Daten, die in BigQuery oder in Cloud Storage-Buckets mit BigLake-Verbindung gespeichert sind.

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 möchten Ihr Hive-Data Warehouse zu BigQuery migrieren und dann Ihre Hive-Abfragen nach und nach in den BigQuery-SQL-Dialekt ü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. 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. die BigQuery BI Engine oder BigQuery ML. Mit dem Connector können Sie Hive-Tabellen mit Ihren BigQuery-Tabellen zusammenführen.

  • Ein Open-Source-Software-Stack (OSS-Stack) 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 über eine BigLake-Verbindung in Cloud Storage-Buckets.

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

    3. Sie können den Connector nach Bedarf verwenden, 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 den Ausführungs-Engines MapReduce und Tez ausführen
  • BigQuery-Tabellen in Hive erstellen und löschen
  • BigQuery- und BigLake-Tabellen mit Hive-Tabellen zusammenführen
  • Schnelles Lesen aus BigQuery-Tabellen mithilfe der Streams der Storage Read API und des Apache Arrow-Formats
  • 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 mit niedriger Schreiblatenz, z. B. Dashboards in nahezu Echtzeit mit kurzen Aktualisierungsfenstern.
    • Indirekte Schreibvorgänge, bei denen temporäre Avro-Dateien in Cloud Storage bereitgestellt und dann mit der Load Job API in eine Zieltabelle geladen werden. 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.
  • Sie können auf zeitlich partitionierte und geclusterte BigQuery-Tabellen zugreifen. 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 Datenebene 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.

  • Integration mit Spark SQL

  • Integration mit Apache Pig und HCatalog.

Mehr erfahren

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