Abfrageserver mit Hive synchronisieren

Sie können den Oracle Cloud SQL-Abfrageserver mit den Hive-Datenbanken synchronisieren, die Sie mit Apache Ambari oder Cloudera Manager oder der PL/SQL-API dbms_bdsqs.sync_hive_databases angegeben haben.

Verwenden Sie eine der folgenden Methoden, um den Abfrageserver mit den Hive-Datenbanken im Metastore zu synchronisieren:

  • Führen Sie in Apache Ambari oder Cloudera Manager den Befehl Restart this Cloud SQL Query Server aus.
  • Führen Sie in Apache Ambari oder Cloudera Manager den Befehl Synchronize Hive Databases aus.
  • Rufen Sie die PL/SQL-API dbms_bdsqs.sync_hive_databases lokal auf dem Edge-Knoten auf.
Hinweis

Die PL/SQL-API dbms_bdsqs.sync_hive_databases aktualisiert nur die Hive-Tabellendefinitionen für die Hive-Datenbanken, die bereits über die beiden anderen Methoden synchronisiert wurden.

Abfrageserver mit der PL/SQL-API synchronisieren

Sie können den Oracle Cloud SQL-Abfrageserver mit den Hive-Datenbanken synchronisieren, die Sie mit der PL/SQL-API angegeben haben.

Dazu rufen Sie die PL/SQL-API dbms_bdsqs.sync_hive_databases lokal auf dem Edge-Knoten auf, auf dem der Abfrageserver installiert ist.

Die Prozedur enthält keine Parameter. Sie synchronisiert alle Hive-Datenbanken, die sich bereits im Abfrageserver befinden. Die API aktualisiert den Abfrageserver nur mit den Hive-Datenbanken, die im Konfigurationsparameter sync_hive_db_list aufgeführt sind. Bei jeder nachfolgenden Synchronisierung (auch als Aktualisierung bezeichnet) werden Änderungen seit der letzten Aktualisierung der Abfrageserver-Metadaten verarbeitet.

Eine Synchronisierung erfasst alle Tabellen, die seit der letzten Aktualisierung zum Hive Metastore hinzugefügt oder daraus gelöscht wurden. Dazu gehören auch alle Tabellen, deren Schemas geändert wurden.

Vollständige Synchronisierung von Abfrageserver aktivieren

Sie können angeben, ob der Oracle Cloud SQL-Abfrageserver eine Deltasynchronisierung (Standard) oder eine vollständige Synchronisierung ausführt.

Wenn der Abfrageserver zum ersten Mal gestartet wird, erfolgt eine vollständige Synchronisierung aller Datenbanken. Für jede Hive-Datenbank wird ein Oracle Database-Schema erstellt, und für jede Hive-Tabelle in diesen Schemas wird eine externe Tabelle erstellt. Nach dem ersten Start können Sie mit Apache Ambari oder Cloudera Manager die Liste der zu synchronisierenden Hive-Datenbanken angeben.

Mit dem Konfigurationsparameter Enable full synchronization in Apache Ambari oder Cloudera Manager können Sie steuern, ob der Abfrageserver eine vollständige oder eine Deltasynchronisierung ausführt. Dieser Konfigurationsparameter ist standardmäßig deaktiviert. Aktivieren Sie dieses Kontrollkästchen in Apache Ambari oder Cloudera Manager, damit der Abfrageserver eine vollständige Synchronisierung durchführen kann.

Apache Ambari verwenden

Mit Apache Ambari können Sie wie folgt festlegen, dass der Abfrageserver eine vollständige Synchronisierung beim Neustart oder eine manuelle Synchronisierung durchführen kann.

  1. Melden Sie sich mit Ihren Anmeldedaten bei Apache Ambari an.

  2. Klicken Sie in Apache Ambari in der seitlichen Symbolleiste unter Services auf Cloud SQL.

  3. Klicken Sie auf die Registerkarte Configs.

  4. Blenden Sie die Registerkarte Advanced Metadata-sync ein.

  5. Aktivieren Sie das Kontrollkästchen Enable full synchronization.

  6. Klicken Sie auf Speichern.

Cloudera Manager verwenden

Sie können Cloudera Manager wie folgt verwenden, um die vollständige Synchronisierung beim Neustart oder eine manuelle Synchronisierung des Abfrageservers zu aktivieren.

  1. Melden Sie sich mit Ihren Zugangsdaten bei Cloudera Manager an.

  2. Verwenden Sie in Cloudera Manager das Feld Search, um nach dem Konfigurationsparameter Enable full synchronization zu suchen. Geben Sie / Enable full synchronization (oder einen Teil des Namens, bis dieser in der Liste angezeigt wird) in das Feld Search ein, und drücken Sie die Eingabetaste.

  3. Klicken Sie auf Cloud SQL: Enable full synchronization. Das Kontrollkästchen ist standardmäßig deaktiviert. Das gibt an, dass der Abfrageserver eine Deltasynchronisierung durchführt.

  4. Um die vollständige Synchronisierung zu aktivieren, aktivieren Sie das Kontrollkästchen, und klicken Sie dann auf Save Changes.

Bei einer vollständigen Synchronisierung werden alle vorhandenen Schemas und externen Tabellen aus dem Abfrageserver gelöscht. Danach werden neue Schemas und neue externe Tabellen basierend auf der Hive-Datenbankliste neu erstellt, die Sie in Apache Ambari oder Cloudera Manager in den Konfigurationsparametern angegeben haben.

Standardmäßig führt der Abfrageserver eine Deltasynchronisierung zwischen den Hive-Datenbanken im angegebenen Metaspeicher und dem Abfrageserver durch. Alle Änderungen in den Hive-Datenbanken, wie z.B. das Löschen oder Hinzufügen von Tabellen, werden im Abfrageserver widergespiegelt. Wenn Sie den Abfrageserver jedoch zum ersten Mal starten, werden Oracle-Schemas basierend auf den Hive-Datenbanken erstellt, die Sie in Apache Ambari oder Cloudera Manager im Konfigurationsparameter angeben.

Bei der ersten Synchronisierung des Abfrageservers mit Hive ist der Prozess langsamer als gewöhnlich. Das liegt daran, dass der Abfrageserver alle Tabellen für die angegebenen Datenbanken (die in Apache Ambari oder Cloudera Manager konfiguriert sind) in das Hadoop-Cluster importiert. Nachfolgende Aktualisierungen sollten wesentlich schneller sein, da der Abfrageserver nur die Änderungen aktualisiert, die an den Hive-Metadaten vorgenommen wurden, wie z.B. neu hinzugefügte Tabellen. Während eines Deltaimports erfasst der Abfrageserver auch neue Statistiken für Tabellen, die hinzugefügt oder geändert wurden.