Apache Superset无法获取BigQuery查询结果(已执行成功)求助
Apache Superset连接BigQuery时查询成功却无法返回结果,报Gateway Timeout
使用Apache Superset查询BigQuery数据时遇到异常:BigQuery项目历史显示查询已成功执行,但Superset无法返回结果,即使是简单SQL语句也会触发Gateway Timeout错误。
错误重现步骤
- 安装过最新版Apache Superset(2.1),也尝试过旧版本(2.0)及Python 3.8环境
- 已安装SQLAlchemy BigQuery连接器(试过sqlalchemy-bigquery 1.6.1和Pybigquery)
- 成功创建数据库连接,能正常查看数据集和表结构
- 在SQL Lab执行简单SQL、创建数据集或图表时,均出现Gateway Timeout错误
预期结果
SQL Lab能正常返回查询结果集,Superset可获取数据用于创建图表
实际结果
触发Gateway Timeout错误,查询持续运行直至达到超时阈值
环境信息
- 浏览器:Google Chrome、Edge、Safari
- Superset版本:2.1.0 / 2.0
- Python版本:3.10 / 3.8
- BigQuery连接器:sqlalchemy-bigquery 1.6.1 / Pybigquery
- 操作系统:Ubuntu 22.04.2 LTS
- 部署环境:GCP Compute Engine虚拟机
补充验证信息
- GCP VM已验证具备BigQuery访问权限,BigQuery API已启用
- 使用相同的sqlalchemy-bigquery连接器,通过独立Python代码可成功查询并返回数据(代码示例)
- Superset中能正常浏览数据集和表,BigQuery查询历史也显示查询已成功执行,但Superset始终无法获取到结果
from sqlalchemy.engine import create_engine from pprint import pprint bigquery_uri = f'bigquery://{project}/{table}' engine = create_engine( bigquery_uri, ) query = f'SELECT * FROM table WHERE DATE(partition) = "2023-05-05" LIMIT 10;' rows = engine.execute(query).fetchall() rows = [dict(row) for row in rows] pprint(rows)
内容的提问来源于stack exchange,提问作者Rathish Kumar B
相关产品推荐
相关产品推荐

