Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом быстром старте используйте 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и допустимой строкой подключения.Установите единовременные предварительные условия для операционной системы.
apk add libtool krb5-libs krb5-dev
Создание базы данных 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 = "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В текущем каталоге создайте новый файл с именем
.env.В файле
.envдобавьте запись для строки подключения с именемSQL_CONNECTION_STRING. Замените пример фактическим значением строки подключения.SQL_CONNECTION_STRING="Server=<server_name>;Database=<database_name>;Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Подсказка
Строка подключения, используемая здесь, в значительной степени зависит от типа базы данных SQL, к которой вы подключаетесь. Если вы подключаетесь к базе данных SQL Azure или базе данных SQL в Fabric, используйте строку подключения ODBC на вкладке строк подключения. Возможно, вам потребуется настроить тип проверки подлинности в зависимости от вашего сценария. Дополнительные сведения о строках подключения и их синтаксисе см. в справочнике по синтаксису строки подключения.
Создание записной книжки 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 sod inner join SalesLT.SalesOrderHeader soh on sod.salesorderid = soh.salesorderid inner join SalesLT.Product p on sod.productid = p.productid inner join SalesLT.ProductCategory 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)Подсказка
На macOS, оба
ActiveDirectoryInteractiveиActiveDirectoryDefaultработают для проверки подлинности Microsoft Entra.ActiveDirectoryInteractiveзапрашивает вход при каждом запуске скрипта. Чтобы избежать повторных запросов при входе, войдите один раз через Azure CLI, запустивaz login, затем используйтеActiveDirectoryDefault, который повторно использует кэшированный учетный код.Нажмите кнопку "Запустить все" в верхней части записной книжки, чтобы запустить её.
При появлении запроса выберите ядро 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для запуска ячейки.Проверка результатов. Сделайте эту записную книжку собственной.
Дальнейшие действия
Используйте эти статьи, чтобы продолжать строить:
- Постройте строки соединений для настройки соединений для различных типов SQL-баз данных и методов аутентификации.
- интеграция pandas для загрузки результатов запросов напрямую в DataFrames для анализа в ноутбуках.
- Интеграция Arrow для работы с столбцовыми данными с использованием Apache Arrow для высокопроизводительной аналитики.