为啥使用 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() 中使用通配符 (%)