此数据库错误不支持 SQL api



我正在尝试通过Python使用Cdata ODBC在Cosmo DB Mongo API中执行查询。以下是驱动程序配置:

[CData ODBC Driver for Cosmos DB]
Description=CData ODBC Driver for Cosmos DB 2019
Driver=/opt/cdata/cdata-odbc-driver-for-cosmosdb/lib/libcosmosdbodbc.x86.so
UsageCount=1
Driver64=/opt/cdata/cdata-odbc-driver-for-cosmosdb/lib/libcosmosdbodbc.x64.so

这是我用来进行查询的代码:

import pyodbc
cnxn = pyodbc.connect("DRIVER={CData ODBC Driver for Cosmos DB};AccountEndpoint=https://[myhost].com:443/;AccountKey=[mypass];")
cursor = cnxn.cursor()
# Find Schemas
cursor.tables()
for (catalog, schema, table, table_type, description) in cursor:
print("Catalog: {}, Schema: {}, Table: {}, Type: {}".format(
catalog, schema, table, table_type
))
# Execute Query  
cursor.execute("SELECT luistest from luistest")
rows = cursor.fetchall()
for row in rows:
print(row.luistest)

当我执行它时,表和方案的查询返回良好,但是当我查阅文档时,我收到以下错误:

Catalog: CData, Schema: luis-test, Table: luistest, Type: TABLE
Traceback (most recent call last):
File "mongo_odbc_test.py", line 11, in <module>
cursor.execute("SELECT luistest from luistest")
pyodbc.Error: ('HY000', '[HY000] [Forbidden] Sql api is not supported for this database accountrnActivityId: 66808c80-83b6-4694-99ac-295693b8f51d, Microsoft.Azure.Documents.Common/2.5.1.  (-1) (SQLExecDirectW)')

我有一个学生 Azure 帐户,这会影响吗?是否可以使用此工具在没有SQL的情况下进行查询?

谢谢。

此工具似乎正在使用 SQL API 来运行 SQL 查询。 如果你的 Cosmos DB 帐户使用的是 Mongo API,则应使用使用 Mongo API 的工具和驱动程序。

如果您打算使用此工具作为主要开发/用例,我认为 Mongo API 帐户可能不是正确的选择,因为您没有 Mongo 要求,只需创建一个 SQL(核心(API 帐户。

最新更新