ホワイトリストおよびブラックリストの使用

ホワイトリストは、処理する必要があるHive表を指定し、ブラックリストは、無視する必要があるHive表を指定します。

これらのリストは両方とも、DP CLIを実行する場合のオプションです。たとえば、--tableフラグを使用してDP CLIを手動で実行して特定の表を処理する場合、これらのリストを指定する必要はありません。

デフォルトのリストはDP CLIパッケージ内に用意されています。
  • デフォルトのホワイトリストはcli_whitelist.txtです。
  • デフォルトのブラックリストはcli_blacklist.txtです。

どちらのファイルも基本的には空です。デフォルトのホワイトリストはcli_whitelist.txtという名前です。

リスト構文

どちらのフラグも引数としてテキスト・ファイルを使用します。各テキスト・ファイルには、1つ以上の正規表現(regex)が含まれます。ファイル内の正規表現ごとに1つの行が存在する必要があります。Hive表名を照合することのみを目的としてパターンが使用されます(つまり、一致するパターンが1つ見つかれば照合は成功します)。

デフォルトのホワイトリストには、表のパターンとして使用できるサンプルの正規表現が含まれます。これらの表現はコメント・アウトされます。これは、ホワイトリストが基本的に空であることを意味します。空のホワイトリストではいずれの表も処理されません。したがって、収集対象の表を指定する正規表現を少なくとも1つ含めるためにファイルを編集する必要があります。

たとえば、名前の先頭がbddである任意の表(bdd_salesなど)を処理するとします。この場合、ホワイトリストには次のregexエントリを含めます。
^bdd.*

デフォルトのリストには両方とも、表のパターンとして使用できるサンプルの正規表現が含まれています。サンプルの表現はコメント・アウトされています。

リストの処理

パターン・マッチャは、次のアルゴリズムを使用して動作します。
  1. ホワイトリストが最初に解析されます。ホワイトリストが空でない場合、処理対象のHive表のリストが生成されます。ホワイトリストが空である場合、Hive表は収集されません。
  2. ブラックリストが存在する場合、ブラックリストのパターン照合を実行します。そうでない場合、ブラックリストの照合は無視します。

したがって、ホワイトリストが最初に解析されて、処理対象のHive表のリストが生成された後、ブラックリストが解析されて、スキップされるHive表名のリストが生成されます。通常、ブラックリスト内の名前により、ホワイトリストによって生成された名前が変更されます。両方のリストに同じ表名が表示されている場合、この表は処理されません(つまり、ブラックリストにより、実質的にホワイトリストから名前を削除できます)。

ユースケース例

これらのリストの機能を説明するために、売上関連の情報が含まれるHive表が10個あるとします。これらの10個の表の名前には、接尾辞として"_bdd"が付けられています("claims_bdd"など)。したがって、次のregexエントリを使用してwhitelist.txtファイルを作成します。
^.*_bdd$
次に、claims_bdd表を除くすべての*_bdd表を処理する場合、次のエントリを使用してblacklist.txtファイルを作成します。
claims_bdd

--whiteListおよび--blackListフラグを使用してDP CLIを実行すると、claims_bdd表を除くすべての*_bdd表が処理されます。