Как настроить бессерверный пул sql, чтобы использовать его с базовыми интерфейсами SQL, такими как pyodbc или RODBC?

Я пытаюсь настроить безсерверный пул SQL в Azure Synapse Analytics и хочу иметь возможность использовать базовые интерфейсы SQL, такие как pyodbc или RODBC, для взаимодействия с ним. Однако я не уверен, как это сделать.

По сути, я хочу иметь возможность использовать стандартные команды, такие как create или insert. Кроме того, обертки от RODBC или pyodbc, например, например. RODBC::sqlSave(con, iris, "IRIS") должно работать. Итак, работает только select. Однако строка RODBC::sqlSave(channel = con, dat = iris, tablename = "IRIS") выдает следующую ошибку.

Error in RODBC::sqlSave(channel = con, dat = iris, tablename = "IRIS") : 
  42000 15868 [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]CREATE TABLE IRIS is not supported.
[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE "IRIS"  ("rownames" varchar(255), "SepalLength" float, "SepalWidth" float, "PetalLength" float, "PetalWidth" float, "Species" varchar(255))'

Может ли кто-нибудь дать рекомендации о том, как настроить бессерверный пул SQL для работы с этими интерфейсами? В частности, я ищу информацию о любых необходимых конфигурациях или драйверах, которые необходимо установить, а также любой пример кода или руководства, демонстрирующие, как подключиться к бессерверному пулу SQL и выполнить запрос с помощью pyodbc или RODBC.

Заранее спасибо за вашу помощь!

Я удалил тег <sql>, так как он не связан с языком SQL.

jarlh 14.04.2023 11:31

Насколько я понимаю, вы пытаетесь создать таблицу в бессерверном пуле SQL с помощью pyodbc и RODBC. К сведению, создание таблицы в бессерверном пуле sql не поддерживается.

Pratik Lad 14.04.2023 11:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как настроить бессерверный пул sql, чтобы использовать его с базовыми интерфейсами SQL, такими как pyodbc или RODBC?

Я попытался воспроизвести аналогичную ошибку и получил аналогичную ошибку:

Причина ошибки:

Согласно этому Документу Microsoft

Бессерверный пул SQL не имеет локального хранилища, в базах данных хранятся только объекты метаданных. Поэтому T-SQL, связанный со следующими понятиями, не поддерживается:

  • Столы
  • Триггеры
  • Материализованные представления
  • Операторы DDL, отличные от тех, которые связаны с представлениями и безопасностью
  • Операторы DML

Создание таблицы не поддерживается в бессерверном пуле SQL. вы можете создавать внешние таблицы.

Вы можете использовать PYODBC или RODBC для подключения к бессерверному пулу SQL и запроса, следуя процедурам, перечисленным ниже:

Получите необходимые драйвера:

  • Для ODBC требуется установка драйвера SQL Server pyodbc. С веб-сайта Microsoft вы можете скачать его.
  • Вы должны установить драйвер FreeTDS, чтобы использовать RODBC. На веб-сайте FreeTDS вы можете получить его.

Получите необходимые библиотеки в коде:

  • Вам нужно будет импортировать библиотеку pyodbc, чтобы использовать pyodbc.
  • Вам нужно будет импортировать библиотеку RODBC, чтобы использовать RODBC.

ниже приведен пример кода Python для запроса бессерверного пула SQL.

import  pyodbc

# Define the connection string

server = 'servername-ondemand.sql.azuresynapse.net'

database = 'db name'

username = 'demo'

password = 'password'

driver= '{ODBC Driver 17 for SQL Server}'

connection_string = f"DRIVER = {driver};SERVER = {server};DATABASE = {database};UID = {username};PWD = {password}"

# Establish a connection to the SQL pool

conn = pyodbc.connect(connection_string)

  

# Create a cursor object

cursor = conn.cursor()

  

# Execute a SQL query

query = 'SELECT * FROM file2'

cursor.execute(query)

  

# Fetch the results

results = cursor.fetchall()

  

# Print the results

print(results)

Исполнение и вывод: -

Ссылка: https://learn.microsoft.com/en-us/azure/azure-sql/database/connect-query-python?view=azuresql

Спасибо за ваш ответ. Таким образом, кажется, что нет возможности использовать pyodbc для создания таблиц или вставки значений в существующую. Я прав?

stats_guy 14.04.2023 17:24

Поскольку мы можем создавать только внешние таблицы, нет возможности создавать таблицы или вставлять значения в существующую в бессерверном пуле sql.

Pratik Lad 14.04.2023 18:05

Другие вопросы по теме