#sql-server #database #jupyter-notebook #configuration #pyodbc
Вопрос:
Я хотел подключить свою базу данных к записной книжке python jupter. Шаги, которые я предпринял:
- Установил pyodbc и импортировал в свой ноутбук
- pyodbc.драйверы()
- cnxn = pyodbc.connect(‘ДРАЙВЕР={Драйвер ODBC 17 для SQL Server};СЕРВЕР=;БАЗА ДАННЫХ=;’)
Однако он все еще терпит неудачу. Я путаюсь с именем сервера и подключения.
- Каким будет мое имя сервера — имя сервера/подключения?(Пожалуйста, найдите скриншот)
- Чтобы подключиться к jupyter, нужно ли мне настраивать его где-нибудь в management studio?
Заранее спасибо!
Ответ №1:
Как только вы загрузили и импортировали pyodbc в свой ноутбук, все в порядке.Теперь вам нужно настроить ODBC в службе SQL Server.
- Запустите ODBC, затем перейдите в Системный DSN и нажмите правую кнопку «Добавить».
- Эта процедура откроет мастер создания источника данных ODBC для подключения к SQL Server.
- Заполните имя ODBC, описание и, что наиболее важно, Сервер (Имя компьютераИмя экземпляра), который является строкой подключения для SQL server.
- Нажмите далее Использовать аутентификацию SQL server (у вас должен быть пользователь с аутентификацией SQL) , введите логин и пароль, затем нажмите Далее.
- Выберите Defult databse, затем нажмите «Далее», затем «Готово» и проверьте подключение, чтобы показать, что ТЕСТЫ УСПЕШНО ЗАВЕРШЕНЫ!
- Нажмите Применить и закройте ODBC
Вернемся к записной книжке юпитера
-установите sql в своей среде:
pip install ipython-sql
- Откройте новый блокнот и импортируйте ниже в одну ячейку
import pandas as pd
import pyodbc
- Запустите ячейку ниже, чтобы установить соединение
%load_ext sql
%sql mssql pyodbc://sqlauthuser:password@ODBCName
- чтобы выполнить SQL-запрос, вы должны сохранить его переменную, как показано ниже в примере:
db_query='''
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP (1000) [BusinessEntityID]
,[AddressID]
,[AddressTypeID]
,[rowguid]
,[ModifiedDate]
FROM [AdventureWorks2019].[Person].[BusinessEntityAddress]'''
— Чтобы показать результаты, запустите ячейку ниже
%sql $db_query