Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
I denne artikel beskrives mappe- og filstrukturen for Real-Time dashboardelementer, når de er synkroniseret til et GitHub- eller Azure Devops-lager.
Mappestruktur
Når et arbejdsområde er synkroniseret til et lager, kan du se en mappe på øverste niveau for arbejdsområdet og en undermappe for hvert element, der blev synkroniseret. Hver undermappe er formateret med Elementnavn. Elementtype
I mappen til dashboardet kan du se følgende filer:
- Platform: Definerer værdier for stofplatforme, f.eks. vist navn og beskrivelse.
- Egenskaber: Definerer elementspecifikke værdier.
Her er et eksempel på mappestrukturen:
Repo
- Arbejdsområde A
- Item_A.KQLDashboard
- .perron
- RealTimeDashboard-1.json
- Item_A.KQLDashboard
- Arbejdsområde B
- Item_B.KQLDashboard
- .perron
- RealTimeDashboard-2.json
- Item_B.KQLDashboard
Real-Time dashboardfiler
Følgende filer findes i en dashboardmappe:
.perron
Filen bruger følgende skema til at definere et dashboard i realtid:
{ "$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
Filen bruger følgende skema til at definere et dashboard i realtid:
{ "$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 dashboardvalidering
Real-Time Dashboards load-endpoint validerer JSON'en ud over standard skema-overensstemmelse. Overtrædelser dukker op for brugerne i dashboardets brugerflade som fejlmeddelelser som: Error loading dashboard / Error found at: /<section> / Message: <reason>.
Forespørgselsreferencens entydighed
Hver i queryId dashboardet skal refereres præcis én gang, tælles over:
tiles[].queryRef.queryIdbaseQueries[].queryIdparameters[].dataSource.queryRef.queryId
Hvis a queryId deles mellem to fliser, eller mellem en flise og en baseQuery, fejler valideringen med: /queries: Some query IDs are used in multiple query references (tiles, base queries, parameters).
Når du duplikerer en flise til en ny side programmatisk, dupliker også forespørgslen (tildel en ny, queryIdbehold den samme text og dataSource) og peg de nye fliser queryRef.queryId mod den nye forespørgsel.
ID's unikke karakter og format
Alle i , , , , id, tiles[], og queries[] skal være: baseQueries[]parameters[]dataSources[]pages[]
- Unik inden for sin kategori.
-
En gyldig RFC 4122 UUID (for eksempel,
3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a). Læsbare strenge, der tilfældigvis har streger (for eksempelmy-tile-0001-0000-0000-000000000001), afvises ved indlæsning med:Needs to follow the UUID format as defined by RFC 4122.
For programmatiske redigeringer genereres ID'er med et UUID-bibliotek: uuid.uuid4() for friske ID'er eller uuid.uuid5(namespace, label) for deterministiske ID'er, der overlever script-genkørsler.
Tip
Hvis du ser en belastningsfejl som /tiles/N/queryRef ... must have required property 'baseQueryId', er den faktiske fejl som regel en fejldannet queryRef.queryIdfejl, ikke en manglende baseQueryIdfejl. Skemaet queryRef er et oneOf mellem { kind: "query", queryId: <uuid> } og { kind: "baseQuery", baseQueryId: <uuid> }. Når den indre UUID er ugyldig, fejler validatoren i -kind-grenen queryog rapporterer fejl fra -kind-grenen baseQueryi stedet. Fikser man UUIDEN, forsvinder kaskaden.
Bevarelse af identitet på tværs af redigeringer
For at bevare forbindelsen mellem filen og det levende arbejdsområde, må du ikke ændre følgende på eksisterende poster:
- Topniveau:
id,eTag,schema_version - Pr. flise:
id,pageId,queryRef.queryId - Pr. forespørgsel:
id,dataSource.dataSourceId - Ifølge dataKilde:
id,scopeId - Pr. side:
id - Per parameter:
id,variableName(ogbeginVariableName/endVariableNameforkind: "duration") -
.platform:config.logicalId
Ændring af disse identifikatorer vil medføre, at ændringen behandles som en sletning og en genoprettelse på den næste Update from Git, hvilket vil medføre tabt kontekst: fastgjorte elementer-referencer, delingsmål og enhver tilstand knyttet til den oprindelige id.
Parametre
Når en flise, der bruger en parameter (refereret via forespørgslens usedVariables) tilføjes til en ny side, vises den parameter ikke automatisk på den nye side.
Hvis parameteren showOnPages.kind er "selection", skal du tilføje de nye sider id til showOnPages.pageIds.
Hvis parameteren har en brugbar defaultValue, så gengives flisen med standarden.
Parametre med flere variable som kind: "duration" parametre eksponerer to variable via beginVariableName og endVariableName (ofte _startTime og _endTime). De deler et enkelt parameterobjekt med én showOnPages indstilling.
Eksempelredigeringer via Git
Ved at bruge skema- og valideringsnoterne kan du foretage ændringer i Real-Time-dashboardet via Git i stedet for via brugergrænsefladen.
Eksempel: Kopier en flise til en ny side
For at kopiere en flise fra side A til en nytilføjet side B ved at redigere RealTimeDashboard-N.json:
- Tilføj side B til med
pages[]en nyid. - Deep-kopier kildeflisen i
tiles[]. Tildel:- ny flise
id(frisk GUID) -
pageId= side B's ID
- ny flise
- Find kildeforespørgslen
queries[]iqueryRef.queryIdved kildefeltets . - Deep-copy forespørgslen ind i
queries[]med en nyid. - Opdater de klonede felter
queryRef.queryIdtil de nye forespørgslerid. - For hver parameter, der refereres i den klonede forespørgsels:
usedVariables[]hvisshowOnPages.kind == "selection", tilføj side B's ID tilshowOnPages.pageIds. - Valider at no
queryIdoptræder mere end én gang på tværs aftiles[],baseQueries[], ogparameters[].dataSource.queryRef. - Committ, push og kør Update fra Git på workspace.