使用python处理来自bigquery的巨大数据集,将其加载回bigquery表

使用python处理来自bigquery的巨大数据集,将其加载回bigquery表,python,google-cloud-platform,google-bigquery,bigdata,Python,Google Cloud Platform,Google Bigquery,Bigdata,我在bigquery中有一个巨大的数据集,有5亿行57列。我想做很多过滤/转换/清理,而不是使用sql。我尝试使用dask/panda/python在本地mac中的dask数据帧中加载数据,进行转换,然后将数据推回到bigquery,以便其他总线可以使用它。将数据推回bigquery需要3个多小时。有没有其他方法或谷歌云服务可以利用?如果您在BigQuery中有大量数据,并希望对其执行转换,一个可能的解决方案是使用基于GCP的功能,称为数据流。数据流是基于ApacheBeam的Google托管服

我在bigquery中有一个巨大的数据集,有5亿行57列。我想做很多过滤/转换/清理,而不是使用sql。我尝试使用dask/panda/python在本地mac中的dask数据帧中加载数据,进行转换,然后将数据推回到bigquery,以便其他总线可以使用它。将数据推回bigquery需要3个多小时。有没有其他方法或谷歌云服务可以利用?

如果您在BigQuery中有大量数据,并希望对其执行转换,一个可能的解决方案是使用基于GCP的功能,称为数据流。数据流是基于ApacheBeam的Google托管服务。使用此技术,可以编写一个将BigQuery作为源和接收器的管道。Dataflow专门为超大容量数据处理而设计,可以自动并行化工作。此外,由于所有数据都在GCP中运行,因此在读取或写入数据时不会出现有意义的延迟,如果您通过Internet传输数据,可能会发现这一点。数据流允许程序员用Java或Python编写转换

根据您的转型,更高级别(但类似的情况)可能是使用谷歌的Dataprep服务。Dataprep提供了一种高级(业务级)机制来转换数据,无需任何编程。使用Dataprep,可以在更高的级别上描述转换,最终自动构建并运行Datalow作业


当提到“将数据推回到bigquery需要很长时间”时,请具体说明以MB为单位的数据量、时间、互联网连接速度等。否则,我们不知道什么是“长时间”。将应用程序迁移到,将中间文件写入谷歌云存储,并指示bigquery使用SQL?为什么不想使用SQL?别忘了,您也可以将JavaScript注入到您的转换中。留在BigQuery的好处是,您将代码带到数据中,而不是将数据带到代码中。这有巨大的优势,即规模和简单性。@GrahamPolley我们的一些用例是复杂的,我们必须为一个度量创建很多临时表。没关系。您可以在BigQuery中使用编排工具(如Airflow/Composer)执行此操作。我们总是这样做。一旦跳出BigQuery,您的性能就会受到很大的影响。dataflow听起来很有希望:)请记住,加速数据流的成本很高。它总是我们每月账单上最重要的项目之一。