Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de map- en bestandsstructuur voor Real-Time dashboarditems beschreven zodra ze zijn gesynchroniseerd met een GitHub- of Azure Devops-opslagplaats.
Mapstructuur
Zodra een werkruimte is gesynchroniseerd met een opslagplaats, ziet u een map op het hoogste niveau voor de werkruimte en een submap voor elk item dat is gesynchroniseerd. Elke submap is opgemaakt met itemnaam. Itemtype
In de map voor het dashboard ziet u de volgende bestanden:
- Platform: Definieert platformwaarden voor infrastructuur, zoals weergavenaam en beschrijving.
- Eigenschappen: Hiermee definieert u itemspecifieke waarden.
Hier volgt een voorbeeld van de mapstructuur:
Repository
- Werkruimte A
- Item_A.KQLDashboard
- .platform
- RealTimeDashboard-1.json
- Item_A.KQLDashboard
- Werkruimte B
- Item_B.KQLDashboard
- .platform
- RealTimeDashboard-2.json
- Item_B.KQLDashboard
Real-Time dashboardbestanden
De volgende bestanden bevinden zich in een dashboardmap:
.platform
Het bestand maakt gebruik van het volgende schema om een realtime dashboard te definiëren:
{ "$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
Het bestand maakt gebruik van het volgende schema om een realtime dashboard te definiëren:
{ "$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": [ "", "" ] } ] }
Realtime dashboard validatie
Het Real-Time eindpunt voor het laden van dashboards valideert de JSON buiten de standaardschemaconformance. Schendingen verschijnen voor gebruikers in de dashboardinterface als foutberichten zoals: Error loading dashboard / Error found at: /<section> / Message: <reason>.
Uniciteit van queryreferenties
Elk queryId in het dashboard moet precies één keer worden verwezen, geteld over:
tiles[].queryRef.queryIdbaseQueries[].queryIdparameters[].dataSource.queryRef.queryId
Als een queryId wordt gedeeld tussen twee tegels of tussen een tegel en een baseQuery, mislukt de validatie met: /queries: Some query IDs are used in multiple query references (tiles, base queries, parameters)
Wanneer u een tegel programmatisch naar een nieuwe pagina dupliceert, dupliceert u ook de query (wijs een nieuwe queryIdtoe, behoudt u hetzelfde text en dataSource) en wijst u de nieuwe tegel queryRef.queryId aan bij de nieuwe query.
Id-uniekheid en -indeling
Elke id in tiles[], queries[], baseQueries[], , , parameters[], , , dataSources[]en pages[] moet zijn:
- Uniek binnen de categorie.
-
Een geldige RFC 4122 UUID (bijvoorbeeld
3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a). Leesbare tekenreeksen met streepjes (bijvoorbeeldmy-tile-0001-0000-0000-000000000001) worden geweigerd tijdens de laadtijd met:Needs to follow the UUID format as defined by RFC 4122.
Genereer voor programmatische bewerkingen ids met een UUID-bibliotheek: uuid.uuid4() voor nieuwe ids of uuid.uuid5(namespace, label) voor deterministische ids die het script meerdere keren kunnen doorstaan.
Tip
Als u een laadfout ziet zoals /tiles/N/queryRef ... must have required property 'baseQueryId', is de werkelijke fout meestal een onjuist queryRef.queryIdformaat en niet een ontbrekende baseQueryId. Het schema's queryRef is een oneOf tussen { kind: "query", queryId: <uuid> } en { kind: "baseQuery", baseQueryId: <uuid> }. Wanneer de binnenste UUID ongeldig is, mislukt de validator de query-vertakking van het type en rapporteert het falen van de baseQuery-vertakking van het type. Corrigeer de UUID en het cascade-leegmaken.
Behoud van identiteit bij bewerkingen
Als u de koppeling tussen het bestand en het livewerkruimte-item wilt behouden, wijzigt u het volgende niet voor bestaande vermeldingen:
- Hoogste niveau:
id,eTagschema_version - Per tegel:
id,pageIdqueryRef.queryId - Per query:
id,dataSource.dataSourceId - Per gegevensbron:
id,scopeId - Per pagina:
id - Per parameter:
id,variableName(enbeginVariableName/endVariableNamevoorkind: "duration") -
.platform:config.logicalId
Als u deze id's wijzigt, wordt de wijziging behandeld als een verwijdering en wordt de volgende Update from Gitwijziging opnieuw gemaakt, waardoor de context verloren gaat: verwijzingen naar vastgemaakte items, doelen delen en een status die is gekoppeld aan het oorspronkelijke iditem.
Parameters
Wanneer een tegel die gebruikmaakt van een parameter (waarnaar wordt verwezen via de query's usedVariables) wordt toegevoegd aan een nieuwe pagina, wordt die parameter niet automatisch weergegeven op de nieuwe pagina.
Als de parameter showOnPages.kind is "selection", moet u de nieuwe pagina id toevoegen aan showOnPages.pageIds.
Als de parameter een bruikbaar defaultValuebestand heeft, wordt de tegel weergegeven met de standaardwaarde.
Parameters met meerdere variabelen, zoals kind: "duration" parameters, maken twee variabelen beschikbaar via beginVariableName en endVariableName (meestal _startTime en _endTime). Ze delen één parameterobject met één showOnPages instelling.
Voorbeeldbewerkingen via Git
Met behulp van het schema en de validatienotities kunt u wijzigingen aanbrengen in het Real-Time dashboard via Git in plaats van via de gebruikersinterface.
Voorbeeld: Een tegel naar een nieuwe pagina kopiëren
Als u een tegel van pagina A naar een zojuist toegevoegde pagina B wilt kopiëren door het volgende te bewerken RealTimeDashboard-N.json:
- Pagina B toevoegen aan
pages[]met een nieuweid. - Kopieer de brontegel in
tiles[]deep-copy. Toewijzen:- nieuwe tegel
id(nieuwe GUID) -
pageId= id van pagina B
- nieuwe tegel
- Zoek de bronquery in
queries[]via de brontegelqueryRef.queryId. - Maak een diepe kopie van de query in
queries[]met een nieuweid. - Werk de gekloonde tegel
queryRef.queryIdbij naar de nieuwe queryid. - Voor elke parameter waarnaar wordt verwezen in de gekloonde query's
usedVariables[]: ifshowOnPages.kind == "selection", toevoeg pagina B's id aanshowOnPages.pageIds. - Controleer of
queryIdniet meer dan één keer voorkomt intiles[],baseQueries[]enparameters[].dataSource.queryRef. - Committen, pushen en Update van Git uitvoeren in de werkruimte.