DP CLIについて

DP CLI (コマンド行インタフェース)シェル・ユーティリティは、データ処理ワークフローを起動するために使用されます。

データ処理ワークフローは、個々のHive表、Hiveデータベース内のすべての表、またはHive内のすべての表に対して実行できます。表は、自動プロビジョニング・タイプ(次の項を参照)である必要があります。

DP CLIでは、Oozieでワークフローを起動します。DP CLIワークフローの結果は、Studioによって生成されたデータ処理ワークフローによって処理された表の場合と同じです。

DP CLIの2つの重要なユースケースは、次のとおりです。

DP CLIは、手動で実行することも、cronジョブから実行することもできます。デフォルトでは、BDDインストーラによってcronジョブはインストール手順の一部として作成されません。

Hive表のタイプ

データ処理の観点からは、特別な表プロパティ(skipAutoProvisioning)の存在の有無に応じて、Hive表には、スキップされた表と自動プロビジョニングされた表という2つのタイプがあります。

スキップされた表は、skipAutoProvisioning表プロパティが存在してtrueに設定されているHive表です。このプロパティは、次の2つの方法で設定されます。
  • 表がStudioから作成された場合、skipAutoProvisioningプロパティは作成時に常に設定されます。
  • 表はHive管理者によって作成され、対応するデータ・セットがこの表からプロビジョニングされました。その後、このデータ・セットはStudioから削除されました。データ・セットが(管理者によって作成された表から)削除されると、skipAutoProvisioning表プロパティを追加することによって基礎となるHive表が変更されます。
skipAutoProvisioningプロパティにより、処理のために表をスキップするようBDD Hive表ディテクタに指示します。この結果、スキップされた表に対してデータ処理ワークフローが起動されなくなります。

自動プロビジョニングされた表は、Hive管理者によって作成され、skipAutoProvisioningプロパティを持たないHive表です。これらの表は、BDD Hive表ディテクタによって起動されるデータ処理ワークフローによってプロビジョニングできます。

注意: BDDデータ・セットが削除される場合、ソースHive表はHiveデータベースから削除されないことに注意してください。このことは、Studio作成の表または管理者作成の表から生成されたデータ・セットに当てはまります。skipAutoProvisioningプロパティにより、対応するデータ・セットが削除されるときに表が再プロビジョニングされないようにすることができます(そうでない場合、表が再処理されるときに、削除されたデータ・セットが再度出現します)。

BDD Hive表ディテクタ

BDD Hive表ディテクタは、HiveデータベースとBDDデータ・セットとの同期を自動的に維持するプロセスです。BDD Hive表ディテクタには、主な機能が2つあります。
  • Hiveデータベース内のすべてのHive表を自動的にチェックします。BDD Hive表ディテクタは、対応するBDDデータ・セットがない自動プロビジョニング表に対して新しいデータ・プロビジョニング・ワークフローを起動します。スキップされた表(Studio作成の表など)は、対応するデータ・セットがない場合でも、BDD Hive表ディテクタによって処理されることはありません。
  • BDDデータ・セットにHive表が関連付けられていないことを検出すると、データ・セットのクリーンアップ・プロセスを自動的に起動します。(つまり、孤立したデータ・セットは、そのソースHive表が存在しない場合は自動的に削除されます。)通常、このシナリオが実行されるのは、(管理者作成またはStudio作成の)Hive表がHive管理者によって削除された場合です。

BDD Hive表ディテクタは、空の表を検出し、これらの表に対してはワークフローを起動しません。

BDD Hive表ディテクタは、スクリプトの動作を制御するコマンド・フラグがあるDP CLIによって起動されます。たとえば、ユーザーには処理対象として興味のあるHive表を選択するためのオプションが必要であるため、--whitelistフラグを使用して、処理する必要があるHive表が含まれるファイルを指定する一方、--blacklistフラグを使用して、フィルタで除外する必要があるHive表が含まれるファイルを起動します。

ロギング

DP CLIでは、ワークフローに関連する詳細情報を、$CLI_HOME/config/logging.propertiesファイルに定義されているログ・ファイルに記録します。このファイルの詳細は、「ロギング構成」を参照してください。

BDD Hive表ディテクタの実装はDP CLIに基づいているため、DP CLIスクリプトと同じロギング・プロパティを使用します。また、(複数のクラスに関する)冗長出力をstdout/stderrに対して作成します。