HDFSの場所(/ user/hive/warehouse/tableX)からすべてのファイルを読み込み、Hiveに外部テーブルを作成した外部テーブルがあります。Hadoop - HDFSの複数のディレクトリから外部テーブルを作成
さて、データのいくつかの事前パーティションがあると仮定して、以前のすべてのファイルが特定の名前の規則にいくつかのディレクトリにスピッティングさせ< DIR_NAME> _ < incNumber>例えば
/user/hive/warehouse/split/
./dir_1/files...
./dir_2/files...
./dir_n/files...
スプリットフォルダ内のすべてのファイルを追跡する別の外部テーブルを作成するにはどうすればよいですか?
各サブフォルダ(dir_x)でパーティション化された外部テーブルを作成する必要はありますか?
また、サブディレクトリごとにパーティションを作成/追加できるようなHiveやシェルスクリプトが必要ですか?
返信いただきありがとうございます。確かにこれが解決策ですが、問題は、新しいディレクトリが定期的に(たとえば毎日)追加されることです。したがって、テーブルを再作成するには、./splitのすべてのディレクトリを読み込むスクリプトのようなものが必要です。これが非常に効率的か、最善の解決策であるかはわかりません。 –
@Alginaこれを行うためのOozieスクリプトを書くことができます。 oozieスクリプトはテーブルを削除して再作成し、新しいエントリがあるときはいつでもすべてのパーティションを元に戻すことができます。 – dheee