Apache Hive zu BigQuery migrieren: Übersicht
In diesem Dokument werden die Unterschiede zwischen Apache Hive und BigQuery verglichen und wichtige Aspekte der Migration erläutert. Weitere Informationen zum Abschließen der Migration finden Sie in der Migrationsanleitung für Apache Hive.
Verwenden Sie die Batch-SQL-Übersetzung, um Ihre SQL-Skripts im Bulk zu migrieren, oder die interaktive SQL-Übersetzung, um Ad-hoc-Abfragen zu übersetzen. Apache HiveQL wird von beiden SQL-Übersetzungsdiensten vollständig unterstützt.
Features
Hive und BigQuery sind beide verteilte Systeme für Data Warehouses. In der folgenden Tabelle werden einige ihrer wichtigsten Funktionen verglichen:
Feature | Hive | BigQuery |
---|---|---|
Verfügbarkeit | Abhängig von der Implementierung | >= 99,99 % monatliche Betriebszeit |
Kontingente | Abhängig von der Implementierung | BigQuery-Kontingente |
Unterstütztes Format | Avro, Parquet, ORC, Text | Avro, Parquet, ORC, CSV, JSON, Google Drive |
Verwalteter Tabellenspeicher | HDFS | BigQuery-Speicher im Capacitor-Format |
Externe Tabellenquellen | HDFS, HBase | Google Cloud Storage, Google Tabellen, Bigtable |
Transaktion | Begrenzt. ACID-Partition | Auf Partitionsebene begrenzt. Unterstützt Transaktionen mit mehreren Anweisungen. |
API-Support | JDBC, ODBC, Thrift | JDBC, ODBC, Clientbibliothek mit vielen Sprachen |
Partitionierung | Support | Zeiteinheitsspalte, Aufnahmezeit oder Ganzzahlbereich |
Clustering | Support | Support |
Replikation | Hängt vom HDFS ab. Keine Rechenzentrumsübergreifende Replikation | Zuverlässige Rechenzentrumsübergreifende Replikation, die von Google verwaltet wird |
UDF | Alle Sprachen | SQL oder JavaScript |
Daten laden | Batch, Streaming (eingeschränkt) | Batch, Streaming |
Datenvorgänge | DDL, DML | DDL, DML, DCL, TCL |
Datentypen
Apache Hive und BigQuery haben unterschiedliche Datentypsysteme. In den meisten Fällen können Datentypen in Hive BigQuery-Datentypen zugeordnet werden, mit einigen Ausnahmen wie MAP
und UNION
. Apache Hive führt mehr implizite Typumwandlungen durch als BigQuery. Daher fügt der Batch-SQL-Übersetzer viele explizite Umwandlungen ein.
Hive | BigQuery |
---|---|
TINYINT | INT64 |
SMALLINT | INT64 |
INT | INT64 |
BIGINT | INT64 |
DECIMAL | NUMERIC |
FLOAT | FLOAT64 |
DOUBLE | FLOAT64 |
BOOLEAN | BOOL |
STRING | STRING |
VARCHAR | STRING |
CHAR | STRING |
BINARY | BYTES |
DATE | DATE |
- | DATETIME |
- | TIME |
TIMESTAMP | DATETIME/TIMESTAMP |
INTERVAL | - |
ARRAY | ARRAY |
STRUCT | STRUCT |
MAPS | STRUCT mit Schlüsselwerten (REPEAT-Feld) |
UNION | STRUCT mit verschiedenen Typen |
- | GEOGRAPHY |
- | JSON |
Benutzerdefinierte Funktionen
Apache Hive unterstützt das Schreiben benutzerdefinierter Funktionen (UDFs) in Java. Sie können UDFs in Hive laden, um sie in regulären Abfragen zu verwenden. BigQuery-UDFs müssen in GoogleSQL oder JavaScript geschrieben sein. Die Konvertierung der Hive-UDFs in SQL-UDFs wird empfohlen, da SQL-UDFs eine bessere Leistung erzielen. Wenn Sie JavaScript verwenden müssen, lesen Sie Best Practices für JavaScript-UDFs. Für andere Sprachen unterstützt BigQuery Remote-Funktionen, mit denen Sie Ihre Funktionen in Cloud Functions oder Cloud Run aus GoogleSQL-Abfragen aufrufen können.
BigQuery unterstützt keine benutzerdefinierten Aggregationsfunktionen (UDAFs).
Sicherheit
Hive und BigQuery haben unterschiedliche Sicherheitsmodelle, die in den folgenden Abschnitten beschrieben werden:
Hive-Zugriffssteuerung
Zu Autorisierungszwecken hat Hive eine SQL-Standardbasierte Autorisierung (seit Hive 0.13.0) eingeführt, um eine detaillierte Zugriffssteuerung zu ermöglichen. Es verwendet die rollenbasierte Zugriffssteuerung (RBAC), um die Autorisierung für eine große Anzahl von Nutzern und Datenobjekten in einer typischen Unternehmensumgebung zu verwalten. Dieser Sicherheitsmechanismus basiert auf den Hadoop-Identitäten. Hadoop benötigt Kerberos, um Identitäten zu authentifizieren.
Mit Apache Sentry und Apache Ranger schützen
Apache Ranger und Apache Sentry sind Apache-Projekte, die von Hive bereitgestellte Plug-ins verwenden, um die Autorisierung zu implementieren. Durch die Konfiguration von Hive-RBAC werden die Daten nicht vollständig gesichert, da Hive-Daten normalerweise in HDFS gespeichert werden, wo ein Nutzer direkt Daten erreichen kann, die er nicht sehen sollte. Ranger und Sentry erzwingen auch Daten auf HDFS mit POSIX-ACLs, die aus den RBAC-Einstellungen von Hive übersetzt wurden.
BigQuery-Sicherheit
BigQuery verwendet Identitäts- und Zugriffsverwaltung, um den Zugriff auf Daten in einem Projekt zu steuern. Sie können den Zugriff auf BigQuery-Datasets einschränken. Tabellen und Ansichten sind untergeordnete Ressourcen von Datasets. Ihre Berechtigungen werden von Datasets übernommen. Sie können einzelnen Tabellen die Sicherheit auf Zeilenebene und Spaltenebene zuweisen.
Sie können den Zugriff auch mithilfe von autorisierten Ansichten und autorisierten Datasets einschränken.
BigQuery verschlüsselt Daten standardmäßig. Zur Verwaltung Ihrer eigenen Verschlüsselungsschlüssel können Sie Cloud KMS mit BigQuery verwenden.
Nächste Schritte
Schritt-für-Schritt-Anleitung zum Migrieren von Schema und Daten aus Apache Hive.
Sehen Sie sich die Apache Hive SQL-Übersetzungsanleitung an.