为啥使用 pandas read_sql 使用 bigquery 时会出现性能问题?

Posted

技术标签:

【中文标题】为啥使用 pandas read_sql 使用 bigquery 时会出现性能问题?【英文标题】:Why there is a performance issue when using bigquery using pandas read_sql?为什么使用 pandas read_sql 使用 bigquery 时会出现性能问题? 【发布时间】:2020-04-21 09:39:04 【问题描述】:

我在维度表(year_id, year) 上运行查询以使用谷歌云控制台获取 4 行并在 0 秒内得到结果。当我使用 pandas read_sql 时,我花了 3 多秒。是因为网络延迟还是其他原因?

【问题讨论】:

我建议延迟。控制台应该针对 BigQuery 进行优化。 那么有没有什么办法可以在最短的时间内得到查询结果呢?在 3 秒内获得这么小的表结果对于一个应用程序来说是非常昂贵的。 【参考方案1】:

您可以尝试使用google-cloud-bigquery

https://googleapis.dev/python/bigquery/latest/index.html

这是与GBQ通信的官方python库。

由 Google 维护,可轻松与 Pandas 集成

【讨论】:

谢谢。我已经尝试过了,并且两者的运行时间相似。我在这里注意到的一点是query_job = client.query(QUERY),如果我删除这一行并只做query_job.result() 部分,那么大约需要1.5 秒

以上是关于为啥使用 pandas read_sql 使用 bigquery 时会出现性能问题?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandas.read_sql 和 MSAccess 的特定表名的“sql 执行失败”

如何在 Pandas read_sql() 中使用通配符 (%)

在 pandas 中为 read_sql 指定 dtypes

带参数的 Pandas read_sql

Pandas read_sql() 可以返回哪些异常

Pandas函数read_sql()在最终的sql查询中插入参数引用[duplicate]