使用无服务器SQL池通过Synapse Link查询Azure Cosmos DB Gremlin API报错求助
错误信息
error: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)
执行的查询语句
SELECT top 1 * FROM OPENROWSET ( 'CosmosDB', N'Account=cosbbbbbbbbiv01t;Database=bbbbb;key=bbbbbbbbbbbb==', Graph1 ) AS q1
排查与解决方向
网络与防火墙验证
确认无服务器SQL池的出站流量可到达Cosmos DB账户。检查Cosmos DB防火墙规则,允许Synapse工作区的IP范围或服务端点访问;若使用VNet集成,确保VNet peering配置无中断。Synapse Link配置检查
确认Cosmos DB已启用Synapse Link,目标Graph容器已开启分析存储。核对OPENROWSET中的连接参数:账户名、数据库名、密钥需与Cosmos DB实际配置完全匹配,注意密钥的大小写和特殊字符。查询超时与资源调整
尝试延长查询超时时间,比如添加SET QUERY_TIMEOUT 300;(单位:秒)。若数据量较大,缩小查询范围(如增加过滤条件、减少返回行数),避免资源耗尽导致连接中断。Cosmos DB服务状态确认
查看Azure门户中Cosmos DB账户的健康状态,排查是否存在服务中断或高负载情况。若服务处于高负载,需等待恢复或调整Cosmos DB吞吐量配置。语法正确性验证
确认Gremlin API的OPENROWSET语法无误,Graph1需是已启用分析存储的Graph容器名称,连接字符串格式符合要求。
内容的提问来源于stack exchange,提问作者SKARVA Bodavula

