1

GCS には、同じスキーマを共有するがタイムスタンプが異なるいくつかの csv ファイルがあります。たとえば、次のようになります。

  • data_20180103.csv
  • data_20180104.csv
  • data_20180105.csv

それらを dataprep で実行し、対応する名前で Bigquery テーブルを作成したいと考えています。このジョブは、スケジューラーを使用して毎日実行する必要があります。

今のところ、うまくいくと思うのは次のとおりです。

  1. csv ファイルには、同じファイル内のすべての行で同じタイムスタンプ列が必要です。
  2. GCS に raw、queue、wrangled の 3 つのフォルダを作成する
  3. 生の csv ファイルを raw フォルダーに入れます。次に、クラウド関数が実行され、1 つのファイルが空の場合は raw フォルダーからキュー フォルダーに移動されます。それ以外の場合は何もしません。
  4. Dataprep は、スケジューラに従ってキュー フォルダをスキャンします。csv ファイル (例: data_20180103.csv) が見つかった場合、対応するジョブが実行され、出力ファイルはラングリングされたフォルダー (例: data.csv) に配置されます。
  5. ラングリングされたフォルダーに新しいファイルが追加されるたびに、別のクラウド機能が実行されます。これにより、csv ファイルのタイムスタンプ列に基づいた名前の新しい BigQuery テーブルが作成されます (例: 20180103)。また、キューとラングリングされたフォルダー内のすべてのファイルを削除し、未加工のフォルダーから 1 つのファイルがあればキュー フォルダーに移動します。

すべてのテーブルが作成されるまで繰り返します。これは私には非常に複雑に思えます。クラウド機能が機能しない場合の処理​​方法がわかりません。

私のユースケースに対する他の提案は大歓迎です。

4

0 に答える 0