【发布时间】:2017-07-07 15:57:49
【问题描述】:
我跟踪了大约 250,000 个时间序列文件,这些文件已上传到 Google bigquery。每个时间序列每天都有大约 200 条新行,应该通过一些 API 下载,然后上传到 bigquery。我已经设置了一个 python 脚本,它首先连接到 Google BigQuery 以获取每个时间序列的最后日期,然后该脚本使用多处理创建 10 个进程,每个进程都连接到一些 API 并下载丢失的数据。下载完成后,大约需要 2 秒,我需要将数据放入BigQuery。我目前使用名为to_gbq 的pandas 函数上传数据,并计算了上传需要多长时间,结果如下:
1,000 rows takes 45 seconds
10,000 rows takes 52 seconds
100,000 rows takes 128 seconds
因此,基于此,我正在考虑在内存中附加一个大的dataframe,然后在dataframe 达到100,000 行时使用to_gbq。有人建议我找到一个不依赖于内存的解决方案全部,并在下载数据后立即将该数据上传到bigquery。有什么好的方法可以解决这个问题?
我将所有下载的数据附加到同一个表中。
【问题讨论】:
标签: python pandas google-bigquery