Hiveの表には、データ処理ワークフローのデータが含まれています。
処理されると、各Hive表にBDDデータ・セットが作成され、そのデータ・セットにHive表のレコードが含まれます。 Hive表で処理するには、少なくとも1つのレコードが含まれている必要があることに注意してください。 つまり、データ処理では、空の表に対してデータ・セットは作成されません。
ワークフローの開始
DP CLIは、手動またはcronジョブから実行すると、BDD Hive表検出機能を呼び出しますが、これはDataSet Inventoryに存在しないHive表を見つけることができます。 次に、データ処理ワークフローが表で実行されます。 DP CLIの実行の詳細は、「DPコマンドライン・インタフェース・ユーティリティ」を参照してください。
新規Hive表ワークフローおよび図
StudioとDP CLIのどちらも、データ・エンリッチメント・モジュールを使用しないデータ処理ワークフローを起動するように構成できます。 次の上位ダイアグラムは、データ・エンリッチメント・モジュールが実行されるワークフローを示しています:
ingestStatus
属性がプロビジョニング(収集)操作の最終ステータスで更新されます。
更新されたHive表の処理
Hiveソース表が更新されても、既存のBDDデータ・セットは自動的に更新されません。 たとえば、特定のHive表からデータ・セットが作成されたとします。 Hive表が新しいデータで更新された場合、関連付けられているBDDデータ・セットは自動的に変更されません。 これは、現在BDDデータセットがそのHiveソース表と同期していないことを意味します。
更新したHive表からデータ・セットを更新するには、--refreshDataフラグまたは--incrementalUpdateフラグのいずれかを使用してDP CLIを実行する必要があります。 詳細は、「データ・セットの更新」を参照してください。
削除されたHive表の処理
関連するBDDデータ・セットがStudioから削除された場合でも、BDDはHive表を削除しません。 ただし、Hive管理者は、その表からBDDデータ・セットが作成されている場合でも、その表を削除できます。 この場合、BDDデータ・セットは自動的に削除されず、Studioに表示されます。 (Hiveソース表が削除されたデータ・セットは「孤立したデータ・セット」と呼ばれます。)
次回DP CLIが実行される際、孤立したデータ・セットが検出され、データ・セットを削除するデータ処理ジョブが実行されます。
空のHive表の処理
データ処理では、空のHive表は処理されません。 そのかわり、Sparkドライバは、空のHive表に対して実行しているときにEmptyHiveTableException
をスローします。 これにより、データ処理ジョブで表のデータ・セットが作成されなくなります。 コマンドは正常に終了したように表示される場合もありますが、データ・セットがないと、ジョブが最終的に失敗したことを意味します。
ヘッダー/フッター情報を使用して作成されたHive表の処理
データ処理では、ヘッダー/フッターの行を含むファイル(CSVファイルなど)に基づくHive表の処理はサポートされていません。 この場合、DPワークフローでは、skip.header.line.count
およびskip.footer.line.count
プロパティを使用してHive表に設定されているヘッダーおよびフッターは無視されます。 そのような表のワークフローが成功すると、ヘッダー/フッターの行が省略されるのではなく、結果のBDDデータ・セットにレコードとして追加されます。
Studioプロジェクトの削除
Studioユーザーがプロジェクトを削除すると、データ処理が呼び出され、プロジェクトの変換済データ・セットが削除されます。 ただし、変換されていないデータ・セットは削除されません。