Python:如何快速上传到Google BigQuery?

时间:2017-07-07 15:57:50

标签: python pandas google-bigquery

我跟踪了大约250,000个已上传到Google bigquery的时间序列文件。每个时间序列每天都有大约200个新行,应该通过一些API下载,然后上传到bigquery。我已经设置了一个python脚本,首先连接到Google BigQuery以获取每个时间序列的最后日期,然后脚本使用多处理创建10个进程,每个进程连接到一些API并下载丢失的数据。下载后大约需要2秒钟,我需要将数据输入BigQuery。我目前使用名为pandas的{​​{1}}函数上传数据,我计算了上传所需的时间,以下是结果:

to_gbq

基于此我想在内存中附加一个大 1,000 rows takes 45 seconds 10,000 rows takes 52 seconds 100,000 rows takes 128 seconds ,然后在dataframe达到100,000行时使用to_gbq。我被建议找到一个解决方案根本不依赖于内存,只需将数据下载到dataframe即可。什么是解决这个问题的好方法?

我将所有下载的数据附加到同一个表中。

1 个答案:

答案 0 :(得分:3)

我建议您使用Apache Beam来解决此问题。它已经是一个分布式处理框架,旨在处理这种类型的ETL任务。

完成此example将让您掌握如何使用它。您也可以使用Dataflow TemplatesApache Airflow安排管道执行。