栏目说明
「Quick BI使用案例」系列短文都来源于用户遇到的真实问题。
文章聚焦使用过程中的高频误区与使用技巧,希望能帮助您更充分地发挥产品价值。
问题背景
在Quick BI中使用MaxCompute数据源执行自助取数任务时,报错如下:
“get stream query handler failed.|AEXXXX:maxcompute query execution failed”。
根据Download ID查看日志,核心报错信息如下:
Caused by: com.aliyun.odps.rest.RestException: RequestId=6XX88, Code=ParseError, Message=ODPS-0130161:[162,8] Parse exception - full qualified name 'XXX.ads.qbi_goods' is not supported
该报错表示 SQL 中使用了 项目名.schema名.表名 的三级全限定名称,例如 xxx.ads.qbi_goods。当前 MaxCompute 项目或会话未开启三层命名空间模型,因此无法识别该写法,导致 SQL 解析失败。
MaxCompute 默认情况下不启用三层命名空间模型。若 Quick BI 数据源同时配置了“项目名称”和“Schema”,且自定义 SQL 数据集中使用了 项目名.schema名.表名 的写法,就会触发MaxCompute解析异常。
开启三层命名空间模型后,MaxCompute 支持在 Project 下创建多个 Schema,表归属于某个 Schema,并允许在 SQL 中使用 项目名.schema名.表名 的三级全限定名称引用表。
解决方案
需在 Quick BI 的自定义 SQL 数据集中,通过设置 HINT 语句开启 MaxCompute 的三层命名空间支持。具体操作步骤如下:
Step1. 打开自定义SQL数据集
在 Quick BI 中,进入报错的 MaxCompute 数据源对应的自定义 SQL 数据集编辑页面。
Step2. 添加MaxCompute配置参数
在数据集编辑页面,通过HINT语句添加以下参数:
odps.namespace.schema=true
该参数用于开启MaxCompute的三层命名空间模型。开启后,MaxCompute 支持在 Project 下创建多个 Schema,表归属于某个 Schema,从而允许在SQL中使用用 项目名.schema名.表名 的三级全限定名称来引用表。
具体设置方法如截图所示:
Step3. 验证效果
完成上述参数配置并保存数据集后,重新执行自助取数任务,即可正常获取数据。
如阅读后有任何问题,您可以点击Quick BI产品内右下角【帮助与反馈】按钮与我们取得联系。