从 BigQuery 获取数据需要很长时间

s_k*_*n92 3 python sql pandas google-bigquery jupyter-notebook

我正在尝试从 BigQuery 获取数据。当我获取小数据时,一切工作正常,但当我尝试获取大数据时,则需要很长时间。有什么有效的办法吗?

到目前为止我正在使用这个:

import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'cred.json'
import google.auth
from google.cloud import bigquery

%load_ext google.cloud.bigquery

import google.datalab.bigquery as bq
from google.cloud.bigquery import Client

client = bigquery.Client()
Run Code Online (Sandbox Code Playgroud)

这是我的 SQL 命令:

sql = """
   SELECT bla, bla1, bla2
FROM table
"""
df = client.query(sql)
df.to_dataframe()
Run Code Online (Sandbox Code Playgroud)

Fel*_*ffa 12

通过更改方法,您可以更快地将 BigQuery 数据放入数据帧中。

检查这些选项如何反映在图表中:

  • 答:to_dataframe()- 使用 BigQuery tabledata.list API。
  • B:,to_dataframe(bqstorage_client=bqstorage_client)包版本 1.16.0 - 使用 BigQuery Storage API 和 Avro 数据格式。
  • C: to_dataframe(bqstorage_client=bqstorage_client),软件包版本 1.17.0 - 使用具有 Arrow 数据格式的 BigQuery Storage API。
  • D: to_arrow(bqstorage_client=bqstorage_client).to_pandas(),软件包版本 1.17.0 - 使用具有 Arrow 数据格式的 BigQuery Storage API。

在此输入图像描述

请注意如何使用 来从 >500 秒缩短到约 20 秒to_arrow(bqstorage_client=bqstorage_client).to_pandas()

请参阅https://medium.com/google-cloud/announcing-google-cloud-bigquery-version-1-17-0-1fc428512171