如何在Azure Data Factory中执行ADX的.purge命令?已遇语法错误
解决ADF执行ADX .purge命令的BadRequest_SyntaxError错误
核心问题定位
你遇到的语法错误源于两个关键问题:
.purge命令中allrecords是非法写法,正确格式为**all records**(空格分隔)- Web活动请求体存在冗余的数据库指定,导致命令解析冲突
方法1:ADX活动修正方案
- 修正命令字段的语法,将错误的
allrecords改为all records - 若ADX活动已在「数据库」选项中选择了
DBName,可省略命令中的in database DBName,简化后的命令:
.purge table MyTable all records
- 若未在活动中指定数据库,完整命令应为:
.purge table MyTable in database DBName all records
方法2:Web活动修正方案
- 修正请求体中的CSL命令,同时移除冗余配置(
db参数已指定数据库,无需在命令中重复):
{ "db": "DBName", "csl": ".purge table MyTable all records" }
- 权限补充配置:
仅集群管理员权限不足以执行purge操作,需给ADF的系统分配托管标识授予ADX集群的Purge Administrator角色:- 进入ADX集群的「访问控制(IAM)」
- 添加角色分配,选择「Purge Administrator」,指定你的ADF托管标识
- 端点说明:
.purge属于管理命令,必须使用你当前配置的管理端点(v1/rest/mgmt),无需使用ingest端点,ingest端点仅用于数据摄入类操作。
验证步骤
- 先在ADX Web UI中执行修正后的命令,确认可正常运行
- 等待IAM角色分配生效(通常需1-5分钟)后,再测试ADF活动
内容的提问来源于stack exchange,提问作者Shailesh
相关产品推荐
相关产品推荐

