Inzicht in toewijzing van gegevensweergaven in Power BI-visuals
In dit artikel worden de toewijzing van gegevensweergaven besproken en wordt beschreven hoe gegevensrollen worden gebruikt om verschillende typen visuals te maken. Hierin wordt uitgelegd hoe u voorwaardelijke vereisten voor gegevensrollen en de verschillende dataMappings
typen opgeeft.
Elke geldige toewijzing produceert een gegevensweergave. U kunt onder bepaalde voorwaarden meerdere gegevenstoewijzingen opgeven. De ondersteunde toewijzingsopties zijn:
"dataViewMappings": [
{
"conditions": [ ... ],
"categorical": { ... },
"single": { ... },
"table": { ... },
"matrix": { ... }
}
]
Power BI maakt alleen een toewijzing aan een gegevensweergave als de geldige toewijzing ook is gedefinieerd in dataViewMappings
.
Met andere woorden, categorical
kan worden gedefinieerd in dataViewMappings
, maar andere toewijzingen, zoals table
of single
, zijn mogelijk niet. In dat geval produceert Power BI een gegevensweergave met één categorical
toewijzing, terwijl table
andere toewijzingen niet gedefinieerd blijven. Voorbeeld:
"dataViewMappings": [
{
"categorical": {
"categories": [ ... ],
"values": [ ... ]
},
"metadata": { ... }
}
]
Voorwaarden
In conditions
de sectie worden regels voor een bepaalde gegevenstoewijzing vastgelegd. Als de gegevens overeenkomen met een van de beschreven sets voorwaarden, accepteert de visual de gegevens als geldig.
Voor elk veld kunt u een minimum- en maximumwaarde opgeven. De waarde vertegenwoordigt het aantal velden dat aan die gegevensrol kan worden gebonden.
Notitie
Als een gegevensrol wordt weggelaten in de voorwaarde, kan deze een willekeurig aantal velden bevatten.
In het volgende voorbeeld is het category
beperkt tot één gegevensveld en is het measure
beperkt tot twee gegevensvelden.
"conditions": [
{ "category": { "max": 1 }, "measure": { "max": 2 } },
]
U kunt ook meerdere voorwaarden instellen voor een gegevensrol. In dat geval zijn de gegevens geldig als aan een van de voorwaarden wordt voldaan.
"conditions": [
{ "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
{ "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]
In het vorige voorbeeld is een van de volgende twee voorwaarden vereist:
- Precies één categorieveld en precies twee metingen
- Precies twee categorieën en precies één meting
Toewijzing van één gegevens
Enkele gegevenstoewijzing is de eenvoudigste vorm van gegevenstoewijzing. Het accepteert één metingveld en retourneert het totaal. Als het veld numeriek is, wordt de som geretourneerd. Anders wordt een telling van unieke waarden geretourneerd.
Als u enkele gegevenstoewijzing wilt gebruiken, definieert u de naam van de gegevensrol die u wilt toewijzen. Deze toewijzing werkt alleen met één metingveld. Als er een tweede veld wordt toegewezen, wordt er geen gegevensweergave gegenereerd. Het is dus raadzaam om een voorwaarde op te nemen waarmee de gegevens worden beperkt tot één veld.
Notitie
Deze gegevenstoewijzing kan niet worden gebruikt in combinatie met andere gegevenstoewijzingen. Het is bedoeld om gegevens te verminderen tot één numerieke waarde.
Voorbeeld:
{
"dataRoles": [
{
"displayName": "Y",
"name": "Y",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"conditions": [
{
"Y": {
"max": 1
}
}
],
"single": {
"role": "Y"
}
}
]
}
De resulterende gegevensweergave kan nog steeds andere typen toewijzingen bevatten, zoals tabel of categorisch, maar elke toewijzing bevat alleen de ene waarde. De aanbevolen procedure is om alleen toegang te krijgen tot de waarde in één toewijzing.
{
"dataView": [
{
"metadata": null,
"categorical": null,
"matrix": null,
"table": null,
"tree": null,
"single": {
"value": 94163140.3560001
}
}
]
}
Het volgende codevoorbeeld verwerkt eenvoudige toewijzing van gegevensweergaven:
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewSingle = powerbi.DataViewSingle;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private valueText: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.valueText = document.createElement("p");
this.target.appendChild(this.valueText);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const singleDataView: DataViewSingle = dataView.single;
if (!singleDataView ||
!singleDataView.value ) {
return
}
this.valueText.innerText = singleDataView.value.toString();
}
}
Het vorige codevoorbeeld resulteert in de weergave van één waarde uit Power BI:
Categorische gegevenstoewijzing
Categorische gegevenstoewijzing wordt gebruikt om onafhankelijke groeperingen of categorieën gegevens op te halen. De categorieën kunnen ook worden gegroepeerd met behulp van 'groeperen op' in de gegevenstoewijzing.
Basiscategorische gegevenstoewijzing
Houd rekening met de volgende gegevensrollen en -toewijzingen:
"dataRoles":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
}
],
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" }
},
"values": {
"select": [
{ "bind": { "to": "measure" } }
]
}
}
}
In het vorige voorbeeld wordt 'Mijn category
gegevensrol toewijzen, zodat voor elk veld waarnaar ik sleep category
, de bijbehorende gegevens zijn toegewezen aan categorical.categories
. Wijs ook mijn measure
gegevensrol toe aan categorical.values
.".
- voor... in: Bevat alle items in deze gegevensrol in de gegevensquery.
- binden... to: Produceert hetzelfde resultaat als voor... in maar verwacht dat de gegevensrol een voorwaarde heeft die deze beperkt tot één veld.
Categorische gegevens groeperen
In het volgende voorbeeld worden dezelfde twee gegevensrollen gebruikt als in het vorige voorbeeld en worden er nog twee gegevensrollen toegevoegd met de naam grouping
en measure2
.
"dataRoles":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Grouping with",
"name": "grouping",
"kind": "Grouping"
},
{
"displayName": "X Axis",
"name": "measure2",
"kind": "Grouping"
}
],
"dataViewMappings": [
{
"categorical": {
"categories": {
"for": {
"in": "category"
}
},
"values": {
"group": {
"by": "grouping",
"select": [{
"bind": {
"to": "measure"
}
},
{
"bind": {
"to": "measure2"
}
}
]
}
}
}
}
]
Het verschil tussen deze toewijzing en de basistoewijzing is hoe categorical.values
wordt toegewezen. Wanneer u de measure
gegevensrollen measure2
toe wijst aan de gegevensrol grouping
, kunnen de x-as en y-as op de juiste manier worden geschaald.
Hiërarchische gegevens groeperen
In het volgende voorbeeld worden de categorische gegevens gebruikt om een hiërarchie te maken, die kan worden gebruikt om inzoomacties te ondersteunen.
In het volgende voorbeeld ziet u de gegevensrollen en toewijzingen:
"dataRoles": [
{
"displayName": "Categories",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Measures",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Series",
"name": "series",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"categorical": {
"categories": {
"for": {
"in": "category"
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
]
}
}
}
}
]
Houd rekening met de volgende categorische gegevens:
Land/regio | 2013 | 2014 | 2015 | 2016 |
---|---|---|---|---|
USA | x | x | 650 | 350 |
Canada | x | 630 | 490 | x |
Mexico | 645 | x | x | x |
VK | x | x | 831 | x |
Power BI produceert een categorische gegevensweergave met de volgende set categorieën.
{
"categorical": {
"categories": [
{
"source": {...},
"values": [
"Canada",
"USA",
"UK",
"Mexico"
],
"identity": [...],
"identityFields": [...],
}
]
}
}
Elke category
kaart wordt toegewezen aan een set values
. Elk van deze values
wordt gegroepeerd op series
, uitgedrukt als jaren.
Elke matrix vertegenwoordigt bijvoorbeeld values
één jaar.
values
Elke matrix heeft ook vier waarden: Canada, USA, UK en Mexico.
{
"values": [
// Values for year 2013
{
"source": {...},
"values": [
null, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
645 // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2014
{
"source": {...},
"values": [
630, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2015
{
"source": {...},
"values": [
490, // Value for `Canada` category
650, // Value for `USA` category
831, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2016
{
"source": {...},
"values": [
null, // Value for `Canada` category
350, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
}
]
}
Het volgende codevoorbeeld is voor het verwerken van categorische toewijzing van gegevensweergaven. In dit voorbeeld wordt de hiërarchische structuur Land/Regio > jaarwaarde >gemaakt.
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewCategorical = powerbi.DataViewCategorical;
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private categories: HTMLElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.categories = document.createElement("pre");
this.target.appendChild(this.categories);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const categoricalDataView: DataViewCategorical = dataView.categorical;
if (!categoricalDataView ||
!categoricalDataView.categories ||
!categoricalDataView.categories[0] ||
!categoricalDataView.values) {
return;
}
// Categories have only one column in data buckets
// To support several columns of categories data bucket, iterate categoricalDataView.categories array.
const categoryFieldIndex = 0;
// Measure has only one column in data buckets.
// To support several columns on data bucket, iterate years.values array in map function
const measureFieldIndex = 0;
let categories: PrimitiveValue[] = categoricalDataView.categories[categoryFieldIndex].values;
let values: DataViewValueColumnGroup[] = categoricalDataView.values.grouped();
let data = {};
// iterate categories/countries-regions
categories.map((category: PrimitiveValue, categoryIndex: number) => {
data[category.toString()] = {};
// iterate series/years
values.map((years: DataViewValueColumnGroup) => {
if (!data[category.toString()][years.name] && years.values[measureFieldIndex].values[categoryIndex]) {
data[category.toString()][years.name] = []
}
if (years.values[0].values[categoryIndex]) {
data[category.toString()][years.name].push(years.values[measureFieldIndex].values[categoryIndex]);
}
});
});
this.categories.innerText = JSON.stringify(data, null, 6);
console.log(data);
}
}
Dit is de resulterende visual:
Toewijzingstabellen
De tabelgegevensweergave is in feite een lijst met gegevenspunten waarin numerieke gegevenspunten kunnen worden samengevoegd.
Gebruik bijvoorbeeld dezelfde gegevens in de vorige sectie, maar met de volgende mogelijkheden:
"dataRoles": [
{
"displayName": "Column",
"name": "column",
"kind": "Grouping"
},
{
"displayName": "Value",
"name": "value",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"table": {
"rows": {
"select": [
{
"for": {
"in": "column"
}
},
{
"for": {
"in": "value"
}
}
]
}
}
}
]
Visualiseer de tabelgegevensweergave zoals in dit voorbeeld:
Land/regio | Year | Verkoop |
---|---|---|
USA | 2016 | 100 |
USA | 2015 | 50 |
Canada | 2015 | 200 |
Canada | 2015 | 50 |
Mexico | 2013 | 300 |
VK | 2014 | 150 |
USA | 2015 | 75 |
Gegevensbinding:
Power BI geeft uw gegevens weer als de tabelgegevensweergave. Neem niet aan dat de gegevens zijn geordend.
{
"table" : {
"columns": [...],
"rows": [
[
"Canada",
2014,
630
],
[
"Canada",
2015,
490
],
[
"Mexico",
2013,
645
],
[
"UK",
2014,
831
],
[
"USA",
2015,
650
],
[
"USA",
2016,
350
]
]
}
}
Als u de gegevens wilt aggregeren, selecteert u het gewenste veld en kiest u Som.
Codevoorbeeld voor het verwerken van toewijzing van tabelgegevensweergaven.
"use strict";
import "./../style/visual.less";
import powerbi from "powerbi-visuals-api";
// ...
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import DataViewTable = powerbi.DataViewTable;
import DataViewTableRow = powerbi.DataViewTableRow;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private table: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.table = document.createElement("table");
this.target.appendChild(this.table);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const tableDataView: DataViewTable = dataView.table;
if (!tableDataView) {
return
}
while(this.table.firstChild) {
this.table.removeChild(this.table.firstChild);
}
//draw header
const tableHeader = document.createElement("th");
tableDataView.columns.forEach((column: DataViewMetadataColumn) => {
const tableHeaderColumn = document.createElement("td");
tableHeaderColumn.innerText = column.displayName
tableHeader.appendChild(tableHeaderColumn);
});
this.table.appendChild(tableHeader);
//draw rows
tableDataView.rows.forEach((row: DataViewTableRow) => {
const tableRow = document.createElement("tr");
row.forEach((columnValue: PrimitiveValue) => {
const cell = document.createElement("td");
cell.innerText = columnValue.toString();
tableRow.appendChild(cell);
})
this.table.appendChild(tableRow);
});
}
}
Het bestand style/visual.less
met visuele stijlen bevat de indeling voor de tabel:
table {
display: flex;
flex-direction: column;
}
tr, th {
display: flex;
flex: 1;
}
td {
flex: 1;
border: 1px solid black;
}
De resulterende visual ziet er als volgt uit:
Matrixgegevenstoewijzing
Matrixgegevenstoewijzing is vergelijkbaar met tabelgegevenstoewijzing, maar de rijen worden hiërarchisch weergegeven. Een van de gegevensrolwaarden kan worden gebruikt als kolomkopwaarde.
{
"dataRoles": [
{
"name": "Category",
"displayName": "Category",
"displayNameKey": "Visual_Category",
"kind": "Grouping"
},
{
"name": "Column",
"displayName": "Column",
"displayNameKey": "Visual_Column",
"kind": "Grouping"
},
{
"name": "Measure",
"displayName": "Measure",
"displayNameKey": "Visual_Values",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"matrix": {
"rows": {
"for": {
"in": "Category"
}
},
"columns": {
"for": {
"in": "Column"
}
},
"values": {
"select": [
{
"for": {
"in": "Measure"
}
}
]
}
}
}
]
}
Hiërarchische structuur van matrixgegevens
Power BI maakt een hiërarchische gegevensstructuur. De hoofdmap van de structuurhiërarchie bevat de gegevens uit de kolom Ouders van de Category
gegevensrol met onderliggende elementen uit de kolom Onderliggende van de gegevensroltabel.
Semantisch model:
Bovenliggende waarden | Kinderen | Kleinkinderen | Kolommen | Waarden |
---|---|---|---|---|
Bovenliggend1 | Onderliggend item1 | Klein kind1 | Col1 | 5 |
Bovenliggend1 | Onderliggend item1 | Klein kind1 | Col2 | 6 |
Bovenliggend1 | Onderliggend item1 | Klein kind2 | Col1 | 7 |
Bovenliggend1 | Onderliggend item1 | Klein kind2 | Col2 | 8 |
Bovenliggend1 | Onderliggend item2 | Klein kind3 | Col1 | 5 |
Bovenliggend1 | Onderliggend item2 | Klein kind3 | Col2 | 3 |
Bovenliggend1 | Onderliggend item2 | Klein kind4 | Col1 | 4 |
Bovenliggend1 | Onderliggend item2 | Klein kind4 | Col2 | 9 |
Bovenliggend1 | Onderliggend item2 | Klein kind5 | Col1 | 3 |
Bovenliggend1 | Onderliggend item2 | Klein kind5 | Col2 | 5 |
Bovenliggend item2 | Onderliggend item3 | Klein kind6 | Col1 | 1 |
Bovenliggend item2 | Onderliggend item3 | Klein kind6 | Col2 | 2 |
Bovenliggend item2 | Onderliggend item3 | Klein kind7 | Col1 | 7 |
Bovenliggend item2 | Onderliggend item3 | Klein kind7 | Col2 | 1 |
Bovenliggend item2 | Onderliggend item3 | Klein kind8 | Col1 | 10 |
Bovenliggend item2 | Onderliggend item3 | Klein kind8 | Col2 | 13 |
De kernmatrixvisual van Power BI geeft de gegevens weer als een tabel.
De gegevensstructuur van de visual wordt opgehaald zoals beschreven in de volgende code (alleen de eerste twee tabelrijen worden hier weergegeven):
{
"metadata": {...},
"matrix": {
"rows": {
"levels": [...],
"root": {
"childIdentityFields": [...],
"children": [
{
"level": 0,
"levelValues": [...],
"value": "Parent1",
"identity": {...},
"childIdentityFields": [...],
"children": [
{
"level": 1,
"levelValues": [...],
"value": "Child1",
"identity": {...},
"childIdentityFields": [...],
"children": [
{
"level": 2,
"levelValues": [...],
"value": "Grand child1",
"identity": {...},
"values": {
"0": {
"value": 5 // value for Col1
},
"1": {
"value": 6 // value for Col2
}
}
},
...
]
},
...
]
},
...
]
}
},
"columns": {
"levels": [...],
"root": {
"childIdentityFields": [...],
"children": [
{
"level": 0,
"levelValues": [...],
"value": "Col1",
"identity": {...}
},
{
"level": 0,
"levelValues": [...],
"value": "Col2",
"identity": {...}
},
...
]
}
},
"valueSources": [...]
}
}
Rijkoppen uitvouwen en samenvouwen
Voor API 4.1.0 of hoger ondersteunen matrixgegevens het uitbreiden en samenvouwen van rijkoppen. Vanuit API 4.2 kunt u programmatisch het hele niveau uitvouwen/samenvouwen. De functie uitvouwen en samenvouwen optimaliseert het ophalen van gegevens naar dataView door de gebruiker in staat te stellen een rij uit te vouwen of samen te vouwen zonder alle gegevens voor het volgende niveau op te halen. De gegevens voor de geselecteerde rij worden alleen opgehaald. De uitbreidingsstatus van de rijkop blijft consistent voor bladwijzers en zelfs voor opgeslagen rapporten. Het is niet specifiek voor elke visual.
Opdrachten uitvouwen en samenvouwen kunnen worden toegevoegd aan het contextmenu door de dataRoles
parameter aan de showContextMenu
methode op te geven.
Als u een groot aantal gegevenspunten wilt uitbreiden, gebruikt u de API voor het ophalen van meer gegevens met de API voor uitvouwen/samenvouwen.
API-functies
De volgende elementen zijn toegevoegd aan API-versie 4.1.0 om het uitbreiden en samenvouwen van rijkoppen mogelijk te maken:
De
isCollapsed
vlag in hetDataViewTreeNode
:interface DataViewTreeNode { //... /** * TRUE if the node is Collapsed * FALSE if it is Expanded * Undefined if it cannot be Expanded (e.g. subtotal) */ isCollapsed?: boolean; }
De
toggleExpandCollapse
methode in deISelectionManger
interface:interface ISelectionManager { //... showContextMenu(selectionId: ISelectionId, position: IPoint, dataRoles?: string): IPromise<{}>; // dataRoles is the name of the role of the selected data point toggleExpandCollapse(selectionId: ISelectionId, entireLevel?: boolean): IPromise<{}>; // Expand/Collapse an entire level will be available from API 4.2.0 //... }
De
canBeExpanded
vlag in DataViewHierarchyLevel:interface DataViewHierarchyLevel { //... /** If TRUE, this level can be expanded/collapsed */ canBeExpanded?: boolean; }
Visuele vereisten
Als u de functie Samenvouwen in een visual wilt inschakelen met behulp van de matrixgegevensweergave:
Voeg de volgende code toe aan het bestand capabilities.json:
"expandCollapse": { "roles": ["Rows"], //”Rows” is the name of rows data role "addDataViewFlags": { "defaultValue": true //indicates if the DataViewTreeNode will get the isCollapsed flag by default } },
Controleer of de rollen kunnen worden ingezoomd:
"drilldown": { "roles": ["Rows"] },
Maak voor elk knooppunt een exemplaar van de opbouwfunctie voor selecties door de
withMatrixNode
methode aan te roepen op het niveau van de geselecteerde hiërarchie en eenselectionId
. Voorbeeld:let nodeSelectionBuilder: ISelectionIdBuilder = visualHost.createSelectionIdBuilder(); // parantNodes is a list of the parents of the selected node. // node is the current node which the selectionId is created for. parentNodes.push(node); for (let i = 0; i < parentNodes.length; i++) { nodeSelectionBuilder = nodeSelectionBuilder.withMatrixNode(parentNodes[i], levels); } const nodeSelectionId: ISelectionId = nodeSelectionBuilder.createSelectionId();
Maak een exemplaar van selectiebeheer en gebruik de
selectionManager.toggleExpandCollapse()
methode, met de parameter van hetselectionId
knooppunt, die u voor het geselecteerde knooppunt hebt gemaakt. Bijvoorbeeld:// handle click events to apply expand\collapse action for the selected node button.addEventListener("click", () => { this.selectionManager.toggleExpandCollapse(nodeSelectionId); });
Notitie
- Als het geselecteerde knooppunt geen rijknooppunt is, worden aanroepen voor uitvouwen en samenvouwen genegeerd en worden de opdrachten voor uitvouwen en samenvouwen verwijderd uit het contextmenu.
- De
dataRoles
parameter is alleen vereist voor deshowContextMenu
methode als de visual ondersteuning ofexpandCollapse
functies biedtdrilldown
. Als de visual deze functies ondersteunt, maar de dataRoles niet is opgegeven, wordt er een fout weergegeven in de console bij het gebruik van de visual voor ontwikkelaars of bij het opsporen van fouten in een openbare visual waarvoor de foutopsporingsmodus is ingeschakeld.
Overwegingen en beperkingen
- Nadat u een knooppunt hebt uitgevouwen, worden nieuwe gegevenslimieten toegepast op DataView. De nieuwe DataView bevat mogelijk geen enkele van de knooppunten die in de vorige DataView worden weergegeven.
- Wanneer u uitvouwen of samenvouwen gebruikt, worden totalen toegevoegd, zelfs als de visual deze niet heeft aangevraagd.
- Het uitvouwen en samenvouwen van kolommen wordt niet ondersteund.
Alle metagegevenskolommen behouden
Voor API 5.1.0 of hoger worden alle metagegevenskolommen ondersteund. Met deze functie kan de visual de metagegevens voor alle kolommen ontvangen, ongeacht wat hun actieve projecties zijn.
Voeg de volgende regels toe aan uw capabilities.json-bestand :
"keepAllMetadataColumns": {
"type": "boolean",
"description": "Indicates that visual is going to receive all metadata columns, no matter what the active projections are"
}
Als u deze eigenschap instelt true
, ontvangt u alle metagegevens, inclusief uit samengevouwen kolommen. Als u deze false
instelt of niet-gedefinieerd laat, ontvangt u alleen metagegevens voor kolommen met actieve projecties (bijvoorbeeld uitgevouwen).
Algoritme voor gegevensreductie
Het algoritme voor gegevensreductie bepaalt welke gegevens en hoeveel gegevens er worden ontvangen in de gegevensweergave.
Het aantal is ingesteld op het maximum aantal waarden dat door de gegevensweergave kan worden geaccepteerd. Als er meer dan aantal waarden zijn, bepaalt het algoritme voor gegevensreductie welke waarden moeten worden ontvangen.
Typen gegevensreductiealgoritmen
Er zijn vier typen instellingen voor het algoritme voor gegevensreductie:
top
: De eerste tellingswaarden worden uit het semantische model genomen.bottom
: De laatste tellingswaarden worden uit het semantische model genomen.sample
: De eerste en laatste items zijn opgenomen en het aantal items tellen met gelijke intervallen ertussen. Als u bijvoorbeeld een semantisch model hebt [0, 1, 2, ... 100] en een telling van 9, u ontvangt de waarden [0, 10, 20 ... 100].window
: Laadt één venster met gegevenspunten tegelijk met aantal elementen. Momenteel entop
window
zijn ze gelijkwaardig. In de toekomst wordt een vensterinstelling volledig ondersteund.
Standaard is voor alle Power BI-visuals het belangrijkste algoritme voor gegevensreductie toegepast, waarbij het aantal is ingesteld op 1000 gegevenspunten. Deze standaardwaarde is gelijk aan het instellen van de volgende eigenschappen in het capabilities.json-bestand :
"dataReductionAlgorithm": {
"top": {
"count": 1000
}
}
U kunt de tellingswaarde wijzigen in een geheel getal tot 30000. Power BI-visuals op basis van R kunnen maximaal 150000 rijen ondersteunen.
Gebruik van gegevensreductiealgoritmen
Het algoritme voor gegevensreductie kan worden gebruikt in categorische toewijzing, tabel- of matrixgegevensweergave.
In categorische gegevenstoewijzing kunt u het algoritme toevoegen aan de sectie 'categorieën' en/of 'groep' van values
voor categorische gegevenstoewijzing.
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" },
"dataReductionAlgorithm": {
"window": {
"count": 300
}
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
],
"dataReductionAlgorithm": {
"top": {
"count": 100
}
}
}
}
}
}
Pas in de toewijzing van tabelgegevensweergave het algoritme voor gegevensreductie toe op de rows
sectie van de toewijzingstabel Gegevensweergave.
"dataViewMappings": [
{
"table": {
"rows": {
"for": {
"in": "values"
},
"dataReductionAlgorithm": {
"top": {
"count": 2000
}
}
}
}
}
]
U kunt het algoritme voor gegevensreductie toepassen op de rows
en columns
secties van de toewijzingsmatrix voor gegevensweergave.