DP CLI (コマンド行インタフェース)シェル・ユーティリティは、データ処理ワークフローを起動するために、手動でまたはcronジョブを通じて使用されます。
データ処理ワークフローは、個々のHive表、Hiveデータベース内のすべての表、またはHive内のすべての表に対して実行できます。表は、自動プロビジョニング・タイプである必要があります(このトピックで詳細に説明します)。
DP CLIは、Sparkワーカーによって実行されるワークフローを開始します。DP CLIワークフローの結果は、Studioによって生成されたデータ処理ワークフローによって処理された表の場合と同じです。
DP CLIの2つの重要なユースケースは、次のとおりです。
- Big Data Discovery (BDD)製品をインストールした直後にHive表からデータを収集します。BDDを初めてインストールする場合、既存のHive表は処理されません。したがって、DP CLIを使用して、表に対して最初のデータ処理操作を起動する必要があります。
- BDD Hive表ディテクタを起動します。これにより、新しいHive表または削除されたHive表に対してデータ処理ワークフローを起動できます。
DP CLIは、手動で実行することも、cronジョブから実行することもできます。ENABLE_HIVE_TABLE_DETECTORプロパティがbdd.confファイルでTRUEに設定されている場合、BDDインストーラによってcronジョブがインストール手順の一部として作成されます。
DP CLI権限
DP CLIスクリプトは、インストーラを実行したユーザーの所有者権限でインストールされます。これらの権限を所有者が変更して、スクリプトの実行を他のユーザーに許可できます。
スキップされたHive表と自動プロビジョニングされたHive表
データ処理の観点から見ると、スキップされた表と自動プロビジョニングされた表の2種類のHive表があります。表のタイプは、特殊な表プロパティskipAutoProvisioningの有無に依存します。skipAutoProvisioningプロパティにより(trueに設定されている場合)、処理のために表をスキップするようBDD Hive表ディテクタに指示します。
スキップされた表は、
skipAutoProvisioning表プロパティが存在して
trueに設定されているHive表です。したがって、データ処理ワークフローは、スキップされた表には起動されません(DP CLIが、
--tableフラグをその表に設定して手動で実行される場合を除く)。このプロパティは、次の2つのインスタンスで設定されます。
- 表がStudioから作成された場合、skipAutoProvisioningプロパティは表の作成時に常に設定されます。
- 表はHive管理者によって作成され、対応するBDDデータ・セットがこの表からプロビジョニングされました。その後、このデータ・セットはStudioから削除されました。データ・セットが(管理者によって作成された表から)削除されると、skipAutoProvisioning表プロパティを追加することによって基礎となるHive表が変更されます。
自動プロビジョニングされた表は、Hive管理者によって作成され、skipAutoProvisioningプロパティを持たないHive表です。これらの表は、BDD Hive表ディテクタによって起動されるデータ処理ワークフローによってプロビジョニングできます。
注意: BDDデータ・セットが削除される場合、ソースHive表はHiveデータベースから削除されないことに注意してください。このことは、Studio作成の表または管理者作成の表から生成されたデータ・セットに当てはまります。skipAutoProvisioningプロパティにより、対応するデータ・セットが削除されるときに表が再プロビジョニングされないようにすることができます(そうでない場合、表が再処理されるときに、削除されたデータ・セットが再度出現します)。
BDD Hive表ディテクタ
BDD Hive表ディテクタは、HiveデータベースとBDDデータ・セットとの同期を自動的に維持するプロセスです。BDD Hive表ディテクタには、主な機能が2つあります。
- Hiveデータベース内のすべてのHive表を自動的にチェックします。
- 対応するBDDデータ・セットがない各自動プロビジョニングされた表では、(表がブラックリストを介してスキップされないかぎり) BDD Hive表ディテクタが新規データ・プロビジョニング・ワークフローを起動します。
- Studio作成の表など、スキップされたすべての表は、対応するBDDデータ・セットがない場合でも、BDD Hive表ディテクタによってプロビジョニングされることはありません。
- BDDデータ・セットにHive表が関連付けられていないことを検出すると、データ・セットのクリーンアップ・プロセスを自動的に起動します。(つまり、孤立したBDDデータ・セットは、そのソースHive表が存在しない場合は自動的に削除されます。)通常、このシナリオが実行されるのは、(管理者作成またはStudio作成の) Hive表がHive管理者によって削除された場合です。
BDD Hive表ディテクタは、空の表を検出し、これらの表に対してはワークフローを起動しません。
BDD Hive表ディテクタは、スクリプトの動作を制御するコマンド・フラグがあるDP CLIによって起動されます。たとえば、処理するHive表を選択できます。CLIの--whitelistフラグは、処理する必要のあるHive表のファイル・リストを指定し、--blacklistフラグは処理中にフィルタ処理する必要のあるHive表のあるファイルを制御します。
ロギング
DP CLIでは、ワークフローに関する詳細情報を、$CLI_HOME/config/logging.propertiesファイルに定義されているログ・ファイルに記録します。このファイルは、DPロギング・プロパティ・ファイルに記載されています。
BDD Hive表ディテクタの実装はDP CLIに基づいているため、DP CLIスクリプトと同じロギング・プロパティを使用します。また、(複数のクラスに関する)冗長出力をstdout/stderrに対して作成します。