問合せサーバーとHiveの同期

Oracle Cloud SQL Query Serverを、指定したHiveデータベースと同期させるには、Apache AmbariまたはCloudera Managerか、dbms_bdsqs.sync_hive_databases PL/SQL APIを使用します。

次の方法の1つを使用して、問合せサーバーとメタストア内のHiveデータベースを同期します:

  • Apache AmbariまたはCloudera Managerで「Restart this Cloud SQL Query Server」コマンドを実行します。
  • Apache AmbariまたはCloudera Managerで「Synchronize Hive Databases」コマンドを実行します。
  • エッジ・ノード上でローカルにdbms_bdsqs.sync_hive_databases PL/SQL APIを起動します。
ノート

dbms_bdsqs.sync_hive_databases PL/SQL APIでは、他の2つの方法によってすでに同期されているHiveデータベースのHive表定義のみがリフレッシュされることに注意してください。

PL/SQL APIを使用した問合せサーバーの同期

PL/SQL APIを使用して、Oracle Cloud SQL Query Serverと、指定したHiveデータベースを同期できます。

これを行うには、問合せサーバーがインストールされているエッジ・ノード上でdbms_bdsqs.sync_hive_databases PL/SQL APIをローカルに起動します。

このプロシージャにパラメータはありません。すでに問合せサーバーに存在するすべてのHiveデータベースが同期されます。APIでは、sync_hive_db_list構成パラメータにリストされたHiveデータベースのみを使用して、問合せサーバーをリフレッシュします。連続する各同期(リフレッシュとも呼ばれる)では、前回の問合せサーバーのメタデータ・リフレッシュ以降の変更が処理されます。

同期により、最後のリフレッシュ以降にHiveメタストアで追加または削除されたすべての表が取得されます。これには、スキーマが変更された可能性がある表もすべて含まれます。

問合せサーバーの完全同期の有効化

Oracle Cloud SQL Query Serverでデルタ同期(デフォルト)と完全同期のどちらを実行するかを指定できます。

問合せサーバーの初回起動時に、すべてのデータベースの完全同期が実行されます。HiveデータベースごとにOracle Databaseスキーマが作成され、それらのスキーマの各Hive表に対して外部表が作成されます。この初回起動後、Apache AmbariまたはCloudera Managerを使用して、同期するHiveデータベースのリストを指定できます。

Apache AmbariまたはCloudera Managerの「Enable full synchronization」構成パラメータを使用して、問合せサーバーで完全同期とデルタ同期のどちらを実行するかを制御できます。この構成パラメータは、デフォルトでは選択が解除されています。問合せサーバーで完全同期を実行できるようにするには、Apache AmbariまたはCloudera Managerでこのチェック・ボックスを選択します。

Apache Ambariの使用

Apache Ambariを使用すると、次のように、再起動中または手動同期中に問合せサーバーで完全同期を実行できます。

  1. ログイン資格証明を使用してApache Ambariにログインします。

  2. Apache Ambariで、サイド・ツールバーの「Services」の下にある「Cloud SQL」をクリックします。

  3. 「Configs」タブをクリックします。

  4. 「Advanced metadata-sync」タブを展開します。

  5. 「Enable full synchronization」チェック・ボックスを選択します。

  6. 「保存」をクリックします

Cloudera Managerの使用

Cloudera Managerを使用すると、次のように、再起動中または手動同期中に問合せサーバーで完全同期を実行できます。

  1. ログイン資格証明を使用してCloudera Managerにログインします。

  2. Cloudera Managerで、「Search」フィールドを使用して、「Enable full synchronization」構成パラメータを検索します。「Search」フィールドに/ Enable full synchronizationと入力(またはリストに名前が表示されるまでその一部を入力)して、[Enter]を押します。

  3. 「Cloud SQL: Enable full synchronization」をクリックします。このチェック・ボックスは、デフォルトでは選択が解除されています。これは、問合せサーバーでデルタ同期を実行することを示しています。

  4. 完全同期を有効にするには、このチェック・ボックスを選択して「Save Changes」をクリックします。

完全同期では、問合せサーバーから既存のスキーマおよび外部表がすべて削除され、Apache AmbariまたはCloudera Managerの構成パラメータで指定したHiveデータベース・リストに基づいて、新しいスキーマおよび新しい外部表が再作成されます。

デフォルトでは、問合せサーバーは、指定したメタストア内のHiveデータベースと問合せサーバーの間でデルタ同期を実行します。Hiveデータベースで行われた表の削除や追加などの変更が、問合せサーバーに反映されます。ただし、問合せサーバーの初回起動時には、Apache AmbariまたはCloudera Managerの構成パラメータで指定したHiveデータベースに基づいてOracleスキーマが作成されます。

問合せサーバーとHiveを初めて同期する場合、このプロセスは通常よりも遅くなります。これは、問合せサーバーが、指定したデータベース(Apache AmbariまたはCloudera Managerで構成した)のすべての表をHadoopクラスタにインポートするためです。問合せサーバーは、Hiveメタデータに対して行われた変更(新しい表の追加など)のみをリフレッシュするため、その後のリフレッシュは高速になります。デルタ・インポート中、問合せサーバーでは、追加または変更された表の新しい統計も収集されます。