หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้แสดงรายละเอียดโฟลเดอร์และโครงสร้างไฟล์สําหรับ Real-Time รายการแดชบอร์ดเมื่อมีการซิงค์กับที่เก็บ GitHub หรือ Azure Devops
โครงสร้างโฟลเดอร์
เมื่อพื้นที่ทํางานถูกซิงค์กับ repo คุณจะเห็นโฟลเดอร์ระดับบนสุดสําหรับพื้นที่ทํางานและโฟลเดอร์ย่อยสําหรับแต่ละรายการที่ถูกซิงค์ โฟลเดอร์ย่อยแต่ละโฟลเดอร์ถูกจัดรูปแบบด้วย ชื่อรายการชนิดหน่วยข้อมูล
ภายในโฟลเดอร์สําหรับแดชบอร์ด คุณจะเห็นไฟล์ต่อไปนี้:
- แพลตฟอร์ม: กําหนดค่าแพลตฟอร์มผ้า เช่น ชื่อที่แสดงและคําอธิบาย
- คุณสมบัติ: กําหนดค่าเฉพาะของรายการ
นี่คือตัวอย่างของโครงสร้างโฟลเดอร์:
Repo
- พื้นที่ทํางาน A
- Item_A.KQLDashboard
- แท่น
- RealTimeDashboard-1.json
- Item_A.KQLDashboard
- พื้นที่ทํางาน B
- Item_B.KQLDashboard
- แท่น
- RealTimeDashboard-2.json
- Item_B.KQLDashboard
Real-Time ไฟล์แดชบอร์ด
ไฟล์ต่อไปนี้มีอยู่ในโฟลเดอร์แดชบอร์ด:
แท่น
ไฟล์ใช้ schema ต่อไปนี้เพื่อกําหนดแดชบอร์ดแบบเรียลไทม์:
{ "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json", "metadata": { "type": "KQLDashboard", "displayName": "", "description": "" }, "config": { "version": "2.0", "logicalId": "" } }RealTimeDashboard.json
ไฟล์ใช้ schema ต่อไปนี้เพื่อกําหนดแดชบอร์ดแบบเรียลไทม์:
{ "$schema": "", "id": "", "eTag": "\"\"", "schema_version": "", "title": "", "tiles": [ { "id": "", "title": "", "visualType": "", "pageId": "", "layout": { "x": , "y": , "width": , "height": }, "queryRef": { "kind": "", "queryId": "" }, "visualOptions": { "multipleYAxes": { "base": { "id": "", "label": "", "columns": [], "yAxisMaximumValue": , "yAxisMinimumValue": , "yAxisScale": "", "horizontalLines": [] }, "additional": [], "showMultiplePanels": }, "hideLegend": , "legendLocation": "", "xColumnTitle": "", "xColumn": , "yColumns": , "seriesColumns": , "xAxisScale": "", "verticalLine": "", "crossFilterDisabled": , "drillthroughDisabled": , "crossFilter": [ { "interaction": "", "property": "", "parameterId": "", "disabled": } ], "drillthrough": [], "selectedDataOnLoad": { "all": , "limit": }, "dataPointsTooltip": { "all": , "limit": } } } ], "baseQueries": [], "parameters": [ { "kind": "", "id": "", "displayName": "", "description": "", "variableName": "", "selectionType": "", "includeAllOption": , "defaultValue": { "kind": "" }, "dataSource": { "kind": "", "columns": { "value": "" }, "queryRef": { "kind": "", "queryId": "" } }, "showOnPages": { "kind": "" }, "allIsNull": }, ], "dataSources": [ { "id": "", "name": "", "clusterUri": "", "database": "", "kind": "", "scopeId": "" } ], "pages": [ { "name": "", "id": "" } ], "queries": [ { "dataSource": { "kind": "", "dataSourceId": "" }, "text": "", "id": "", "usedVariables": [ "", "" ] } ] }
การตรวจสอบความถูกต้องของแดชบอร์ด Real-Time
ตําแหน่งข้อมูลการโหลดแดชบอร์ด Real-Time จะตรวจสอบความถูกต้องของ JSON นอกเหนือจากความสอดคล้องของสคีมามาตรฐาน การละเมิดจะปรากฏต่อผู้ใช้ใน UI ของแดชบอร์ดเป็นข้อความแสดงข้อผิดพลาด เช่น Error loading dashboard / Error found at: /<section> / Message: <reason>
เอกลักษณ์ของการอ้างอิงคิวรี
ทุกรายการ queryId ในแดชบอร์ดต้องอ้างอิง เพียงครั้งเดียว โดยนับตาม:
tiles[].queryRef.queryIdbaseQueries[].queryIdparameters[].dataSource.queryRef.queryId
ถ้า a queryId ถูกแชร์ระหว่างไทล์สองไทล์ หรือระหว่างไทล์และ baseQuery การตรวจสอบความถูกต้องจะล้มเหลวด้วย: /queries: Some query IDs are used in multiple query references (tiles, base queries, parameters)
เมื่อทําสําเนาไทล์ไปยังหน้าใหม่โดยทางโปรแกรม ให้ทําซ้ําแบบสอบถามด้วย (กําหนด queryIdให้เหมือนเดิม text และ dataSource) และชี้ไทล์ queryRef.queryId ใหม่ไปที่แบบสอบถามใหม่
เอกลักษณ์และรูปแบบของ ID
ทุกใน id , , , tiles[]queries[], , baseQueries[]และparameters[]ต้องเป็น: dataSources[]pages[]
- ไม่ซ้ํากัน ในหมวดหมู่
-
RFC 4122 UUID ที่ถูกต้อง (ตัวอย่างเช่น
3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a) สตริงที่อ่านได้ซึ่งมีขีดกลาง (เช่นmy-tile-0001-0000-0000-000000000001) จะถูกปฏิเสธในเวลาโหลดด้วย:Needs to follow the UUID format as defined by RFC 4122.
สําหรับการแก้ไขแบบเป็นโปรแกรม ให้สร้างรหัสด้วยไลบรารี UUID: uuid.uuid4() สําหรับรหัสใหม่ หรือ uuid.uuid5(namespace, label) สําหรับรหัสที่กําหนดที่รอดจากการเรียกใช้สคริปต์ซ้ํา
Tip
หากคุณเห็นข้อผิดพลาดในการโหลดเช่น /tiles/N/queryRef ... must have required property 'baseQueryId'ความผิดพลาดที่แท้จริงมักจะเป็น queryRef.queryIdความผิดปกติ ไม่ใช่ baseQueryIdหายไป สคีมา queryRef คือ ระหว่าง oneOf{ kind: "query", queryId: <uuid> } และ { kind: "baseQuery", baseQueryId: <uuid> }. เมื่อ UUID ภายในไม่ถูกต้อง ผู้ตรวจสอบความถูกต้องจะล้มเหลวใน queryสาขา -kind และรายงานความล้มเหลวจาก baseQueryสาขา -kind แทน แก้ไข UUID และน้ําตกจะล้าง
การรักษาข้อมูลประจําตัวในการแก้ไข
เมื่อต้องการรักษาการเชื่อมโยงระหว่างไฟล์และรายการพื้นที่ทํางานแบบสด อย่าปรับเปลี่ยนสิ่งต่อไปนี้ในรายการ ที่มีอยู่ :
- ระดับบนสุด:
id, ,eTagschema_version - ต่อไทล์:
id, ,pageIdqueryRef.queryId - ต่อคําค้นหา:
id,dataSource.dataSourceId - ต่อ dataSource:
id,scopeId - ต่อหน้า:
id - ต่อพารามิเตอร์:
id,variableName(และbeginVariableName/endVariableNameสําหรับkind: "duration") -
.platform:config.logicalId
การแก้ไขตัวระบุเหล่านี้จะทําให้การเปลี่ยนแปลงถือเป็นการลบและการสร้างใหม่ในครั้งถัดไป Update from Gitซึ่งจะทําให้บริบทสูญหาย: การอ้างอิงรายการที่ปักหมุด เป้าหมายการแชร์ และสถานะใดๆ ที่แนบมากับต้นฉบับid
พารามิเตอร์
เมื่อไทล์ที่ใช้พารามิเตอร์ (อ้างอิงผ่าน ) ของคิว usedVariablesรีถูกเพิ่มลงในหน้าใหม่ พารามิเตอร์นั้นจะไม่ปรากฏบนหน้าใหม่โดยอัตโนมัติ
ถ้าพารามิเตอร์เป็น showOnPages.kind"selection"คุณต้องผนวกหน้าidใหม่เข้ากับshowOnPages.pageIds
ถ้าพารามิเตอร์มี ใช้ได้ defaultValueไทล์จะแสดงผลด้วยค่าเริ่มต้น
พารามิเตอร์หลายตัวแปร เช่น kind: "duration" พารามิเตอร์แสดงตัวแปรสองตัวผ่าน beginVariableName และ endVariableName (โดยทั่วไป _startTime และ _endTime) พวกเขาใช้วัตถุพารามิเตอร์เดียวร่วมกันด้วยการตั้งค่าเดียวshowOnPages
ตัวอย่างการแก้ไขผ่าน Git
การใช้ Schema และบันทึกการตรวจสอบความถูกต้องช่วยให้คุณสามารถทําการเปลี่ยนแปลงแดชบอร์ด Real-Time ผ่าน Git แทนที่จะผ่านอินเทอร์เฟซผู้ใช้
ตัวอย่าง: คัดลอกไทล์ไปยังหน้าใหม่
เมื่อต้องการคัดลอกไทล์จากหน้า A ไปยังหน้า B ที่เพิ่มใหม่โดยการแก้ไข RealTimeDashboard-N.json:
- เพิ่มหน้า B ด้วย
pages[].id - คัดลอกไทล์ต้นฉบับแบบลึกใน
tiles[]. มอบหมาย:- ไทล์
idใหม่ (GUID ใหม่) -
pageId= ID ของหน้า B
- ไทล์
- ค้นหาคิวรีต้นฉบับตาม
queries[]ไทqueryRef.queryIdล์ต้นฉบับ - คัดลอกแบบสอบถามแบบเจาะลึกด้วย
queries[]ไฟล์id. ใหม่ - อัปเดตไทล์
queryRef.queryIdที่โคลนเป็นคิวidรีใหม่ - สําหรับแต่ละพารามิเตอร์ที่อ้างอิงในคิวรี
usedVariables[]ที่โคลน : ifshowOnPages.kind == "selection"ให้ผนวกรหัสของหน้า B เข้ากับshowOnPages.pageIds - ตรวจสอบว่าไม่
queryIdปรากฏมากกว่าหนึ่งครั้งในtiles[],baseQueries[], และparameters[].dataSource.queryRef. - คอมมิต พุช และเรียกใช้ Update จาก Git บนพื้นที่ทํางาน
เนื้อหาที่เกี่ยวข้อง
- การจัดการวงจรชีวิตใน Microsoft Fabric คืออะไร
- บทช่วยสอน: การจัดการวงจรชีวิตใน Fabric
- บทนําสู่ การรวม Git
- บทนําเกี่ยวกับ ไปป์ไลน์การปรับใช้