หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Note
คุณลักษณะนี้อยู่ในการแสดงตัวอย่างสาธารณะ การแสดงตัวอย่างนี้จะมีให้โดยไม่มีข้อตกลงระดับบริการ และไม่แนะนําสําหรับปริมาณงานการผลิต คุณลักษณะบางอย่างอาจไม่ได้รับการสนับสนุนหรืออาจมีความสามารถที่จํากัด สําหรับข้อมูลเพิ่มเติม โปรดดู ข้อกําหนดการใช้งานเพิ่มเติมสําหรับตัวอย่าง Microsoft Azure
สคีมากราฟคือคอลเลกชันของประเภทโหนด ประเภทขอบ และคุณสมบัติที่กําหนดโครงสร้างของกราฟของคุณ สคีมากราฟที่ออกแบบมาอย่างดีทําให้ข้อมูลของคุณง่ายต่อการสืบค้น บํารุงรักษา และขยาย บทความนี้ให้แนวทางปฏิบัติที่ดีที่สุดในการเปลี่ยนข้อมูลแบบตารางในเลคเฮาส์ให้เป็นกราฟคุณสมบัติ ติดป้ายกํากับ ที่มีประสิทธิภาพในปี Microsoft Fabric
ใช้หลักเกณฑ์เหล่านี้ก่อนที่คุณจะเริ่มสร้างแบบจําลองในตัวแก้ไขแบบจําลองกราฟ สําหรับคําแนะนําทีละขั้นตอนเกี่ยวกับการสร้างโหนดและขอบ โปรดดูบทช่วยสอนกราฟ ตัวอย่างในบทความนี้ใช้ชุดข้อมูลตัวอย่าง Adventure Works
สำคัญ
ขณะนี้กราฟไม่รองรับวิวัฒนาการสคีมา หลังจากที่คุณสร้างแบบจําลองข้อมูลแล้ว โครงสร้างของโหนด ขอบ และคุณสมบัติจะได้รับการแก้ไข การเปลี่ยนแปลงโครงสร้าง เช่น การเพิ่มคุณสมบัติ การแก้ไขป้ายชื่อ หรือการเปลี่ยนชนิดความสัมพันธ์ คุณต้องสร้างแบบจําลองกราฟใหม่และโหลดข้อมูลทั้งหมดซ้ํา กระบวนการนี้ใช้เวลาและใช้กําลังการผลิต ดังนั้น ควรวางแผน Schema ของคุณอย่างละเอียดก่อนที่คุณจะเริ่มการสร้างแบบจําลอง
ข้อกำหนดเบื้องต้น
- พื้นที่ทํางาน Fabric ที่มีเลคเฮาส์ที่มีตารางต้นทางของคุณ
- ความคุ้นเคยกับตัวแก้ไขแบบจําลองกราฟ
- ทางเลือก: ชุดข้อมูลตัวอย่าง Adventure Works เพื่อทําตามตัวอย่างในบทความนี้
ทําความเข้าใจประเภทโหนดและประเภท Edge
ก่อนที่คุณจะออกแบบ Schema ให้ทําความเข้าใจแนวคิดหลักเหล่านี้:
ชนิดโหนดกําหนดชนิดของเอนทิตีในกราฟของคุณ เช่น ลูกค้า ผลิตภัณฑ์ หรือใบสั่ง ประกอบด้วย:
-
ป้ายชื่อ ซึ่งเป็นชื่อที่ระบุประเภทของโหนดนี้ ตัวอย่างเช่น:
Customerคุณใช้ป้ายชื่อในแบบสอบถามเพื่ออ้างถึงโหนดของชนิดนี้ - ตารางการแม็ป ซึ่งเป็นตารางเลคเฮาส์ที่ให้ข้อมูลต้นทางสําหรับชนิดโหนด ตัวอย่างเช่น ตาราง adventureworks_customers
-
คอลัมน์หลักที่ระบุแต่ละโหนดที่ไม่ซ้ํากัน (รหัสที่มีป้ายกํากับในตัวแก้ไขแบบจําลองกราฟ) ตัวอย่างเช่น:
CustomerID_K -
คุณสมบัติ ซึ่งเป็นคอลัมน์จากตารางที่กลายเป็นแอตทริบิวต์ในแต่ละโหนด ตัวอย่างเช่น
FirstName, ,LastNameและEmailAddress.
โหนดเป็นอินสแตนซ์แต่ละรายการของชนิดโหนด - หนึ่งแถวในตารางการแมป ตัวอย่างเช่น แต่ละแถวใน adventureworks_customers จะกลายเป็น Customer โหนด
ประเภท Edge กําหนดประเภทของความสัมพันธ์ระหว่างโหนดสองประเภท ประกอบด้วย:
-
ป้ายชื่อ ซึ่งเป็นชื่อที่ระบุประเภทของความสัมพันธ์นี้ ตัวอย่างเช่น:
purchases - ตารางการแม็ปที่มีข้อมูลความสัมพันธ์ระหว่างโหนดต้นทางและโหนดเป้าหมาย ตัวอย่างเช่น ตาราง adventureworks_orders
-
ประเภทโหนดต้นทางและประเภทโหนดเป้าหมายที่เอดจ์เชื่อมต่อ ตัวอย่างเช่น
Customerเป็นแหล่งที่มาและเป็นOrderเป้าหมาย
เอดจ์คืออินสแตนซ์แต่ละรายการของประเภทเอดจ์ - หนึ่งแถวในตารางการแมปที่เชื่อมต่อโหนดเฉพาะสองโหนด
Note
ในตัวแก้ไขโมเดลกราฟ ปุ่ม เพิ่มโหนด และ เพิ่มขอบ จะสร้างประเภทโหนดและประเภทขอบ ไม่ใช่โหนดหรือขอบแต่ละโหนด
ระบุเอนทิตีและความสัมพันธ์
เริ่มต้นด้วยการระบุ เอนทิตี (สิ่งของ) และ ความสัมพันธ์ (การเชื่อมต่อ) ในข้อมูลของคุณ เอนทิตีกลายเป็นชนิดโหนด การเชื่อมต่อระหว่างเอนทิตีกลายเป็นชนิดเอดจ์
ถามคําถามเหล่านี้เกี่ยวกับตารางต้นทางของคุณ:
- เอนทิตีหลักคืออะไร? แถวที่แสดงถึงสิ่งต่าง ๆ ในโลกแห่งความเป็นจริงคือตัวเลือกสําหรับชนิดโหนด ตัวอย่างเช่น ลูกค้า สินค้า คําสั่งซื้อ และพนักงาน
- เอนทิตีเหล่านี้เกี่ยวข้องกันอย่างไร? คอลัมน์ที่อ้างอิงแถวในตารางอื่น (คีย์นอก) จะแนะนําชนิดขอบ ตัวอย่างเช่น
CustomerID_FKในordersตารางชี้ไปที่customersตาราง ซึ่งแนะนําการสร้างแบบจําลองpurchasesขอบ - มีเอนทิตีแบบฝังตัวหรือไม่? คอลัมน์ภายในตารางอาจแสดงถึงเอนทิตีที่แตกต่างกันที่ควรค่าแก่การแยกออกเป็นชนิดโหนดของตัวเอง สําหรับตัวอย่าง โปรดดู เลือกประเภทโหนด สําหรับคําแนะนําทีละขั้นตอน โปรดดู เพิ่มโหนดและ Edge หลายชนิดจากตารางการแม็ปเดียว
เลือกประเภทโหนด
สร้างชนิดโหนดสําหรับแต่ละเอนทิตีที่คุณต้องคิวรีหรือสํารวจอย่างอิสระ ใช้หลักเกณฑ์เหล่านี้:
| ทําให้เอนทิตีเป็น ชนิดโหนด เมื่อ... | เก็บไว้เป็น ทรัพย์สิน เมื่อ... |
|---|---|
| คุณต้องข้ามไปหรือผ่านมัน | เป็นข้อมูลเมตาเชิงพรรณนาที่คุณอ่านเท่านั้น |
| หลายเอนทิตีใช้ความสัมพันธ์ร่วมกัน | มันเป็นเอกลักษณ์เฉพาะของเอนทิตีที่มันเป็นของมัน |
| คุณต้องจับคู่หรือจัดกลุ่มตามโดยตรงในแบบสอบถาม | คุณกรองตามเป็นคุณสมบัติของเอนทิตีอื่นเท่านั้น |
ตัวอย่าง: ในชุด Country ข้อมูล Adventure Works เริ่มต้นเป็นคอลัมน์บน employees ตาราง หากคุณต้องการค้นหา "พนักงานคนใดอาศัยอยู่ในประเทศเดียวกัน" หรือ "ประเทศใดมีพนักงานมากที่สุด" ให้แยกข้อมูล Country เป็นชนิดโหนดของตัวเอง หากคุณต้องการแสดงประเทศของพนักงานเป็นป้ายกํากับเท่านั้น ให้ปล่อยให้เป็นทรัพย์สิน
เลือกคอลัมน์หลัก
โหนดทุกประเภทต้องใช้คอลัมน์คีย์ (หรือคีย์ผสม) ที่ระบุแต่ละโหนดโดยไม่ซ้ํากัน เลือกคีย์อย่างระมัดระวัง:
-
ใช้ตัวระบุที่ไม่ซ้ํากันที่มีอยู่ จากตารางต้นทางของคุณ ตัวอย่างเช่น
CustomerID_KหรือProductID_K -
หลีกเลี่ยงคีย์ตัวแทนที่ขาดความหมายทางธุรกิจ เว้นแต่จะไม่มีคีย์ธรรมชาติ ตัวอย่างเช่น ต้องการ
CustomerIDหมายเลขแถวที่เพิ่มขึ้นโดยอัตโนมัติ -
ใช้คีย์ผสม เมื่อคอลัมน์เดียวไม่รับประกันความไม่ซ้ํากัน ตัวอย่างเช่น โห
ProductVersionนดอาจต้องการทั้ง และProductIDVersionNumberเป็นคีย์ - จับคู่ชนิดข้อมูล ระหว่างคอลัมน์คีย์และคอลัมน์คีย์นอกที่ใช้ในการแม็ปขอบ ประเภทที่ไม่ตรงกันทําให้เกิดความล้มเหลวในการสร้างขอบ
เคล็ดลับ
กําหนด ข้อจํากัดของคีย์โหนด เพื่อเปิดใช้งานกลไกจัดการแบบสอบถามเพื่อทําการค้นหาโดยตรงกับคุณสมบัติหลัก การเพิ่มประสิทธิภาพนี้ช่วยเพิ่มความเร็วในการสืบค้นที่ค้นหาโหนดเฉพาะตามคีย์
เลือกประเภทขอบ
ประเภท Edge กําหนดความสัมพันธ์ระหว่างชนิดโหนด เอดจ์แต่ละประเภทจะเชื่อมต่อประเภทโหนดต้นทางกับประเภทโหนดเป้าหมายผ่านตารางการแมป
ปฏิบัติตามหลักเกณฑ์เหล่านี้:
-
ใช้ป้ายกํากับสื่อความหมาย ที่อ่านเป็นคํากริยาหรือวลีคํากริยา ตัวอย่างเช่น
purchases, ,sells,livesInและbelongsToขอบที่มีชื่อดีทําให้การสืบค้นอ่านง่ายขึ้น - พิจารณาทิศทางอย่างรอบคอบ ขอบในกราฟถูกกําหนดทิศทาง เลือกทิศทางที่แสดงถึงความสัมพันธ์ในโลกแห่งความเป็นจริงได้ดีที่สุด ตัวอย่างเช่น
Customer--การซื้อ ->Orderอ่านได้อย่างเป็นธรรมชาติมากกว่าOrder--purchasedBy->Customer - ตั้งชื่อที่แตกต่างกันให้กับประเภท Edge ที่เชื่อมต่อคู่ประเภทโหนดต่างๆ ถ้าทั้ง "พนักงานขายคําสั่งซื้อ" และ "ใบสั่งซื้อของลูกค้า" เชื่อมต่อกับ
Orderให้ตั้งชื่อและsellspurchasesแทนที่จะให้ป้ายกํากับเดียวกัน สําหรับข้อมูลเพิ่มเติม โปรดดู ข้อจํากัดในการสร้าง Edge
เพิ่มคุณสมบัติให้กับประเภทขอบ
ซึ่งแตกต่างจากประเภทโหนด ประเภท Edge เริ่มต้นโดยไม่มีคุณสมบัติ คุณสามารถเลือกเพิ่มคุณสมบัติได้เมื่อข้อมูลอธิบายความสัมพันธ์เองแทนที่จะเป็นจุดสิ้นสุดอย่างใดอย่างหนึ่ง คุณสมบัติ Edge มีประโยชน์มากที่สุดเมื่อคุณเขียนคิวรี GQL ที่ต้องกรอง รวม หรือส่งคืนข้อมูลเกี่ยวกับความสัมพันธ์
เมื่อต้องการเพิ่มคุณสมบัติ ให้ดับเบิลคลิกที่ชนิดขอบในตัวแก้ไขแบบจําลองกราฟเพื่อเปิดกล่องโต้ตอบ แก้ไข Schema ขอบ เลือก เพิ่มคุณสมบัติ แล้วเลือกคอลัมน์จากตารางการแม็ป
เมื่อใดที่ควรเพิ่มคุณสมบัติขอบ: หากคอลัมน์ตอบว่า "เท่าไหร่?", "เมื่อไหร่" หรือ "ในทางใด" เกี่ยวกับการเชื่อมต่อระหว่างสองโหนด คอลัมน์นั้นจะอยู่บนขอบ ไม่ใช่บนโหนดใดโหนดหนึ่ง
ตัวอย่าง: ในชุดข้อมูล Adventure Works เอcontainsดจ์จะเชื่อมต่อOrderProductผ่านตาราง adventureworks_orders คอลัมน์เช่น OrderQty, UnitPriceและ LineTotal อธิบายความสัมพันธ์ - จํานวนผลิตภัณฑ์ที่อยู่ในลําดับที่เฉพาะเจาะจง ในราคาเท่าใด คอลัมน์ชอบ OrderDate หรือ ShipDate อธิบายลําดับเองและอยู่ใน Order ชนิดโหนด ไม่ใช่บนขอบ
สำคัญ
ตารางการแมปสําหรับ Edge ต้องมีคอลัมน์ที่ตรงกับคอลัมน์หลักของทั้งประเภทโหนดต้นทางและโหนดเป้าหมายในค่าและชนิดข้อมูล ตารางที่คุณใช้เพื่อสร้างชนิดโหนดยังสามารถทําหน้าที่เป็นตารางการแม็ปขอบได้หากตรงตามข้อกําหนดนี้
ลบคุณสมบัติที่ไม่จําเป็น
เมื่อคุณสร้างชนิดโหนดจากตารางการแม็ป ทุกคอลัมน์ในตารางจะกลายเป็นคุณสมบัติตามค่าเริ่มต้น คุณสมบัติที่มากเกินไปจะเพิ่มพื้นที่เก็บข้อมูล การสืบค้นช้า และทําให้กราฟยากต่อการบํารุงรักษา ด้วยเหตุผลเหล่านี้ ให้ลบคุณสมบัติที่คุณไม่ต้องการสําหรับการสอบถามหรือการวิเคราะห์
Note
ประเภทขอบทํางานแตกต่างกัน - เริ่มต้นโดยไม่มีคุณสมบัติ คุณเพิ่มเฉพาะคุณสมบัติที่คุณต้องการด้วยตนเองโดยใช้ปุ่ม เพิ่มคุณสมบัติ ในกล่องโต้ตอบ แก้ไข Schema ขอบ
สําหรับโหนดแต่ละประเภท ให้เก็บเฉพาะคุณสมบัติที่:
- จําเป็นสําหรับความเป็นเอกลักษณ์ของโหนด (คอลัมน์หลัก)
- ใช้ใน
WHEREตัวกรองหรือการRETURNฉายภาพในคิวรีของคุณ - จําเป็นสําหรับการวิเคราะห์ดาวน์สตรีมหรือการแสดงภาพ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่จํานวนคุณสมบัติส่งผลต่อประสิทธิภาพของคิวรี ให้ดูที่ ส่งกลับเฉพาะคุณสมบัติที่คุณต้องการ
เลือกประเภทข้อมูล
เลือกประเภทข้อมูลที่เฉพาะเจาะจงที่สุดสําหรับแต่ละพร็อพเพอร์ตี้ ชนิดที่เหมาะสมจะปรับปรุงทั้งประสิทธิภาพการจัดเก็บข้อมูลและประสิทธิภาพการสืบค้น:
- ใช้
INTหรือUINT64สําหรับตัวระบุตัวเลขและการนับ การเปรียบเทียบตัวเลขเร็วกว่าการเปรียบเทียบสตริง - ใช้
ZONED DATETIMEสําหรับการประทับเวลาแทนวันที่ที่จัดรูปแบบสตริง - ใช้สําหรับ
BOOLEANแฟล็กจริง/เท็จแทนค่าสตริง เช่น"yes"หรือ"no"
สําหรับรายการชนิดที่ได้รับการสนับสนุนทั้งหมด โปรดดู ข้อจํากัดปัจจุบัน — ชนิดข้อมูล
รูปแบบตารางเป็นกราฟทั่วไป
ตารางต่อไปนี้สรุปวิธีที่โครงสร้างข้อมูลแบบตารางทั่วไปแปลเป็นองค์ประกอบกราฟ:
| โครงสร้างแบบตาราง | ผลลัพธ์กราฟ | ตัวอย่าง |
|---|---|---|
| หนึ่งต่อกลุ่ม: ตารางผู้ปกครอง + ตารางลูกพร้อมคีย์ต่างประเทศ | โหนดสองประเภทเชื่อมต่อกันด้วยประเภทขอบ |
Customer
--
การซื้อ-->Order |
| กลุ่มต่อกลุ่ม: ตารางรวมที่เชื่อมโยงสองตาราง | ประเภทขอบระหว่างโหนดสองประเภท |
Vendor
--
ผลิต-->Product |
| เอนทิตีแบบฝังตัว: คอลัมน์ที่แสดงถึงเอนทิตีที่ใช้ร่วมกัน | ประเภทโหนดที่แยกออกมาพร้อมขอบ |
Employee
--
livesIn-->Country |
| ลําดับชั้น: ห่วงโซ่ของตารางหลัก-ลูก | ประเภทโหนดที่เชื่อมโยงด้วยขอบในแต่ละระดับ |
Product
--
isOfType-->Subcategory --เป็นของ-->Category |
สําหรับคําแนะนําทีละขั้นตอนของรูปแบบเอนทิตีแบบฝังตัว โปรดดู เพิ่มโหนดและเอดจ์หลายชนิดจากตารางการแม็ปเดียว
เปลี่ยน Schema กราฟของคุณ
กราฟไม่สนับสนุนวิวัฒนาการสคีมา หลังจากที่คุณบันทึกแบบจําลองกราฟ โครงสร้างของชนิดโหนด ชนิดขอบ และคุณสมบัติของโหนดจะได้รับการแก้ไข หากต้องการทําการเปลี่ยนแปลงโครงสร้าง เช่น การเพิ่มคุณสมบัติให้กับชนิดโหนด การลบประเภท Edge หรือการเปลี่ยนคอลัมน์หลัก คุณต้องสร้างโมเดลกราฟใหม่และโหลดข้อมูลของคุณอีกครั้ง
วิธีเปลี่ยนสคีมากราฟ
- ในพื้นที่ทํางานของคุณ ให้สร้างรายการกราฟใหม่ที่เชื่อมต่อกับเลคเฮาส์เดียวกัน
- ในตัวแก้ไขโมเดลกราฟ ให้เพิ่มชนิดโหนดและประเภทขอบที่คุณต้องการ รวมถึงคุณสมบัติใหม่หรือที่แก้ไข
- กําหนดค่าคอลัมน์หลักและการแม็ปขอบ ตรวจสอบให้แน่ใจว่าชนิดข้อมูลตรงกันระหว่างคอลัมน์หลักและคอลัมน์คีย์นอก
- เลือก บันทึก เพื่อนําเข้าข้อมูล และสร้างกราฟใหม่
- อัปเดตชุดคิวรีใดๆ ให้ชี้ไปยังกราฟใหม่
- หลังจากที่คุณตรวจสอบแล้วว่ากราฟใหม่ทํางานตามที่คาดไว้แล้ว ให้ลบรายการกราฟต้นฉบับถ้าคุณไม่ต้องการ