我在GCS上有几个共享相同模式但具有不同时间戳的csv文件,例如:
- data_20180103.csv
- data_20180104.csv
- data_20180105.csv
我想通过dataprep运行它们并创建具有相应名称的Bigquery表。应该每天使用调度程序运行此作业。
现在我认为可行的方法如下:
- csv文件应该有一个timestamp列,对于同一个文件中的每一行都是相同的
- 在GCS上创建3个文件夹:raw,queue和wrangled
- 将原始csv文件放入原始文件夹。然后运行一个Cloud函数将1个文件从raw文件夹移动到queue文件夹中,如果它是空的,否则什么都不做。
- Dataprep按照调度程序扫描队列文件夹。如果找到csv文件(例如,data_20180103.csv),则运行相应的作业,输出文件将被放入争用文件夹(例如data.csv)。
- 只要将新文件添加到争用文件夹,就会运行另一个云功能。这个将根据csv文件中的timestamp列创建一个名为new的BigQuery表(例如20180103)。它还会删除队列和争用文件夹中的所有文件,并继续将1个文件从原始文件夹移动到队列文件夹(如果有的话)。
醇>
重复直到创建所有表。
这对我来说似乎过于复杂,我不知道如何处理云功能无法完成工作的情况。
对我的用例的任何其他建议表示赞赏。