Sql api не поддерживается для этой базы данных Ошибка - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь выполнить запрос в Cosmo DB Mongo API, используя Cdata ODBC через Python.Ниже приведена конфигурация драйвера:

[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 account\r\nActivityId: 66808c80-83b6-4694-99ac-295693b8f51d, Microsoft.Azure.Documents.Common/2.5.1.  (-1) (SQLExecDirectW)')

У меня есть учетная запись студента Azure, может ли это повлиять?Можно ли сделать запрос без SQL с помощью этих инструментов?

Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2019

Похоже, что этот инструмент использует SQL API для запуска SQL-запросов.Если ваша учетная запись Cosmos DB использует API Mongo, вы должны использовать инструменты и драйверы, которые используют API Mongo.

Если вы собираетесь использовать этот инструмент в качестве основного варианта разработки / использования, я бы сказал, чтоУчетная запись API Mongo может быть неправильным выбором, поскольку у вас нет требований Mongo, просто создайте учетную запись API SQL (Core).

...