หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ในการเริ่มต้นใช้งานด่วนนี้ คุณจะใช้ Jupyter Notebook ใน Visual Studio Code เพื่อรับข้อมูลเชิงลึกทางธุรกิจได้อย่างรวดเร็ว คุณใช้ mssql-python ไดรเวอร์สําหรับ Python เพื่อเชื่อมต่อกับ ฐานข้อมูล SQL ของคุณใน Fabric และอ่านข้อมูลที่จัดรูปแบบเพื่อใช้ในอีเมล รายงาน งานนําเสนอ ฯลฯ
mssql-pythonไดรเวอร์ไม่ต้องการการพึ่งพาภายนอกใดๆ บนเครื่อง Windows ไดรเวอร์จะติดตั้งทุกอย่างที่จําเป็นด้วยการติดตั้งเพียงครั้งเดียว pip ช่วยให้คุณใช้ไดรเวอร์เวอร์ชันล่าสุดสําหรับสคริปต์ใหม่ได้โดยไม่ทําลายสคริปต์อื่นๆ ที่คุณไม่มีเวลาอัปเกรดและทดสอบ
เอกสารประกอบ | ซอร์สโค้ด | mssql-pythonแพ็คเกจ (PyPi) | รหัสสตูดิโอภาพ
ข้อกําหนดเบื้องต้น
หลาม 3
หากคุณยังไม่มี Python ให้ติดตั้งรันไทม์ Python และตัวจัดการแพ็คเกจ pip จาก python.org
ไม่ต้องการใช้สภาพแวดล้อมของคุณเองใช่ไหม เปิดเป็น devcontainer โดยใช้ GitHub Codespaces
Visual Studio Code ที่มีส่วนขยายต่อไปนี้:
Azure Command-Line Interface (CLI) - แนะนําสําหรับการรับรองความถูกต้องของ macOS และ Linux
หากคุณยังไม่มี
uvให้ติดตั้งuvโดยทําตามคําแนะนําจาก https://docs.astral.sh/uv/getting-started/installation/.ติดตั้งข้อกําหนดเบื้องต้นเฉพาะระบบปฏิบัติการแบบใช้ครั้งเดียว
apk add libtool krb5-libs krb5-dev
สร้างโครงการและเรียกใช้โค้ด
- สร้างโครงการใหม่
- เพิ่มการขึ้นต่อกัน
- เปิดใช้ Visual Studio Code
- อัปเดต pyproject.toml
- บันทึกสตริงการเชื่อมต่อ
- สร้างสมุดบันทึก Jupyter
- แสดงผลลัพธ์ในตาราง
- แสดงผลลัพธ์ในแผนภูมิ
สร้างโครงการใหม่
เปิดพรอมต์คําสั่งในไดเรกทอรีการพัฒนาของคุณ หากคุณไม่มี ให้สร้างไดเร็กทอรีใหม่ที่เรียกว่า
python,scriptsฯลฯหลีกเลี่ยงโฟลเดอร์บน OneDrive ของคุณการซิงโครไนซ์อาจรบกวนการจัดการสภาพแวดล้อมเสมือนของคุณสร้างโปรเจ็กต์ใหม่ด้วย
uvuv init jupyter-notebook-qs cd jupyter-notebook-qs
เพิ่มการขึ้นต่อกัน
ในไดเร็กทอรีเดียวกัน ให้ติดตั้งแพmssql-pythonคเกจ , python-dotenv, , richpandasและmatplotlib จากนั้นเพิ่ม ipykernel และ uv เป็นการพึ่งพาผู้พัฒนา VS Code ต้องการ ipykernel และ uv เพิ่มเพื่อให้สามารถโต้ตอบกับ uv เซลล์สมุดบันทึกของคุณโดยใช้คําสั่งเช่น !uv add mssql_python.
uv add mssql_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=ActiveDirectoryDefault"เคล็ดลับ
สําหรับฐานข้อมูล SQL ใน Fabric ให้ใช้สตริงการเชื่อมต่อ ODBC จากแท็บ สตริงการเชื่อมต่อโดยไม่มีข้อมูล DRIVER
สร้างสมุดบันทึก 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 ใหม่
เพิ่มข้อความต่อไปนี้ลงในเซลล์มาร์กดาวน์ใหม่
## Define queries for use laterเลือก เครื่องหมายถูก ในแถบเครื่องมือของเซลล์ หรือใช้แป้นพิมพ์
Ctrl+Enterลัด หรือShift+Enterเพื่อแสดงเซลล์ markdownใช้ปุ่ม + โค้ด ที่ด้านบนของสมุดบันทึกเพื่อเพิ่มเซลล์โค้ดใหม่
เพิ่มโค้ดต่อไปนี้ลงในเซลล์โค้ดใหม่
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 ใหม่
เพิ่มข้อความต่อไปนี้ลงในเซลล์มาร์กดาวน์ใหม่
## Print orders by customer and display in a tableเลือก เครื่องหมายถูก ในแถบเครื่องมือของเซลล์ หรือใช้แป้นพิมพ์
Ctrl+Enterลัด หรือShift+Enterเพื่อแสดงเซลล์ markdownใช้ปุ่ม + โค้ด ที่ด้านบนของสมุดบันทึกเพื่อเพิ่มเซลล์โค้ดใหม่
เพิ่มโค้ดต่อไปนี้ลงในเซลล์โค้ดใหม่
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 ใหม่
เพิ่มข้อความต่อไปนี้ลงในเซลล์มาร์กดาวน์ใหม่
## Display spend by category in a horizontal bar chartเลือก เครื่องหมายถูก ในแถบเครื่องมือของเซลล์ หรือใช้แป้นพิมพ์
Ctrl+Enterลัด หรือShift+Enterเพื่อแสดงเซลล์ markdownใช้ปุ่ม + โค้ด ที่ด้านบนของสมุดบันทึกเพื่อเพิ่มเซลล์โค้ดใหม่
เพิ่มโค้ดต่อไปนี้ลงในเซลล์โค้ดใหม่
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เพื่อเรียกใช้เซลล์ตรวจสอบผลลัพธ์ ทําให้สมุดบันทึกเล่มนี้เป็นของคุณเอง
ขั้นตอนถัดไป
เยี่ยมชมที่เก็บ GitHub ของ mssql-python ไดรเวอร์เพื่อดูตัวอย่างเพิ่มเติม เพื่อแสดงความคิดเห็นหรือรายงานปัญหา