Mac端通过Simba ODBC Excel驱动拉取非美区域BigQuery数据集失败
解决方案:Mac版Simba ODBC驱动访问非US区域BigQuery数据集报错问题
该问题抛出的错误为:
"[Simba][BigQuery] (31750) Dataset is not found. Not found: Dataset project-name:dataset-name was not found in location US"
错误核心原因是Mac版Simba ODBC驱动默认将BigQuery查询作业的执行位置固定为US,且未像Windows版一样自动从目标数据集读取位置属性,不属于驱动固有局限,可通过以下两种方案解决:
方案1:修改ODBC配置文件添加区域参数(推荐,一次修改全场景生效)
- 打开ODBC配置文件:系统级路径为
/Library/ODBC/odbc.ini,用户级路径为~/Library/ODBC/odbc.ini,也可直接通过你安装的ODBC驱动管理器查看对应BigQuery DSN的配置文件位置 - 找到对应BigQuery DSN的配置段,任选如下一个参数添加即可:
- 若绝大多数数据集都在欧盟区域,添加:
该参数会让驱动优先从指定位置查找数据集,未找到时再尝试其他位置DefaultDatasetLocation=EU - 若需要所有查询作业都提交到欧盟区域执行,添加:
该参数会强制所有BigQuery作业运行在指定区域,适合业务数据全在单一非US区域的场景JobLocation=EU
- 若绝大多数数据集都在欧盟区域,添加:
- 保存配置文件后重启Excel,重新连接BigQuery即可正常访问欧盟区域数据集
方案2:自定义SQL查询时显式指定数据集区域(无需修改配置,适合临时查询场景)
使用BigQuery标准SQL语法时,在表的全限定名中加入区域段即可强制指定查询位置,示例语法如下:
SELECT * FROM `你的项目ID`.`eu`.`你的数据集ID`.`你的表名`
注意全限定名的所有段都需要用反引号包裹,区域段直接写区域标识(如欧盟写eu,亚太新加坡写asia-southeast1)即可,无需额外前缀。
额外说明
你之前查阅文档未找到对应配置是因为DefaultDatasetLocation和JobLocation都属于驱动的高级独立配置项,不属于QueryProperties的属性范围,因此QueryProperties的说明文档中不会提及这两个参数。
内容的提问来源于stack exchange,提问作者lblnd
相关产品推荐
相关产品推荐

