ข้อจํากัดปัจจุบันของกราฟใน Microsoft Fabric

กราฟใน Microsoft Fabric มีข้อจํากัดด้านการทํางานและประสิทธิภาพการทํางานบางประการ บทความนี้เน้นข้อจํากัดหลักบางอย่าง แต่ไม่ใช่รายการที่ครบถ้วน ตรวจสอบการอัปเดตเป็นประจํา

สําหรับความช่วยเหลือเกี่ยวกับปัญหาทั่วไป โปรดดู การแก้ไขปัญหากราฟ

การสร้างแบบจําลองกราฟ

แหล่งข้อมูล

  • ไฟล์ Parquet และ CSV ของ OneLake เป็นแหล่งข้อมูลเดียวที่ได้รับการสนับสนุนในปัจจุบัน
  • การสนับสนุนสําหรับแบบจําลองความหมาย Power BI เนื่องจากแหล่งข้อมูลอยู่ระหว่างการพัฒนา
  • การสนับสนุนสําหรับการ รักษาความปลอดภัย OneLake ระดับคอลัมน์และระดับแถวอยู่ระหว่างการพัฒนา

ชนิดข้อมูล

กราฟในขณะนี้สนับสนุนชนิดข้อมูลต่อไปนี้:

  • บูลีน (ค่าคือ true และ false)
  • สองเท่า (ค่าคือตัวเลขทศนิยม 64 บิต)
  • จํานวนเต็ม (ค่าเป็นจํานวนเต็มที่ลงนาม 64 บิต)
  • สตริง (ค่าคือสตริงอักขระ Unicode)
  • วันที่และเวลาที่แบ่งเขต (ค่าคือการประทับเวลาพร้อมกับการเปลี่ยนเวลาสําหรับโซนเวลา)
  • ระยะเวลา (ค่าคือช่วงระยะเวลา ISO 8601)

ชนิด OneLake ต่อไปนี้ได้รับการสนับสนุน:

  • IntegerType
  • LongType
  • StringType
  • DoubleType
  • บูลีนชนิด
  • FloatType
  • ByteType
  • ArrayType
  • DateType
  • TimestampNtzType
  • TimestampType

การสร้างขอบ

ในระหว่างการสร้างแบบจําลองกราฟ ให้ตั้งชื่อชนิดขอบกราฟที่แตกต่างกัน

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

เวลาการสร้างกราฟ

สูงสุดสัปดาห์ละครั้ง แบบจําลองกราฟอาจพบการหมดเวลาหากการสร้างกราฟหรือการอัปเดตใช้เวลานานกว่า 20 นาที การดําเนินการถูกทําเครื่องหมายว่าล้มเหลว

อย่างไรก็ตาม ผู้ใช้สามารถเริ่มต้นการสร้างกราฟหรืออัปเดตใหม่ได้

ขนาดกราฟ

การกําหนดค่า SKU ที่มีอยู่โดยทั่วไปในปัจจุบันสามารถประมวลผลองค์ประกอบกราฟได้ประมาณ 2 พันล้านรายการ (โหนดและขอบ) สําหรับกราฟขนาดใหญ่ที่มีจํานวนองค์ประกอบมากกว่าหรือน้ําหนักบรรทุกคุณสมบัติที่ใหญ่กว่าต่อองค์ประกอบ โปรดติดต่อทีมผลิตภัณฑ์

จํานวนโมเดลกราฟทั้งหมด

พื้นที่ทํางาน Fabric แต่ละแห่งสามารถมีโมเดลกราฟได้สูงสุด 10 แบบ

UI ทํางานหลายอย่าง

แบบจําลองกราฟอาจหายไปหรือว่างเปล่าเมื่อคุณสลับระหว่างแท็บหรือหน้าต่างใน Fabric Multitask UI ทีมผลิตภัณฑ์กําลังทํางานเพื่อแก้ไขปัญหานี้ที่ทราบแล้ว

การเลือกคุณสมบัติของโหนด

เมื่อคุณเพิ่มโหนดหรือชนิด Edge ลงในแบบจําลองกราฟของคุณ ให้เลือกคอลัมน์จากตารางต้นทางที่จะเพิ่มเป็นคุณสมบัติด้วยตนเอง ทั้งโหนดและขอบเริ่มต้นโดยไม่มีคุณสมบัติ และคุณเพิ่มเฉพาะสิ่งที่คุณต้องการเท่านั้น

สอบ ถาม

จํานวนของการกระโดดในคิวรีแบบหลายชั้น

กราฟสนับสนุนการกระโดดสูงสุดแปดแบบบนรูปแบบความยาวที่แปรผันได้

ขนาดของผลลัพธ์

ประสิทธิภาพการรวมอาจไม่เสถียรเมื่อผลลัพธ์มีขนาดเกิน 128 MB

ระบบในขณะนี้จะตัดการตอบสนองที่มีขนาดใหญ่กว่า 64 MB

การหมดเวลา

คิวรีจะหมดเวลาหากใช้เวลามากกว่า 20 นาที

การส่งออกข้อมูลและการแสดงภาพ

  • การส่งออกผลลัพธ์คิวรีกราฟหรือโครงสร้างกราฟยังไม่ได้รับการรองรับในขณะนี้
  • การเชื่อมต่อ Power BI โดยตรงไปยังกราฟสําหรับสถานการณ์การแสดงภาพยังไม่รองรับในขณะนี้

ความสอดคล้องกันของ GQL

สําหรับการแมปโดยละเอียดของคุณลักษณะ GQL ที่รองรับกับมาตรฐาน ISO /IEC 39075:2024 รวมถึงความสอดคล้องต่ําสุด คุณสมบัติทางเลือกตามกลุ่มและคุณสมบัติที่ยังไม่ได้รับการรองรับ โปรดดูความสอดคล้องมาตรฐาน GQL

ความสอดคล้องกับมาตรฐาน GQL ยังคงอยู่ระหว่างดําเนินการสําหรับ:

  • แก้ไขรหัสสถานะ GQL
  • คําสั่ง FOR ที่มีดัชนี
  • ต่อไป
  • คําสั่ง UNION DISTINCT
  • ตัววัดปริมาณรูปแบบกราฟที่ไม่ได้ผูกไว้
  • การค้นหาเส้นทางที่สั้นที่สุดทั้งหมด
  • การค้นหาเส้นทางใดๆ
  • การค้นหาเส้นทางที่สั้นที่สุด
  • การแปลงข้อมูล
  • คิวรีย่อยสเกลา
  • ฟังก์ชัน PROPERTIES
  • ฟังก์ชัน RANGE
  • ฟังก์ชันตัวเลขที่ได้รับการปรับปรุง
  • ฟังก์ชันลอการิทึม
  • ฟังก์ชันตรีโกณมิติ
  • การเรียงต่อกันของค่าเส้นทาง
  • เพรดิเคตทดสอบป้ายชื่อ
  • เพรดิเคตปกติ
  • เพรดิเคตต้นทาง/ปลายทาง
  • ชนิดค่า INT32
  • ชนิดค่า FLOAT32
  • ชนิดของค่าระเบียนที่ปิด
  • ชนิดของค่า UINT32
  • ชนิดค่า ZONED TIME
  • ชนิดค่า DATE
  • พารามิเตอร์ที่ส่งผ่าน
  • ขอบที่ไม่ถูกตรวจพบ
  • GQL-preamble
  • เพรดิเคตรูปแบบที่ไม่จัดสรร
  • เป็นเพรดิเคต DIRECTED
  • เพรดิเคต REGEXP_CONTAINS
  • ข้อมูลจําเพาะของพารามิเตอร์แบบไดนามิก
  • ผู้ใช้เซสชัน
  • ชนิดค่า BYTES
  • ชนิดค่า DECIMAL
  • ชนิดค่า DATETIME ของ LOCAL
  • ชนิดค่าเวลาท้องถิ่น
  • คําสั่งกระบวนงานที่ตั้งชื่อ
  • ORDER BY ที่มีการจัดลําดับ NULL อย่างชัดเจน
  • คําสั่ง Tabular FOR
  • คําสั่ง EXCEPT ALL
  • คําสั่งยกเว้น DISTINCT
  • คําสั่ง INTERSECT ALL
  • คําสั่ง INTERSECT DISTINCT
  • คําสั่ง OTHERWISE
  • อักขระตัวแทน
  • ความสอดคล้องทางโทโพธิวิทยาที่ผ่อนคลาย
  • ฟังก์ชันการรวม PERCENTILE_CONT
  • ฟังก์ชันการรวม PERCENTILE_DISC
  • ฟังก์ชันการรวม PRODUCT
  • ฟังก์ชันการรวม STDDEV_POP
  • ฟังก์ชันการรวม STDDEV_SAMP
  • การเรียงต่อกันของสตริงไบต์
  • ฟังก์ชัน TRIM สตริงไบต์
  • ฟังก์ชัน TRIM อย่างง่ายพร้อมข้อกําหนด TRIM
  • ฟังก์ชัน Multicharacter TRIM
  • ฟังก์ชันความยาวสตริงไบต์
  • คาร์ดินาลลิตี้
  • เพรดิเคต ALL_DIFFERENT
  • เพรดิเคต IS DISTINCT
  • เพรดิเคตเดียวกัน

แค็ตตาล็อก

Note

ชื่อกราฟและชื่อข้อจํากัดจะถูกสร้างขึ้นโดยอัตโนมัติและ GraphBackend ไม่สามารถระบุใน UI หรือในสคีมา JSON ได้

พื้นที่แคตตาล็อก ขีดจํากัด / พฤติกรรมปัจจุบัน สถานะการบังคับใช้ คำ แนะ นำ
พื้นฐาน ID แค็ตตาล็อก รหัสองค์ประกอบแค็ตตาล็อกเป็นตัวห่อหุ้ม int32 ที่ลงนามโดยที่ 0 ไม่ถูกต้อง ดังนั้นแต่ละตระกูล ID จึงมี ID ที่ไม่ใช่ศูนย์ที่เป็นบวกมากที่สุด std::numeric_limits<int32_t>::max() - 1 (2 พันล้าน) เพดานการใช้งาน ไม่ใช่โควต้า GA ที่แนะนํา
สคีมากราฟ หนึ่งประเภทกราฟต่อแคตตาล็อก ข้อคิดเห็น ID แค็ตตาล็อกถือว่าแค็ตตาล็อกมีกราฟชนิดเดียวเท่านั้น สมมติฐานการออกแบบ ไม่เปิดเผยเป็นโควต้าหลายสคีมา
ขนาดอนุกรมคําจํากัดความของกราฟ ไม่มีขีดจํากัด GraphProtoขนาดไบต์ที่ชัดเจน ;ประกอบด้วยประเภทโหนดซ้ํา ประเภทขอบ ป้ายกํากับ ชื่อคุณสมบัติ และข้อจํากัด ไม่บังคับใช้ภายใต้ protobuf/gRPC/หน่วยความจํา การตรวจสอบจํานวนวัตถุของแค็ตตาล็อกมีผลหลังจากการสร้างกราฟ
ชื่อกราฟ ต้องไม่ว่างเปล่า ไม่มีความยาวไบต์สูงสุดหรือรายการอักขระที่อนุญาตอย่างชัดเจน บังคับใช้เฉพาะ nonempty เท่านั้น 128 ตัวอักษร
ชนิดโหนด ประเภทโหนดสูงสุด 2 พันล้านประเภท บังคับใช้โดย CatalogGraphType::Validate ผ่านช่องว่าง int32 ID ที่ไม่ใช่ศูนย์บวก 100
ประเภทขอบ ประเภทขอบสูงสุด 2 พันล้านประเภท บังคับใช้โดย CatalogGraphType::Validate ผ่านช่องว่าง int32 ID ที่ไม่ใช่ศูนย์บวก 100
ป้ายกํากับโหนดที่ไม่ซ้ํากันในทุกโหนด ป้ายกํากับโหนดที่ไม่ซ้ํากันสูงสุด 2 พันล้านรายการ บังคับใช้โดย CatalogGraphType::Validate;ป้ายกํากับที่ซ้ํากันภายในประเภทเดียวจะถูกปฏิเสธ สิ่งที่ได้รับ
ป้ายขอบที่ไม่ซ้ํากันในทุกประเภท ฉลากขอบที่ไม่ซ้ํากันสูงสุด 2 พันล้านป้าย บังคับใช้โดย CatalogGraphType::Validate;ป้ายกํากับที่ซ้ํากันภายในประเภทเดียวจะถูกปฏิเสธ สิ่งที่ได้รับ
ชื่อคุณสมบัติที่ไม่ซ้ํากันในทุกประเภทโหนดและเอดจ์ ชื่อทรัพย์สินที่ไม่ซ้ํากันสูงสุด 2 พันล้านชื่อ บังคับใช้โดย CatalogGraphType::Validateชื่อคุณสมบัติต้องไม่ว่างเปล่า และรายการที่ซ้ํากันภายในชนิดเดียวจะถูกปฏิเสธ 64k * 10
ข้อกําหนดข้อจํากัดของโหนด คําจํากัดความข้อจํากัดคีย์โหนดสูงสุด 2 พันล้านโหนด บังคับใช้โดย CatalogGraphType::Validate ผ่านช่องว่าง int32 ID ที่ไม่ใช่ศูนย์บวก <= ประเภทโหนด
ข้อกําหนดข้อจํากัดของขอบ คําจํากัดความข้อจํากัดของคีย์ Edge สูงสุด 2 พันล้านรายการ แต่ข้อจํากัดของคีย์ Edge จะถูกปิดใช้งานโดยค่าเริ่มต้น เว้นแต่ allow_edge_key_constraints จะเป็นจริง บังคับใช้การนับหากมี Feature Gate ปฏิเสธข้อจํากัดของ Edge ตามค่าเริ่มต้น <= ประเภทขอบ
ชื่อคุณสมบัติ อักขระ / ความยาว ไม่ได้บังคับใช้อย่างชัดเจนนอกเหนือจากชื่อคุณสมบัติที่ไม่ว่างเปล่าและไวยากรณ์ตัวแยกวิเคราะห์ ไม่มีรายการความยาวไบต์สูงสุดหรืออักขระที่อนุญาตของแค็ตตาล็อก 128 อักขระ
อักขระฉลาก / ความยาว ไม่ได้บังคับใช้อย่างชัดเจนนอกเหนือจากไวยากรณ์ตัวแยกวิเคราะห์และป้ายกํากับที่ไม่ว่างเปล่าในข้อจํากัด ไม่มีรายการความยาวไบต์สูงสุดหรืออักขระที่อนุญาตของแค็ตตาล็อก 128 อักขระ
อักขระ / ความยาวของชื่อข้อจํากัด ชื่อข้อจํากัดต้องไม่ว่างเปล่า ไม่มีความยาวไบต์สูงสุดหรือรายการอักขระที่อนุญาตอย่างชัดเจน การตรวจสอบความถูกต้องของข้อจํากัดที่ซ้ํากัน/ตรงกันจะแยกจากกัน 128 อักขระ
คุณสมบัติต่อชนิดโหนด ไม่มีจํานวนคุณสมบัติสูงสุดที่ชัดเจนในประเภทโหนด ชื่อพร็อพเพอร์ตี้ที่ซ้ํากันจะถูกปฏิเสธ การตรวจสอบความถูกต้องเท่านั้น 256
คุณสมบัติต่อประเภทขอบ ไม่มีจํานวนคุณสมบัติสูงสุดที่ชัดเจนในประเภทขอบ ชื่อพร็อพเพอร์ตี้ที่ซ้ํากันจะถูกปฏิเสธ การตรวจสอบความถูกต้องเท่านั้น 256
ป้ายกํากับต่อชนิดโหนด ไม่มีจํานวนป้ายกํากับสูงสุดที่ชัดเจนในประเภทโหนด ป้ายชื่อที่ซ้ํากันจะถูกปฏิเสธ การตรวจสอบความถูกต้องเท่านั้น 64
ป้ายชื่อต่อประเภทขอบ ไม่มีจํานวนป้ายกํากับสูงสุดที่ชัดเจนบนประเภทขอบ ป้ายกํากับที่ซ้ํากันจะถูกปฏิเสธ ป้ายกํากับที่เพิ่มขอบจะถูกปฏิเสธ การตรวจสอบความถูกต้องเท่านั้น 64
คุณสมบัติหลักต่อข้อจํากัด ไม่มีจํานวนสูงสุดของคุณสมบัติคีย์ที่ชัดเจนในข้อจํากัดของคีย์โหนดหรือขอบ ชื่อพร็อพเพอร์ตี้แต่ละรายการต้องไม่ว่างเปล่า การตรวจสอบความถูกต้องเท่านั้น 16

ค่ารันไทม์

ชนิดค่ารันไทม์ การแสดง / ช่วงการสนับสนุน ขีดจํากัดระดับมูลค่าที่ชัดเจนใช่ไหม แนะนำ
บูล บูล; ค่าจริง/เท็จ ใช่ โดเมนคงที่
อินที 64 จํานวนเต็ม 64 บิตที่ลงนาม ใช่ ความกว้างคงที่
UINT64 จํานวนเต็ม 64 บิตที่ไม่มีเครื่องหมาย ใช่ ความกว้างคงที่
คู่ C++/protobuf double / ลูกศร DoubleScalar (IEEE-754 binary64); ค่าที่ไม่จํากัดจะไม่ถูกปฏิเสธโดย Value::FromProto ไม่มีเช็คจํากัดเท่านั้น
DECIMAL128 ลูกศร Decimal128Scalarการตรวจสอบรันไทม์ช่วยให้มีความแม่นยํา 1..38 และมาตราส่วน 0..precision; ทศนิยมสูงสุด 38 หลัก ใช่สําหรับการตรวจสอบการก่อสร้าง/จากโปรโต
เชือก std::string; ValueProto.string_value ไม่มีขีดจํากัดมูลค่า 4 ล้านบาท
ไบต์ std::string ใช้เป็นคอนเทนเนอร์ไบต์ ValueProto.bytes_value ไม่มีขีดจํากัดมูลค่า ขีดจํากัดสตริง
VERTEX_ID uint64 ห่อด้วย VertexId; รหัสที่สร้างขึ้นใช้ 48 บิต shard-local ID และสํารอง 0 เป็นไม่ถูกต้อง โปรโตดิบยอมรับ uint64 ใด ๆ รหัสที่สร้างขึ้นถูกจํากัด
EDGE_ID uint64 ห่อด้วย EdgeId; รหัสที่สร้างขึ้นใช้ 48 บิต shard-local ID และสํารอง 0 เป็นไม่ถูกต้อง โปรโตดิบยอมรับ uint64 ใด ๆ รหัสที่สร้างขึ้นถูกจํากัด
ZONED_DATE_TIME absl::Time บวกเขตเวลา อนุกรมเป็น int64 มิลลิวินาทีตั้งแต่ยุค Unix บวกวินาทีออฟเซ็ต int32 UTC ช่วงมิลลิวินาทีคือ [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807] ซึ่งบันทึกเป็นทันที UTC จาก -292275055-05-16T16:47:04.192+00:00 ถึง 292278994-08-17T07:12:55.807+00:00 บันทึกช่วงเวลา ออฟเซ็ตเป็น int32 และไม่ได้เช็คอินช่วง Value::FromProto
ระยะเวลา absl::Duration; อนุกรมเป็น int64 มิลลิวินาที อนุกรมต่ําสุด/สูงสุดคือ -9,223,372,036,854,775,808 ms ถึง 9,223,372,036,854,775,807 ms (ประมาณ +/- 292,277,024.6 ปี) ตัวแยกวิเคราะห์ ISO เข้มงวดกว่า: +/-9,223,372,035 วินาที (ประมาณ +/-292.277 ปี) เส้นทางโปรโตยอมรับฟิลด์ int64 มิลลิวินาทีแบบเต็ม ตัวแยกวิเคราะห์มีตัวพิมพ์ใหญ่ที่ชัดเจนแคบกว่า
NULL / พิมพ์ null std::monostate หรือตัวห่อหุ้ม typed-null
รายการที่พิมพ์ std::vector<std::optional<T>>; LIST_NULL เก็บ ; size_tLIST_ANY ร้านค้า std::vector<Value> ไม่มีค่าสูงสุดเริ่มต้น
รายการที่ซ้อนกัน รายการที่ซ้อนกันทั่วไปไม่ได้รับการสนับสนุนในสัญญาต้นแบบ รันไทม์มีการจัดการซ้อน LIST_INT64 กันเป็นพิเศษ ไม่มีโควต้าความลึก/ความยาวเริ่มต้น
เส้นทาง สลับจุดยอด/ขอบ/จุดยอด uint64 ID ในเวกเตอร์ รูปร่างเส้นทางที่ถูกต้องมีจํานวนองค์ประกอบคี่ ไม่มีโควต้าความยาวเส้นทาง
บันทึก absl::flat_hash_map<std::string, Value> / แผนที่ Protobuf ไม่มีโควต้าจํานวนฟิลด์ ความยาวคีย์ หรือความลึกของซ้อน
ANY Value::DataType() ไม่คาดว่าจะกลับมา TYPE_ANY; ค่าไดนามิกจะถูกดําเนินการเป็นค่าที่เป็นรูปธรรมโดยเฉพาะอย่างยิ่งภายใน LIST_ANY หรือลูกศรการจัดเก็บส่วนขยายใด ๆ ไม่มีโควต้าขนาด/ความลึก

ขีดจำกัดอื่นๆ

  • ตัวระบุไม่สามารถขึ้นต้นด้วยขีดล่างได้
  • สัญพจน์จํานวนเต็มจะถือว่าเป็นจํานวนเต็มที่มีเครื่องหมายตามค่าเริ่มต้น
  • ไม่รองรับการส่งคืนชนิด ANY และ Record วิธีแก้ปัญหาชั่วคราวคือการ jsonize พวกเขาผ่าน TO_JSON_STRING.
  • ความยาวคุณสมบัติสตริงสูงสุดคือ 65535 ข้อมูลที่เกิน 64 KiB ไม่สามารถเข้าถึงตัวแยกสัญญาณได้ บัฟเฟอร์แบบเต็มยังคงเขียนไปยัง RocksDB
  • จํานวนสูงสุดขององค์ประกอบใน List<T> คุณสมบัติคือ 65535 รายการ INT64 70,000 องค์ประกอบ deserialize เป็น 4,464 องค์ประกอบ
  • ขนาดการตอบสนองแบบสอบถามสูงสุดเป็นไบต์คือ 64 MB