แชร์ผ่าน


ใช้ขั้นตอนการจัดเก็บด้วย Fabric API สําหรับ GraphQL

Microsoft Fabric API สําหรับ GraphQL ทําให้ง่ายต่อการคิวรีและกลายพันธุ์ข้อมูลจากฐานข้อมูล Fabric SQL และแหล่งข้อมูล Fabric อื่น ๆ เช่น Data Warehouse และ Lakehouse ที่มี Schema ประเภทที่แข็งแกร่งและภาษาคิวรีที่สมบูรณ์ซึ่งช่วยให้นักพัฒนาสามารถสร้าง API ที่ใช้งานง่ายโดยไม่ต้องเขียนโค้ดเซิร์ฟเวอร์แบบกําหนดเอง คุณสามารถใช้ขั้นตอนที่เก็บไว้เพื่อห่อหุ้มและนําตรรกะทางธุรกิจที่ซับซ้อนกลับมาใช้ใหม่ รวมถึงการตรวจสอบการป้อนข้อมูลและการแปลงข้อมูล

ในตัวอย่างนี้ เราจะเรียนรู้วิธีการใช้กระบวนงานที่เก็บไว้เพื่อลงทะเบียนผลิตภัณฑ์ใหม่ ด้วยตรรกะฝั่งเซิร์ฟเวอร์สําหรับการตรวจสอบความถูกต้อง การจัดรูปแบบ และการสร้าง ID ทั้งหมดที่ถูกเปิดเผยผ่านการกลายพันธุ์ GraphQL ใน Fabric

เริ่มต้นใช้งาน

เราเริ่มต้นโดยการสร้างฐานข้อมูล SQL ใน Fabric:

  1. ในพื้นที่ทํางาน Fabric ของคุณ เลือก รายการใหม่ แล้ว SQL ฐานข้อมูล (ตัวอย่าง)
  2. ตั้งชื่อฐานข้อมูลของคุณ จากนั้นเลือก ข้อมูลตัวอย่าง เพื่อสร้างตารางและข้อมูลที่จําเป็นทั้งหมดในฐานข้อมูลของคุณได้อย่างรวดเร็ว

สถานการณ์: ลงทะเบียนผลิตภัณฑ์ใหม่

สมมติว่าคุณต้องการสร้างผลิตภัณฑ์ใหม่ด้วย:

  • การตรวจสอบความถูกต้องของตรรกะการกําหนดราคา (ตัวอย่างเช่น ListPrice > StandardCost)
  • การแปลงข้อมูล (ตัวอย่างเช่น ใช้ตัวอักษรตัวแรกของชื่อผลิตภัณฑ์ แล้วตัดแต่งหมายเลขผลิตภัณฑ์ตัวพิมพ์ใหญ่)
  • การสร้าง ProductID (โดยการเพิ่ม ProductID ล่าสุด)

ขั้นตอนที่ 1: สร้าง Stored Procedure

นี่คือขั้นตอนที่เก็บไว้ของ T-SQL ที่ห่อหุ้มตรรกะทางธุรกิจทั้งหมดที่เราต้องการ ในฐานข้อมูล SQL ของคุณ คลิกที่ คิวรีใหม่ และใช้คําสั่งต่อไปนี้:

CREATE PROCEDURE SalesLT.RegisterProduct
  @Name nvarchar(50),
  @ProductNumber nvarchar(25),
  @StandardCost money,
  @ListPrice money,
  @SellStartDate datetime
AS
BEGIN
  SET NOCOUNT ON;
  SET IDENTITY\_INSERT SalesLT.Product ON;

  -- Validate pricing logic
  IF @ListPrice <= @StandardCost
    THROW 50005, 'ListPrice must be greater than StandardCost.', 1;

-- Transform product name: capitalize first letter only
  DECLARE @CleanName nvarchar(50);
  SET @CleanName = UPPER(LEFT(LTRIM(RTRIM(@Name)), 1)) + LOWER(SUBSTRING(LTRIM(RTRIM(@Name)), 2, 49));

  -- Trim and uppercase product number
  DECLARE @CleanProductNumber nvarchar(25);
  SET @CleanProductNumber = UPPER(LTRIM(RTRIM(@ProductNumber)));

  -- Generate ProductID by incrementing the latest existing ID
  DECLARE @ProductID int;
  SELECT @ProductID = ISNULL(MAX(ProductID), 0) + 1 FROM SalesLT.Product;

  INSERT INTO SalesLT.Product (
    ProductID,
    Name,
    ProductNumber,
    StandardCost,
    ListPrice,
    SellStartDate
  )
  OUTPUT 
    inserted.ProductID,
    inserted.Name,
    inserted.ProductNumber,
    inserted.StandardCost,
    inserted.ListPrice,
    inserted.SellStartDate
  VALUES (
    @ProductID,
    @CleanName,
    @CleanProductNumber,
    @StandardCost,
    @ListPrice,
    @SellStartDate
  );
END;

คลิก เรียกใช้ เพื่อทดสอบการดําเนินการ คุณสังเกตเห็นกระบวนงานที่เก็บไว้ใหม่ RegisterProduct ภายใต้โฟลเดอร์ Stored Procedures ในฐานข้อมูล SalesLT ใช้คิวรีต่อไปนี้เพื่อทดสอบตรรกะของกระบวนการ:

DECLARE @RC int
DECLARE @Name nvarchar(50)
DECLARE @ProductNumber nvarchar(25)
DECLARE @StandardCost money
DECLARE @ListPrice money
DECLARE @SellStartDate datetime

-- TODO: Set parameter values here.
Set @Name = 'test product'       
Set @ProductNumber = 'tst-0012'
Set @StandardCost = '10.00'
Set @ListPrice = '9.00'
Set @SellStartDate = '2025-05-01T00:00:00Z'

EXECUTE @RC = \[SalesLT\].\[RegisterProduct\] 
   @Name
  ,@ProductNumber
  ,@StandardCost
  ,@ListPrice
  ,@SellStartDate
GO

ขั้นตอนที่ 2: สร้าง GraphQL API

การสร้าง API จากตาราง SQL ของคุณนั้นเร็ว ง่าย และตรงไปตรงมา คุณเพียงแค่คลิกปุ่ม API ใหม่สําหรับ GraphQL ในริบบอนฐานข้อมูล SQL และตั้งชื่อ API ของคุณ

จากนั้นเลือกตาราง SalesLT ในฐานข้อมูลของคุณและขั้นตอนที่เก็บไว้ที่เราเพิ่งสร้าง จากนั้นคลิก โหลด:

หน้าจอรับข้อมูลเพื่อเลือกตารางและขั้นตอนใน API สําหรับ GraphQL

GraphQL API, schema และตัวแก้ไขทั้งหมดจะถูกสร้างขึ้นโดยอัตโนมัติในไม่กี่วินาทีตามตาราง SQL และ Stored Procedure

ขั้นตอนที่ 3: เรียกใช้ขั้นตอนจาก GraphQL

เมื่อ API พร้อม ขั้นตอนการจัดเก็บจะพร้อมใช้งานเป็นแบบการกลายพันธุ์ใน Schema ของ Fabric GraphQL ไปที่ตัวแก้ไขคิวรีและดําเนินการกลายพันธุ์ต่อไปนี้:

mutation {
   executeRegisterProduct (
    Name: " graphQL swag ",
    ProductNumber: "gql-swag-001",
    StandardCost: 10.0,
    ListPrice: 15.0,
    SellStartDate: "2025-05-01T00:00:00Z"
  ) {
ProductID
    Name
    ProductNumber
    StandardCost
    ListPrice
    SellStartDate
   }
}

การกลายพันธุ์ในพอร์ทัล GraphQL API ที่แสดงผลลัพธ์

เคล็ด ลับ

  • Fabric GraphQL จะสร้างเขตข้อมูลการกลายพันธุ์สําหรับขั้นตอนการจัดเก็บที่ส่งกลับชุดผลลัพธ์ที่กําหนดไว้ในผลลัพธ์ของกระบวนการโดยอัตโนมัติ
  • ตรรกะทางธุรกิจอยู่ภายในขั้นตอน ไม่ใช่ไคลเอ็นต์
  • ใช้การสร้าง ID แบบเชิงกําหนดเฉพาะในกรณีที่คุณไม่ขึ้นอยู่กับคอลัมน์ข้อมูลประจําตัวเท่านั้น

การเปิดเผยขั้นตอนการจัดเก็บผ่าน Fabric API ช่วยให้คุณสามารถกําหนดกฎที่แข็งแกร่งและสอดคล้องกันใน SQL สําหรับข้อมูลของคุณ และเข้าถึงได้อย่างสมบูรณ์ผ่าน GraphQL