在SQL Server 2022中无法创建MongoDB外部数据源
解决SQL Server 2022 PolyBase连接MongoDB时的Msg 46530错误
问题原因
你执行的CREATE EXTERNAL DATA SOURCE语句未指定数据源类型,SQL Server默认将其归类为GENERIC类型,但PolyBase不支持通过GENERIC类型连接MongoDB,因此抛出Msg 46530, Level 16, State 11错误。
修复步骤
1. 为外部数据源指定MongoDB类型
修改你的创建语句,添加TYPE = MONGODB参数,完整语句如下:
CREATE EXTERNAL DATA SOURCE mongodb_001 WITH ( LOCATION = 'mongodb://my.server.name:27030' ,CREDENTIAL = mongodb_cred ,TYPE = MONGODB )
注:尽管部分文档未明确提及该参数,但SQL Server 2022的PolyBase针对MongoDB连接必须显式指定类型,否则会默认使用不兼容的GENERIC类型。
2. 检查PolyBase MongoDB连接器是否启用(若步骤1仍报错)
如果添加类型参数后问题依旧,需确认MongoDB连接器已在PolyBase中启用:
- 打开SQL Server配置管理器,找到
SQL Server PolyBase Engine服务,右键选择属性 - 切换到高级选项卡,找到
PolyBaseEnabledConnectors配置项,确保其值包含mongodb(多连接器用逗号分隔,示例:sqlserver,mongodb) - 修改配置后,重启
SQL Server PolyBase Engine和SQL Server PolyBase Data Movement Service服务
验证配置有效性
执行以下查询确认连接器配置状态:
SELECT name, value_in_use FROM sys.configurations WHERE name = 'polybase enabled connectors';
若value_in_use列包含mongodb,则说明连接器已成功启用。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

