Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом быстром старте используйте Jupyter Notebook в Visual Studio Code, чтобы быстро получать бизнес-аналитику. Используйте mssql-python драйвер для Python, чтобы подключиться к вашей SQL-базе данных, прочитать данные и затем отформатировать их для использования в письмах, отчетах и презентациях.
Драйвер mssql-python не требует внешних зависимостей на компьютерах Windows. Драйвер устанавливает все, что требуется с одной pip установкой, что позволяет использовать самую последнюю версию драйвера в новых сценариях без нарушения работы других сценариев, для обновления и тестирования которых у вас нет времени.
mssql-python документация | mssql-python исходный код | Пакет (PyPI) | Visual Studio Code
Предпосылки
Python 3.10 или более поздней версии.
Если у вас еще нет Python, установите среду выполнения Python и диспетчер пакетов pip из python.org.
Не хотите использовать собственную среду? Следуйте инструкциям в разделе Контейнерная и локальная разработка, чтобы создать воспроизводимую среду разработки в devcontainer или GitHub Codespaces.
Visual Studio Code со следующими расширениями:
Интерфейс azure Command-Line (CLI) для проверки подлинности без пароля в macOS и Linux.
Если у вас еще нет
uv, следуйте инструкциям по установке.База данных на SQL Server, База данных SQL Azure или базе данных SQL в Fabric с примерной схемой
AdventureWorks2025и допустимой строкой подключения.
Предварительные требования для установки операционной системы
Установите единовременные предварительные условия для операционной системы. Пользователи Windows могут пропустить этот шаг. Для полной информации о платформе см. Установить mssql-python.
apk add libtool krb5-libs krb5-dev libstdc++
Создание базы данных SQL
Создайте или подключитесь к SQL-базе данных на одной из следующих платформ:
Создание проекта и запуск кода
- Создание проекта
- Добавление зависимостей
- Запуск Visual Studio Code
- Обновление pyproject.toml
- Сохранение строки подключения
- Создание записной книжки Jupyter
- Отображение результатов в таблице
- Отображение результатов на диаграмме
Создание нового проекта
Откройте командную строку в каталоге разработки. Если у вас его нет, создайте новую директорию, например
pythonилиscripts. Избегайте папок на OneDrive, так как синхронизация может мешать управлению виртуальной средой.Создайте новый проект с
uv.uv init jupyter-notebook-qs cd jupyter-notebook-qs
Добавление зависимостей
В том же каталоге установите mssql-python,python-dotenvrich, pandasи matplotlib пакеты. Затем добавьте ipykernel и uv в качестве зависимостей разработки. VS Code требует ipykernel для запуска ячеек блокнота и uv для управления пакетами из ячеек блокнота.
uv add mssql-python python-dotenv rich pandas matplotlib
uv add --dev ipykernel
uv add --dev uv
Запустите Visual Studio Code.
В том же каталоге выполните следующую команду.
code .
Обновление pyproject.toml
Откройте файл в редакторе
pyproject.toml. Этот файл содержит метаданные вашего проекта.Обновите
descriptionзначение.description = "A quick example using the mssql-python driver and Jupyter Notebooks."Сохраните и закройте файл.
Сохранение строки подключения
.gitignoreОткройте файл и добавьте исключение для.envфайлов. Ваш файл должен быть похож на следующий пример.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envСохраните и закройте
.gitignore.В текущем каталоге создайте новый файл с именем
.env.В файле
.envдобавьте запись для строки подключения с именемSQL_CONNECTION_STRING. Замените заполнители фактическими значениями.SQL_CONNECTION_STRING="Server=<server>;Database=<database>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Строка строка подключения зависит от типа SQL-базы данных, к которой вы подключаетесь. Для База данных SQL Azure или базы данных SQL в Fabric используйте строку подключения ODBC на вкладке строк подключения и настройте тип аутентификации под ваш сценарий. Для получения дополнительной информации о синтаксисе строка подключения см. раздел Connection strings for mssql-python.
Подсказка
На macOS, оба
ActiveDirectoryInteractiveиActiveDirectoryDefaultработают для проверки подлинности Microsoft Entra.ActiveDirectoryInteractiveзапрашивает вход при каждом запуске скрипта. Чтобы избежать повторяющихся запросов при входе, войдите один раз с помощью команды Azure CLIaz loginи используйте командуActiveDirectoryDefault.ActiveDirectoryDefaultповторно использует кэшированные учетные данные.
Создание записной книжки Jupyter
Выберите "Файл", а затем "Создать файл " и "Записная книжка Jupyter" из списка. Откроется новая записная книжка.
Выберите файл, а затем сохраните как... и присвойте новой записной книжке имя.
Добавьте следующие импорты в первую ячейку.
from os import getenv from mssql_python import connect from dotenv import load_dotenv from rich.console import Console from rich.table import Table import pandas as pd import matplotlib.pyplot as pltНажмите кнопку +Markdown в верхней части записной книжки, чтобы добавить новую ячейку Markdown.
Добавьте следующий текст в новую ячейку Markdown.
## Define queries for use laterУстановите галочку на панели инструментов ячейки или используйте сочетание клавиш
Ctrl+EnterилиShift+Enter, чтобы отобразить ячейку Markdown.Нажмите кнопку +Code в верхней части записной книжки, чтобы добавить новую ячейку кода.
Добавьте следующий код в новую ячейку кода.
SQL_QUERY_ORDERS_BY_CUSTOMER = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """ SQL_QUERY_SPEND_BY_CATEGORY = """ SELECT TOP 10 pc.Name AS ProductCategory, SUM(sod.OrderQty * sod.UnitPrice) AS Spend FROM SalesLT.SalesOrderDetail AS sod INNER JOIN SalesLT.SalesOrderHeader AS soh ON sod.SalesOrderID = soh.SalesOrderID INNER JOIN SalesLT.Product AS p ON sod.ProductID = p.ProductID INNER JOIN SalesLT.ProductCategory AS pc ON p.ProductCategoryID = pc.ProductCategoryID GROUP BY pc.Name ORDER BY Spend; """
Отображение результатов в таблице
Нажмите кнопку +Markdown в верхней части записной книжки, чтобы добавить новую ячейку Markdown.
Добавьте следующий текст в новую ячейку Markdown.
## Print orders by customer and display in a tableУстановите галочку на панели инструментов ячейки или используйте сочетание клавиш
Ctrl+EnterилиShift+Enter, чтобы отобразить ячейку Markdown.Нажмите кнопку +Code в верхней части записной книжки, чтобы добавить новую ячейку кода.
Добавьте следующий код в новую ячейку кода.
load_dotenv() with connect(getenv("SQL_CONNECTION_STRING")) as conn: # type: ignore with conn.cursor() as cursor: cursor.execute(SQL_QUERY_ORDERS_BY_CUSTOMER) if cursor: table = Table(title="Orders by Customer") # https://rich.readthedocs.io/en/stable/appendix/colors.html table.add_column("Customer ID", style="bright_blue", justify="center") table.add_column("Company Name", style="bright_white", justify="left") table.add_column("Order Count", style="bold green", justify="right") records = cursor.fetchall() for r in records: table.add_row(f"{r.CustomerID}", f"{r.CompanyName}", f"{r.OrderCount}") Console().print(table)Нажмите кнопку "Запустить все" в верхней части записной книжки, чтобы запустить её.
При появлении запроса выберите ядро jupyter-notebook-qs .
Отображение результатов на диаграмме
Просмотрите результат предыдущей ячейки. Вы увидите таблицу с тремя столбцами и пятью строками.
Нажмите кнопку +Markdown в верхней части записной книжки, чтобы добавить новую ячейку Markdown.
Добавьте следующий текст в новую ячейку Markdown.
## Display spend by category in a horizontal bar chartУстановите галочку на панели инструментов ячейки или используйте сочетание клавиш
Ctrl+EnterилиShift+Enter, чтобы отобразить ячейку Markdown.Нажмите кнопку +Code в верхней части записной книжки, чтобы добавить новую ячейку кода.
Добавьте следующий код в новую ячейку кода.
with connect(getenv("SQL_CONNECTION_STRING")) as conn: # type: ignore data = pd.read_sql_query(SQL_QUERY_SPEND_BY_CATEGORY, conn) # Set the style - use print(plt.style.available) to see all options plt.style.use('seaborn-v0_8-notebook') plt.barh(data['ProductCategory'], data['Spend'])Нажмите кнопку "Выполнить ячейку " или
Ctrl+Alt+Enterдля запуска ячейки.Просмотрите диаграмму.