แชร์ผ่าน


เรียกใช้รหัส T-SQL ใน Fabric Python notebook

การผสมผสาน T-SQL และ Python ในเวิร์กโฟลว์ข้อมูลที่ทันสมัยนําเสนอวิธีการที่ยืดหยุ่นและมีประสิทธิภาพซึ่งผสมผสานจุดแข็งของทั้งสองภาษาเข้าด้วยกัน SQL ยังคงเป็นวิธีที่มีประสิทธิภาพและอ่านได้มากที่สุดในการคิวรี ตัวกรอง และรวมข้อมูลที่มีโครงสร้าง ในขณะที่ Python จะยอดเยี่ยมสําหรับการแปลงข้อมูล การวิเคราะห์ทางสถิติ การเรียนรู้ของเครื่อง และการแสดงภาพ ด้วยการรวม T-SQL และ Python เข้าด้วยกัน วิศวกรข้อมูลสามารถใช้สิ่งที่ดีที่สุดของทั้งสองโลก ทําให้พวกเขาสามารถสร้างไปป์ไลน์ที่มีประสิทธิภาพ บํารุงรักษาได้ และสามารถจัดการงานการประมวลผลข้อมูลที่ซับซ้อนได้

ในสมุดบันทึก Microsoft Fabric Python เราได้แนะนําคุณลักษณะใหม่ที่เรียกว่า คําสั่งเวทมนตร์ T-SQL คุณลักษณะนี้ช่วยให้คุณสามารถเรียกใช้รหัส T-SQL โดยตรงใน Python notebooks ด้วยการเน้นไวยากรณ์เต็มรูปแบบและการเติมรหัส ซึ่งหมายความว่าคุณสามารถเขียนรหัส T-SQL ใน Python notebook และจะมีการดําเนินการราวกับว่าเป็นเซลล์ T-SQL คุณลักษณะนี้มีประโยชน์สําหรับวิศวกรข้อมูลที่ต้องการใช้พลังของ T-SQL ในขณะที่ยังคงใช้ความยืดหยุ่นของสมุดบันทึก Python

ในบทความนี้ เราจะสํารวจคําสั่งเวทมนตร์ T-SQL ในสมุดบันทึก Microsoft Fabric เราจะครอบคลุมวิธีการเปิดใช้งานคําสั่งนี้ ระบุคลังสินค้าที่จะใช้ และวิธีการผูกผลลัพธ์ของคิวรี T-SQL กับตัวแปร Python

คุณลักษณะนี้พร้อมใช้งานสําหรับ Fabric Python notebook คุณต้องตั้งค่าภาษาเป็น Python ในสมุดบันทึก และประเภทเซลล์เป็น T-SQL

Important

คุณลักษณะนี้อยู่ในตัวอย่าง

ใช้คําสั่งเวทมนตร์ T-SQL เพื่อคิวรีคลังข้อมูล Fabric

เพื่อเปิดใช้งานคําสั่งเวทมนตร์ T-SQL ในโน้ตบุ๊ค Fabric ของคุณ คุณต้องตั้งค่า %%tsql คําสั่งเวทมนตร์ที่จุดเริ่มต้นของเซลล์ของคุณ คําสั่งนี้ระบุโค้ดในเซลล์นั้นที่ควรใช้เป็นรหัส T-SQL

ในตัวอย่างนี้ เรากําลังใช้คําสั่งเวทมนตร์ T-SQL เพื่อคิวรี่ Fabric Data Warehouse คําสั่งจะใช้พารามิเตอร์ต่อไปนี้:

  • พารามิเตอร์ -artifact ระบุชื่อของคลังข้อมูลที่จะใช้ รหัส T-SQL ในเซลล์ถูกเรียกใช้กับคลังข้อมูลที่ระบุใน Fabric
  • พารามิเตอร์ระบุ -type ชนิดของรายการ Fabric สําหรับ Fabric Data Warehouse ให้ใช้ Warehouse.
  • พารามิเตอร์ -bind ระบุชื่อของตัวแปรที่จะผูกผลลัพธ์ของคิวรี T-SQL ในตัวอย่างต่อไปนี้ ผลลัพธ์ของคิวรีจะถูกเก็บไว้ในตัวแปร Python ที่เรียกว่าdf1 หากคุณต้องการใช้การแปลงใดก็ตามกับตัวแปร df1 คุณสามารถทําได้โดยใช้รหัส Python ในเซลล์ถัดไป พารามิเตอร์ -bind เป็นทางเลือก แต่ขอแนะนําให้ผูกผลลัพธ์ของคิวรี T-SQL กับตัวแปร Python พารามิเตอร์นี้ช่วยให้คุณสามารถจัดการและวิเคราะห์ผลลัพธ์โดยใช้รหัส Python ได้อย่างง่ายดาย
  • พารามิเตอร์ -workspace เป็นตัวเลือกและจะใช้ถ้าคลังสินค้าอยู่ในพื้นที่ทํางานอื่น หากไม่มีพารามิเตอร์นี้ สมุดบันทึกจะใช้พื้นที่ทํางานปัจจุบัน
%%tsql -artifact dw1 -type Warehouse -bind df1
SELECT TOP (10) [GeographyID],
            [ZipCodeBKey],
            [County],
            [City],
            [State],
            [Country],
            [ZipCode]
FROM [dw1].[dbo].[Geography]

สกรีนช็อตแสดงคําสั่งเวทมนตร์ tsql พร้อมคลังข้อมูล

ถ้าข้ามทั้งพารามิเตอร์ และ -artifact สมุด -type บันทึกจะใช้สินค้าคลังสินค้าเริ่มต้นในสมุดบันทึกปัจจุบัน

การใช้คําสั่งเวทมนตร์ T-SQL เพื่อสืบค้นฐานข้อมูล SQL

คุณยังสามารถใช้คําสั่งเวทมนตร์ T-SQL เพื่อสืบค้นฐานข้อมูล SQL ใน Fabric ได้อีกด้วย ไวยากรณ์จะคล้ายกับการสืบค้นคลังข้อมูล แต่ -type ต้องตั้งค่าพารามิเตอร์เป็น SQLDatabase. พารามิเตอร์ -bind ระบุชื่อของตัวแปรที่จะผูกผลลัพธ์ของคิวรี T-SQL

ในตัวอย่างต่อไปนี้ ผลลัพธ์ของคิวรีจะถูกเก็บไว้ในตัวแปร Python ที่เรียกว่าdf2

%%tsql -artifact sqldb1 -type SQLDatabase -bind df2
SELECT TOP (10) [AddressID]
      ,[AddressLine1]
      ,[AddressLine2]
      ,[City]
      ,[StateProvince]
      ,[CountryRegion]
      ,[PostalCode]
      ,[rowguid]
      ,[ModifiedDate]
  FROM [SalesLT].[Address];

สกรีนช็อตแสดงคําสั่งเวทมนตร์ tsql ด้วยฐานข้อมูล sql

การใช้คําสั่งเวทมนตร์ T-SQL เพื่อสืบค้นจุดสิ้นสุดการวิเคราะห์ SQL เลคเฮาส์

คุณยังสามารถใช้คําสั่งเวทมนตร์ T-SQL เพื่อสืบค้นตําแหน่งข้อมูลการวิเคราะห์ SQL ไวยากรณ์จะคล้ายกับการสืบค้นคลังข้อมูล แต่ -type ต้องตั้งค่าพารามิเตอร์เป็น Lakehouse. พารามิเตอร์ -bind ระบุชื่อของตัวแปรที่จะผูกผลลัพธ์ของคิวรี T-SQL

ในตัวอย่างต่อไปนี้ ผลลัพธ์ของคิวรีจะถูกเก็บไว้ในตัวแปร Python ที่เรียกว่าdf3

%%tsql -artifact lakehouse1 -type Lakehouse -bind df3
SELECT TOP (10) [ProductID],
      [Name],
      [ProductNumber],
      [Color],
      [StandardCost],
      [ListPrice]
FROM [lakehouse1].[dbo].[Product];

ใช้คําสั่งเวทมนตร์ T-SQL เป็นบรรทัดเวทมนตร์

แทนที่จะเรียกใช้ T-SQL ในเซลล์โค้ดแบบเต็มด้วย %%tsqlคุณสามารถเรียกใช้ T-SQL ในบรรทัดเดียวด้วย %tsql เวทมนตร์บรรทัด อย่างไรก็ตาม คุณต้องสร้างการเชื่อมต่อเซสชันก่อน

Important

ก่อนใช้ %tsql เวทมนตร์บรรทัดคุณต้องเรียกใช้ %%tsql คําสั่งเมจิกของเซลล์ด้วย -session พารามิเตอร์เพื่อเริ่มต้นบริบทเวทมนตร์ SQL การเรียกใช้%tsqlโดยไม่มีการตั้งค่านี้จะส่งผลให้เกิดSQLMagicContextInitializationException

ข้อกําหนดเบื้องต้นสําหรับเวทมนตร์เส้น

  1. เริ่มต้นเซสชัน: ในเซลล์ที่ใช้ %%tsql คําสั่งวิเศษ ให้รวมพารามิเตอร์ -session เพื่อสร้างบริบทการเชื่อมต่อ เช่น:

    %%tsql -artifact ContosoDWH -type Warehouse -session
    SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    
  2. ใช้เวทมนตร์บรรทัด: หลังจากเริ่มต้นเซสชันแล้ว คุณสามารถใช้ %tsql ในเซลล์ต่อไปนี้ได้ เวทมนตร์เส้นจะใช้การเชื่อมต่อที่สร้างขึ้นในขั้นตอนที่ 1 โดยที่คุณไม่ต้องระบุ -artifact และ -type อีกครั้ง เช่น:

    df = %tsql SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    

สกรีนช็อตแสดงคําสั่งเวทมนตร์ tsql ด้วยเวทมนตร์บรรทัด

การอ้างอิงตัวแปร Python ใน T-SQL

คุณยังสามารถอ้างอิงตัวแปร Python ในรหัส T-SQL เมื่อต้องการทําเช่นนั้น ให้ใช้ {} สัญลักษณ์ตามด้วยชื่อของตัวแปร Python ตัวอย่างเช่น ถ้าคุณมีตัวแปร Python ที่เรียกว่า countคุณสามารถอ้างอิงดังต่อไปนี้ในรหัส T-SQL ของคุณ:

count = 10

df = %tsql SELECT TOP({count}) * FROM [dw1].[dbo].[Geography];

สกรีนช็อตแสดงคําสั่งเวทมนตร์ tsql พร้อมตัวแปรการอ้างอิง python

หากต้องการดูไวยากรณ์แบบเต็ม ให้ใช้ %tsql? คําสั่ง คําสั่งนี้แสดงข้อมูลความช่วยเหลือสําหรับคําสั่งเวทมนตร์ T-SQL รวมถึงพารามิเตอร์ที่พร้อมใช้งานและคําอธิบาย

Note

คุณสามารถเรียกใช้คําสั่ง DML และ DDL แบบเต็มกับคลังข้อมูลหรือฐานข้อมูล SQL แต่เฉพาะคิวรีแบบอ่านอย่างเดียวกับจุดสิ้นสุด sql ของ lakehouse

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ Fabric notebook ดูบทความต่อไปนี้