Microsoft Fabric 中的圖形存在某些功能與效能限制。 本文強調了一些關鍵限制,但並非完整清單。 請定期回來查看最新消息。
如需常見問題的協助,請參閱 故障排除圖表。
建立圖形模型
數據源
- 目前僅支援 OneLake parquet 和 CSV 檔案的資料來源。
- 目前正在開發中,支援 Power BI 語意模型作為資料來源。
- 對欄位層級與列層級 OneLake 安全性 的支援正在開發中。
數據類型
Graph 目前支援以下資料類型:
- 布林值 (值為
true和false) - Double(值為64位浮點數)
- 整數 (值為 64 位元有正負號整數)
- 字串 (值是 Unicode 字串)
- 分區日期時間(數值為時間戳記加上時區的時間偏移)
- 持續時間(數值為 ISO 8601 持續時間區間)
支援下列 OneLake 類型:
- 整數類型
- LongType
- 字串類型
- DoubleType
- BooleanType
- 浮點類型
- ByteType
- 陣列類型
- 日期類型
- 時間戳記Ntz類型
- 時間戳類型
建立邊緣
在圖建模過程中,請給不同的圖邊類型取不同名稱。
例如,社群媒體資料集可能代表「用戶按讚、留言」和「用戶按讚貼文」。如果你的圖模型在 留言 和 貼文中分別使用不同的節點類型,那麼 使用者 節點類型有兩種「讚」邊可以留 言 和 貼文。 你可以把這些邊緣命名為 userLikesComment 和 userLikesPost。
圖形建立時間
如果圖形建立或更新時間超過 20 分鐘,則圖形模型可能會每週最多一次遇到逾時。 該操作被標記為失敗。
不過,使用者可以重新起始圖形建立或更新。
圖表大小
目前普遍可用的 SKU 配置可處理約 20 億個圖元素(節點與邊)。 若圖中元素數較多或每個元素的屬性負載較大,請聯繫產品團隊。
圖模型總數
每個 Fabric 工作區最多可有 10 個圖形模型。
多工使用者介面
當你在 Fabric 多工介面中切換分頁或視窗時,圖形模型可能會消失或變空。 產品團隊正積極努力解決這個已知問題。
節點屬性選擇
當你在圖模型中新增節點或邊型時,手動從來源資料表中選擇欄位,作為屬性加入。 節點和邊一開始都沒有屬性,你只新增你需要的屬性。
查詢
多跳查詢中的跳數
Graph 目前支援最多八跳的可變長度圖案。
結果大小
當結果大小超過 128 MB 時,彙總效能可能會不穩定。
系統目前會截斷大於 64 MB 的回應。
暫停
查詢超過20分鐘就會逾時。
資料匯出與視覺化
- 目前不支援匯出圖查詢結果或圖結構。
- 目前不支援直接將 Power BI 連接到圖形以進行視覺化情境。
GQL 一致性
如需詳細對應 GQL 特徵與 ISO/IEC 39075:2024 標準的對應,包括最低符合性、按群組分類的可選功能,以及尚未支援的功能,請參見 GQL 標準符合性。
GQL標準的合規仍在進行中,適用於以下項目:
- 正確的 GQL 狀態碼
- FOR 陳述式與索引
- 下一頁
- UNION DISTINCT 陳述式
- 無界圖形模式量詞
- 所有最短路徑搜索
- 任何路徑搜索
- 任何最短路徑搜索
- 數據轉換
- 純量子查詢
- PROPERTIES 函數
- RANGE 函數
- 增強的數值函數
- 對數函數
- 三角函數
- 路徑值串連
- 標籤測試述詞
- 正規化述詞
- 來源/目的地述詞
- INT32 值類型
- FLOAT32值類型
- 封閉式 RECORD 值型別
- UINT32 值類型
- ZONED TIME 值類型
- DATE 值類型
- 參數傳遞
- 無方向邊緣
- GQL 序言
- 非局域模式謂詞
- IS DIRECTED 述詞
- REGEXP_CONTAINS述詞
- 動態參數規格
- 工作階段使用者
- BYTES 值類型
- 小數值類型
- LOCAL DATETIME 值類型
- LOCAL TIME 值類型
- CALL 具名程序陳述式
- ORDER BY 具有明確的 NULL 排序
- 表格式 FOR 陳述式
- EXCEPT ALL 陳述式
- EXCEPT DISTINCT 陳述式
- INTERSECT ALL 陳述式
- INTERSECT DISTINCT 陳述式
- OTHERWISE 陳述式
- 通配符
- 寬鬆的拓撲一致性
- PERCENTILE_CONT 聚合函數
- PERCENTILE_DISC 聚合函數
- 積聚合函數
- STDDEV_POP 聚合函數
- STDDEV_SAMP 聚合函數
- 位元組字串串連
- 位元組字串 TRIM 函數
- 具有 TRIM 規格的簡單 TRIM 功能
- 多字元的 TRIM 函式
- 位元組字串長度函數
- 基數
- ALL_DIFFERENT述詞
- IS DISTINCT 述詞
- SAME 述詞
目錄
Note
圖名和約束名稱是自動產生 GraphBackend 的,無法在 UI 或 JSON 架構中指定。
| 目錄區域 | 電流極限/行為 | 執法狀況 | Recommendation |
|---|---|---|---|
| 目錄識別碼基礎 | 目錄元素 ID 是有符號的 int32 封裝器,其中 0 無效,因此每個 ID 家族最多 std::numeric_limits<int32_t>::max() - 1 有正非零 ID(20 億個)。 |
實施上限,而非建議的 GA 配額 | |
| 圖結構 | 每個目錄只有一種圖形類型;目錄 ID 註解假設目錄僅包含一種圖形類型。 | 設計假設;未被揭露為多模式配額 | |
| 圖定義序列化大小 | 在 上 GraphProto沒有明確的位元組大小上限;它包含重複的節點類型、邊型、標籤、屬性名稱和約束。 |
在 protobuf/gRPC/記憶體以下不強制執行;目錄物件計數檢查會在圖建構後進行 | |
| 圖名稱 | 必須非空;沒有明確的最大位元組長度或字元允許清單。 | 只有非空的才會被強制執行 | 128 個字元 |
| 節點類型 | 最多有 20 億種節點類型。 | 透過正非零 int32 識別碼空間強制執行CatalogGraphType::Validate |
64k |
| 邊型 | 最多有20億種邊緣類型。 | 透過正非零 int32 識別碼空間強制執行CatalogGraphType::Validate |
64k |
| 跨所有節點類型的唯一節點標籤 | 最多 20 億個獨特節點標籤。 | 強制執行; CatalogGraphType::Validate同一類型內重複標籤被拒絕 |
衍生 |
| 所有邊型間唯一的邊標 | 最多 20 億個獨特邊緣標籤。 | 強制執行; CatalogGraphType::Validate同一類型內重複標籤被拒絕 |
衍生 |
| 所有節點與邊型別中唯一的屬性名稱 | 最多20億個獨特房產名稱。 | 強制執行; CatalogGraphType::Validate屬性名稱不能為空,且同一類型內的重複會被拒絕 |
64k * 10 |
| 節點限制定義 | 最多 20 億節點的密鑰約束定義。 | 透過正非零 int32 識別碼空間強制執行CatalogGraphType::Validate |
<= 節點類型 |
| 邊約束定義 | 最多 20 億個邊緣鍵約束定義,但除非為真,否則邊緣 allow_edge_key_constraints 鍵限制預設是被禁用的。 |
若在場,則執行伯爵;特徵門預設會拒絕邊緣約束 | <= 邊型 |
| 物業名稱字元/長度 | 除了非空屬性名稱和解析器文法外,並未明確強制執行;沒有目錄最大位元組長度或字元允許清單。 | 128 個角色 | |
| 標籤字元/長度 | 限制中未明確強制執行,僅限於解析器文法與非空標籤;沒有目錄最大位元組長度或字元允許清單。 | 128 個角色 | |
| 約束名稱 字元 / 長度 | 限制名稱必須非空;沒有明確的最大位元組長度或字元允許清單。 | 重複/匹配約束驗證是分開的 | 128 個角色 |
| 各節點類型的屬性 | 節點類型上沒有明確的最大屬性數;重複的物業名稱會被拒絕。 | 僅進行正確性驗證 | 256 |
| 各邊類型的性質 | 邊型上沒有明確的最大屬性數;重複的物業名稱會被拒絕。 | 僅進行正確性驗證 | 256 |
| 各節點類型的標籤 | 節點類型上沒有明確的最大標籤數;重複標籤則被拒絕。 | 僅進行正確性驗證 | 64 |
| 每邊類型的標籤 | 邊型上沒有明確的最大標籤數;重複標籤會被拒絕;邊加標籤則被拒絕。 | 僅進行正確性驗證 | 64 |
| 每個約束的關鍵屬性 | 節點或邊緣鍵限制中沒有明確的最大鍵數屬性;個別房產名稱不能是空的。 | 僅進行正確性驗證 | 16 |
執行時間值
| 執行時值類型 | 伴奏表示 / 音域 | 明確的價值等級上限? | Recommended |
|---|---|---|---|
| 布爾 | Bool;值為真/假 | 是的,固定領域 | |
| INT64 | 有符號的64位整數 | 是的,固定寬度 | |
| UINT64 | 無符號 64 位元整數 | 是的,固定寬度 | |
| 雙倍 | C++/protobuf double / Arrow DoubleScalar (IEEE-754 binary64);非有限值不會被 Value::FromProto |
沒有有限的檢查 | |
| DECIMAL128 | 箭頭 Decimal128Scalar;執行時驗證允許精確度為1.38,縮放精度為0..;最多可達38位小數。 |
是的,用於檢查過的建造/從原型開始 | |
| 字串 | % | 無價值上限 | 4 MB |
| BYTES |
std::string 用作位元組容器; ValueProto.bytes_value |
無價值上限 | 弦極限 |
| VERTEX_ID | uint64 被 VertexId;所產生的 ID 使用 48 位元的分片本地 ID,並將 0 保留為無效 |
原始原始接受任何 uint64;產生的 ID 是有限制的 | |
| EDGE_ID | uint64 被 EdgeId;所產生的 ID 使用 48 位元的分片本地 ID,並將 0 保留為無效 |
原始原始接受任何 uint64;產生的 ID 是有限制的 | |
| ZONED_DATE_TIME |
absl::Time 加時區;序列化為 int64 毫秒,自 Unix epoch 加上 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 毫秒至 9,223,372,036,854,775,807 毫秒(約 +/-292,277,024.6 年)。 ISO 解析器則更嚴格:+/-9,223,372,035 秒(約 +/-292.277 年)。 |
Proto 路徑接受完整的 int64 毫秒場;解析器的明確上限較窄 | |
| NULL / 類型化 null |
std::monostate 或類型化空包裝器 |
||
| 打型列表 |
std::vector<std::optional<T>>; LIST_NULL 儲存 a size_t; LIST_ANY 商店 std::vector<Value> |
沒有預設的價值上限 | |
| 巢狀清單 | 原始合約不支援一般巢狀清單;執行時有特殊的巢狀 LIST_INT64 處理 |
沒有預設的深度/長度配額 | |
| 路徑 | 向量中交替使用頂點/邊/頂點 uint64 ID;有效路徑形狀的元素計數為奇數 | 無路徑長度配額 | |
| 戰績 |
absl::flat_hash_map<std::string, Value> / Protobuf 地圖 |
沒有欄位數量、鍵長或巢狀深度配額 | |
| ANY |
Value::DataType() 不預期回傳 TYPE_ANY;動態值以具體值形式攜帶,特別是在 LIST_ANY Arrow 或 Arrow 中。任何擴充儲存 |
沒有尺寸或深度配額 |
其他限制
- 識別碼不能以底線開頭。
- 整數字面值預設被視為有符號整數。
- 不支援退回任何任何和紀錄類型。 暫時解決方案是透過
TO_JSON_STRINGJsonize 它們。 - 最大字串屬性長度為 65535。 超過 64 KiB 的資料無法被解序器存取;完整的緩衝區仍寫入 RocksDB。
- 屬性中
List<T>元素的最大數量為 65535。 一個包含 70,000 元素的 INT64 LIST 會被反序列化為 4,464 個元素。 - 最大查詢回應大小(位元組)為 64 MB。