問合せサーバーと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にログインします。
-
Apache Ambariで、サイド・ツールバーの「Services」の下にある「Cloud SQL」をクリックします。
-
「Configs」タブをクリックします。
-
「Advanced metadata-sync」タブを展開します。
-
「Enable full synchronization」チェック・ボックスを選択します。
-
「保存」をクリックします
Cloudera Managerを使用すると、次のように、再起動中または手動同期中に問合せサーバーで完全同期を実行できます。
-
ログイン資格証明を使用してCloudera Managerにログインします。
-
Cloudera Managerで、「Search」フィールドを使用して、「Enable full synchronization」構成パラメータを検索します。「Search」フィールドに/ Enable full synchronizationと入力(またはリストに名前が表示されるまでその一部を入力)して、[Enter]を押します。
-
「Cloud SQL: Enable full synchronization」をクリックします。このチェック・ボックスは、デフォルトでは選択が解除されています。これは、問合せサーバーでデルタ同期を実行することを示しています。
-
完全同期を有効にするには、このチェック・ボックスを選択して「Save Changes」をクリックします。
完全同期では、問合せサーバーから既存のスキーマおよび外部表がすべて削除され、Apache AmbariまたはCloudera Managerの構成パラメータで指定したHiveデータベース・リストに基づいて、新しいスキーマおよび新しい外部表が再作成されます。
デフォルトでは、問合せサーバーは、指定したメタストア内のHiveデータベースと問合せサーバーの間でデルタ同期を実行します。Hiveデータベースで行われた表の削除や追加などの変更が、問合せサーバーに反映されます。ただし、問合せサーバーの初回起動時には、Apache AmbariまたはCloudera Managerの構成パラメータで指定したHiveデータベースに基づいてOracleスキーマが作成されます。
問合せサーバーとHiveを初めて同期する場合、このプロセスは通常よりも遅くなります。これは、問合せサーバーが、指定したデータベース(Apache AmbariまたはCloudera Managerで構成した)のすべての表をHadoopクラスタにインポートするためです。問合せサーバーは、Hiveメタデータに対して行われた変更(新しい表の追加など)のみをリフレッシュするため、その後のリフレッシュは高速になります。デルタ・インポート中、問合せサーバーでは、追加または変更された表の新しい統計も収集されます。