Hive-BigQuery-Connector

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

Mit dem Hive-BigQuery-Connector wird die Hive Storage Handler API implementiert, damit Hive-Arbeitslasten in BigQuery- und BigLake-Tabellen eingebunden werden können. Die Hive-Ausführungs-Engine verarbeitet Rechenvorgänge wie Aggregate und Joins, während der Connector Interaktionen mit Daten verwaltet, die in BigQuery oder in mit BigLake verbundenen Cloud Storage-Buckets gespeichert sind.

Das folgende Diagramm zeigt, wie der Hive-BigQuery-Connector zwischen Computing- und Datenebene passt.

Hive-BigQuery-Connector-Architektur

Anwendungsfälle

Im Folgenden finden Sie einige Beispiele dafür, wie der Hive-BigQuery-Connector Sie in gängigen datengesteuerten Szenarien unterstützen kann:

  • Datenmigration Sie planen, Ihr Hive-Data Warehouse nach BigQuery zu verschieben und Ihre Hive-Abfragen dann schrittweise in den BigQuery-SQL-Dialekt zu übersetzen. Sie erwarten, dass die Migration aufgrund der Größe Ihres Data Warehouse und der großen Anzahl verbundener Anwendungen sehr lange dauert und Sie während der Migrationsvorgänge für Kontinuität sorgen müssen. So sieht der Workflow aus:

    1. Sie verschieben Ihre Daten zu BigQuery
    2. Mit dem Connector greifen Sie auf Ihre ursprünglichen Hive-Abfragen zu und führen sie aus, während Sie die Hive-Abfragen schrittweise in einen BigQuery-ANSI-kompatiblen SQL-Dialekt übersetzen.
    3. Nach Abschluss der Migration und Übersetzung wird Hive eingestellt.
  • Hive- und BigQuery-Workflows Sie möchten Hive für einige Aufgaben und BigQuery für Arbeitslasten verwenden, die von den Features wie BigQuery BI Engine oder BigQuery ML profitieren. Sie verwenden den Connector, um Hive-Tabellen mit Ihren BigQuery-Tabellen zu verknüpfen.

  • Die Abhängigkeit von einem Open-Source-Software-Stack (OSS). Verwenden Sie für Ihr Data Warehouse einen vollständigen OSS-Stack, um eine Anbieterabhängigkeit zu vermeiden. So sieht Ihr Datentarif aus:

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

    2. Sie verwenden Hive weiterhin zum Ausführen und Verarbeiten Ihrer Hive SQL-Dialektabfragen.

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

Features

Sie können den Hive-BigQuery-Connector verwenden, um mit Ihren BigQuery-Daten zu arbeiten und die folgenden Aufgaben auszuführen:

  • Abfragen mit den Ausführungs-Engines von MapReduce und Tez ausführen
  • BigQuery-Tabellen in Hive erstellen und löschen.
  • BigQuery- und BigLake-Tabellen mit Hive-Tabellen verknüpfen.
  • Mit den Storage Read API-Streams und dem Apache Arrow-Format schnelle Lesevorgänge aus BigQuery-Tabellen 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 niedrige Schreiblatenz erfordern, z. B. Dashboards in nahezu Echtzeit mit kurzen Aktualisierungszeitfenstern.
    • Indirekte Schreibvorgänge durch Staging temporärer Avro-Dateien in Cloud Storage und anschließendes Laden der Dateien in eine Zieltabelle mithilfe der Load Job API. Diese Methode ist kostengünstiger als die direkte Methode, da für BigQuery-Load-Jobs keine Gebühren anfallen. Da diese Methode langsamer ist und ihre beste Verwendung in Arbeitslasten findet, die nicht zeitkritisch sind
  • Zugriff auf nach Zeit partitionierte und geclusterte BigQuery-Tabellen. Im folgenden Beispiel wird die Beziehung zwischen einer Hive-Tabelle und einer in BigQuery partitionierten und geclusterten Tabelle definiert.

    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, damit keine unnötigen Spalten aus der Datenschicht abgerufen werden.

  • Verwenden Sie Prädikat-Pushdowns, um Datenzeilen auf BigQuery-Speicherebene vorzufiltern. Mit diesem Verfahren kann die gesamte Abfrageleistung erheblich verbessert werden, da weniger Daten durch das Netzwerk geleitet werden.

  • Hive-Datentypen automatisch in BigQuery-Datentypen konvertieren

  • BigQuery-Ansichten und Tabellen-Snapshots lesen

  • Einbindung in Spark SQL

  • Einbindung in Apache Pig und HCatalog

Mehr erfahren

Weitere Informationen finden Sie in der Anleitung zum Installieren und Konfigurieren des Hive-BigQuery-Connectors in einem Hive-Cluster.