Вызов API функции таймера Azure для SQL Azure

#python #azure #azure-functions

Вопрос:

Я ОЧЕНЬ новичок в Azure и функциях Azure, так что будьте осторожны. 🙂

Я пытаюсь написать функцию таймера Azure (с использованием Python), которая будет принимать результаты, возвращенные вызовом API, и вставлять результаты в таблицу в SQL Azure.

Я практически ничего не понимаю. Если бы кто-нибудь был готов поддержать меня в этом процессе, я был бы ОЧЕНЬ признателен.

У меня уже написан вызов API, так что эта часть выполнена. Чего я совершенно не понимаю, так это как получить результаты из того, что возвращается в Azure SQL.

Результирующий набор, который я возвращаю, представлен в виде фрейма данных Pandas.

Опять же, любая и всяческая помощь была бы ПОТРЯСАЮЩЕЙ!

Спасибо!!!!

Ответ №1:

Вот пример, в котором записывается структура данных panda в таблицу SQL и:

 import pyodbc
import pandas as pd
# insert data from csv file into dataframe.
# working directory for csv file: type "pwd" in Azure Data Studio or Linux
# working directory in Windows c:usersusername
df = pd.read_csv("c:\user\usernamedepartment.csv")
# Some other example server values are
# server = 'localhostsqlexpress' # for a named instance
# server = 'myserver,port' # to specify an alternate port
server = 'yourservername' 
database = 'AdventureWorks' 
username = 'username' 
password = 'yourpassword' 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' server ';DATABASE=' database ';UID=' username ';PWD='  password)
cursor = cnxn.cursor()
# Insert Dataframe into SQL Server:
for index, row in df.iterrows():
    cursor.execute("INSERT INTO HumanResources.DepartmentTest (DepartmentID,Name,GroupName) values(?,?,?)", row.DepartmentID, row.Name, row.GroupName)
cnxn.commit()
cursor.close()
 

Чтобы это сработало в вашем случае, вам нужно:

  • замените чтение из csv-файла вызовом функции
  • Измените инструкцию insert в соответствии со структурой вашей таблицы SQL.

Для получения более подробной информации см.: https://docs.microsoft.com/en-us/sql/machine-learning/data-exploration/python-dataframe-sql-server?view=sql-server-ver15

Комментарии:

1. Спасибо!!!! Я собираюсь дать этому ход и отвечу. То, чего мне совершенно не хватало (и я думаю, что я должен был получить, так как именно так я делал это при вставках в локальную базу данных), — это курсор и фрагмент итерации. Ты даже не представляешь, как я тебе благодарна!!!!

2. Я продолжаю сталкиваться с ошибкой, которую, похоже, не могу преодолеть. Я установил все типы данных и убедился, что все имена столбцов одинаковы, но я продолжаю получать следующую ошибку. Ошибка программирования: (’42S22′, «[42S22] [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Недопустимое имя столбца «идентификатор свойства». (207) (SQLExecDirectW); [42S22] [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Не удалось подготовить инструкции. (8180)») Мысли?

3. Поскольку это поле и идентификатор, возможно, вы пытаетесь вставить данные в свойство автоматического приращения. Это также может быть проблемой с чувствительностью к регистру. Является ли имя поля «Идентификатор свойства»