我有一个程序可以从远程数据库下载时间序列(ts)数据,并将数据保存为csv文件。新ts数据被追加到旧ts数据。随着下载更多数据,我的本地文件夹继续增长和增长。下载新的ts数据并保存后,我想将其上传到Google BigQuery表中。做这件事最好的方法是什么?
我当前的工作流程是将所有数据下载到csv文件中,然后将csv文件转换为本地机器上的gzip文件,然后使用gsutil将这些gzip文件上传到Google Cloud Storage。接下来,我删除Google BigQuery中的任何表,然后手动创建一个新表,首先删除Google BigQuery中的任何现有表,然后通过从Google Cloud Storage上传数据创建一个新表。我觉得有很大的自动化/改进的空间,但我是Google的新手。
编辑:为了澄清,我正在下载的数据可以认为是从雅虎金融下载时间序列数据。随着新的一天,有新的数据,我下载和保存到我的本地机器。我必须上传到Google BigQUery上的所有数据,这样我才能对其进行SQL分析。
发布于 2017-06-29 01:13:56
考虑将数据分解为每日表(或分区)。然后,你只需要上传从今天的CVS。
否则,您当前定义的脚本似乎是合理的。
这避免了删除现有表的需要,并减少了需要执行的数据量和处理量。作为一种奖励,如果在处理过程中出现错误,则可以更容易地回填一天。
https://stackoverflow.com/questions/44804051
复制相似问题