5.4 問合せサーバーとHiveとの同期化
Cloudera Manager、Apache Ambariまたはdbms_bdsqs.sync_hive_databases
PL/SQL APIを使用して、問合せサーバーと指定したHiveデータベースを同期化できます。
- Cloudera ManagerまたはApache Ambariで「Restart this Big Data SQL Query Server」コマンドを実行します。
- Cloudera ManagerまたはApache Ambariで「Synchronize Hive Databases」コマンドを実行します。
- エッジ・ノードで
dbms_bdsqs.sync_hive_databases
PL/SQL APIをローカルに呼び出します。
bds-config.json
構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。
dbms_bdsqs.sync_hive_databases
PL/SQL APIは、他の2つの方法ですでに同期化されているHiveデータベースのHive表定義をリフレッシュするにすぎません。
5.4.1 Cloudera Managerを使用した問合せサーバーの手動再起動
Cloudera ManagerまたはApache Ambariで問合せサーバーを再起動することによって、問合せサーバーと指定したHiveデータベースを同期化できます。
bds-config.json
構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。
5.4.2 Cloudera Managerを使用した問合せサーバーの手動同期化
Cloudera ManagerまたはApache Ambariを使用すると、問合せサーバーと指定したHiveデータベースを手動で同期化できます。
bds-config.json
構成ファイルを使用するか、Cloudera Managerのsync_hive_db_list構成パラメータを使用して、同期化に使用するHiveデータベースを指定する必要があります。
5.4.3 PL/SQL APIを使用した問合せサーバーの同期化
PL/SQL APIを使用して、問合せサーバーと指定したHiveデータベースを同期化できます。
そのためには、問合せサーバーがインストールされているエッジ・ノードでローカルにdbms_bdsqs.sync_hive_databases
PL/SQL APIを起動します。
このプロシージャには、パラメータが含まれていません。これにより、すでに問合せサーバーにあるすべてのHiveデータベースが同期化されます。APIは、sync_hive_db_list
構成パラメータにリストされているHiveデータベースのみで問合せサーバーをリフレッシュします。連続する各同期化(リフレッシュとも呼ばれます)は、問合せサーバー・メタデータの最後のリフレッシュ以降に行われた変更を処理します。
同期化は、最後のリフレッシュ以降にHiveメタストアで追加または削除された表を取得します。これには、スキーマが変更された可能性がある表も含まれます。
5.4.4 問合せサーバー完全同期の有効化
問合せサーバーでデルタ同期(デフォルト)と完全同期のどちらを実行するかを指定できます。
問合せサーバーのインストール・プロセス中に、bds-config.json
構成ファイルまたはsync_hive_db_list
構成パラメータのいずれかで指定できるHiveデータベース・リストに基づいて、Oracleスキーマおよび適切な外部表が作成されます。この場合、問合せサーバーは完全同期を実行します。デフォルトでは、問合せサーバーは後続の再起動時または同期化時にデルタ同期を実行します。
Cloudera ManagerまたはApache Ambariの「Enable full synchronization」パラメータを使用して、問合せサーバーで完全同期とデルタ同期のどちらを実行するのかを制御できます。デフォルトでは、この構成パラメータは選択解除されています。問合せサーバーが完全同期を実行できるようにするには、Cloudera ManagerまたはApache Ambariでこのチェック・ボックスを選択します。たとえば、Cloudera Managerを使用すると、次のように、問合せサーバーは再起動中または手動同期化中に完全同期を実行できます。
- ログイン資格証明を使用してCloudera Managerにログインします。
- Cloudera Managerで、「Search」フィールドを使用して、「Enable full synchronization」構成パラメータを検索します。「Search」フィールドに「/ Enable full synchronization」と入力し(名前を入力していくと、該当する名前がリストに表示されます)、[Enter]を押します。
- 「Big Data SQL: Enable full synchronization」をクリックします。デフォルトでは、このチェック・ボックスは選択解除されています。これは、問合せサーバーがデルタ同期を実行することを示しています。
- 完全同期を有効にするには、チェック・ボックスを選択し、「Save Changes」をクリックします。
完全同期では、問合せサーバーから既存のスキーマおよび外部表がすべて削除され、sync_hive_db_list
構成パラメータで指定したHiveデータベース・リストに基づいて、新しいスキーマおよび新しい外部表が再作成されます。
デフォルトでは、問合せサーバーは指定したメタストアのHiveデータベースと問合せサーバーの間でデルタ同期を実行します。表の削除や追加などHiveデータベースを変更すると、それが問合せサーバーに反映されます。ただし、問合せサーバーを初めて起動したときには、bds-config.json
構成ファイルで指定したHiveデータベース、またはCloudera ManagerやApache Ambariのsync_hive_db_list
構成パラメータで指定したHiveデータベースに基づいて、Oracleスキーマが作成されます。
問合せサーバーとHiveを初めて同期化した場合、そのプロセスは通常より遅くなります。これは、指定したデータベース(Cloudera ManagerまたはApache Ambariで構成したもの)のすべての表をHadoopクラスタにインポートしているためです。その後のリフレッシュでは、新規表の追加など、Hiveメタデータに対して行われた変更のみをリフレッシュするので、大幅に高速になります。デルタ・インポート中、問合せサーバーは追加/変更された表の新しい統計も収集します。