Informatie over toewijzing van gegevensweergaven in Power BI-visualsUnderstand data view mapping in Power BI visuals

In dit artikel wordt uitgelegd hoe toewijzing van gegevensweergaven verloopt en wordt de relatie tussen de verschillende gegevensrollen beschreven. Ook kunt u hiermee voorwaardelijke vereisten voor deze rollen opgeven.This article discusses data view mapping and describes how data roles relate to each other and allow you to specify conditional requirements for them. In dit artikel wordt ook elk dataMappings-type beschreven.The article also describes each dataMappings type.

Door elke geldige toewijzing wordt een gegevensweergave geproduceerd, maar momenteel wordt slechts één query per visual ondersteunt.Each valid mapping produces a data view, but we currently support performing only one query per visual. Normaal gesproken krijgt u slechts één gegevensweergave.You ordinarily get only one data view. U kunt echter meerdere gegevenstoewijzingen opgeven met verschillende voorwaarden, waardoor:However, you can provide multiple data mappings in certain conditions, which allow:

"dataViewMappings": [
    {
        "conditions": [ ... ],
        "categorical": { ... },
        "single": { ... },
        "table": { ... },
        "matrix": { ... }
    }
]

Power BI een toewijzing naar een gegevensweergave maakt als de geldige toewijzing wordt ingevuld in dataViewMappings, en alleen dan.Power BI creates a mapping to a data view if and only if the valid mapping is filled in dataViewMappings.

Met andere woorden, categorical kan worden gedefinieerd in dataViewMappings, terwijl dit mogelijk niet geldt voor andere toewijzingen, zoals table of single.In other words, categorical might be defined in dataViewMappings but other mappings, such as table or single, might not be. Bijvoorbeeld:For example:

"dataViewMappings": [
    {
        "categorical": { ... }
    }
]

Power BI produceert een gegevensweergave met één categorical-toewijzing en table en andere toewijzingen worden niet gedefinieerd:Power BI produces a data view with a single categorical mapping, and table and other mappings are undefined:

{
    "categorical": {
        "categories": [ ... ],
        "values": [ ... ]
    },
    "metadata": { ... }
}

VoorwaardenConditions

In deze sectie worden de voorwaarden voor een bepaalde gegevenstoewijzing beschreven.This section describes conditions for a particular data mapping. U kunt meerdere sets voorwaarden opgeven, en als de gegevens overeenkomen met een van de beschreven sets voorwaarden, worden de gegevens door de visual geaccepteerd als geldig.You can provide multiple sets of conditions and, if the data matches one of the described sets of conditions, the visual accepts the data as valid.

Op dit moment kunt u voor elk veld een minimum- en maximumwaarde opgeven.Currently, for each field, you can specify a minimum and maximum value. De waarde vertegenwoordigt het aantal velden dat aan die gegevensrol kan worden gebonden.The value represents the number of fields that can be bound to that data role.

Notitie

Als een gegevensrol in de voorwaarde wordt weggelaten, kan een willekeurig aantal velden worden opgegeven.If a data role is omitted in the condition, it can have any number of fields.

Voorbeeld 1Example 1

U kunt meerdere velden naar elke gegevensrol slepen.You can drag multiple fields into each data role. In dit voorbeeld wordt de categorie (category) beperkt tot één gegevensveld en de meting (measure) tot twee gegevensvelden.In this example, you limit the category to one data field and the measure to two data fields.

"conditions": [
    { "category": { "max": 1 }, "y": { "max": 2 } },
]

Voorbeeld 2Example 2

In dit voorbeeld is een van de twee voorwaarden vereist:In this example, either of two conditions is required:

  • Precies één categoriegegevensveld en precies twee metingenExactly one category data field and exactly two measures
  • Precies twee categorieën en precies één meting.Exactly two categories and exactly one measure.
"conditions": [
    { "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
    { "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]

Enkele gegevenstoewijzingSingle data mapping

Enkele gegevenstoewijzing is de eenvoudigste vorm van gegevenstoewijzing.Single data mapping is the simplest form of data mapping. Hiermee wordt één metingveld geaccepteerd en krijgt u het totaal.It accepts a single measure field and gives you the total. Als het veld numeriek is, krijgt u de som.If the field is numeric, it gives you the sum. Anders krijgt u het aantal unieke waarden.Otherwise, it gives you a count of unique values.

Als u enkele gegevenstoewijzing wilt gebruiken, moet u de naam definiëren van de gegevensrol die u wilt toewijzen.To use single data mapping, you need to define the name of the data role that you want to map. Deze toewijzing werkt alleen met één metingveld.This mapping works only with a single measure field. Als er een tweede veld wordt toegewezen, wordt er geen gegevensweergave gegenereerd, dus is het ook handig om een voorwaarde op te nemen waarmee de gegevens worden beperkt tot één veld.If a second field is assigned, no data view is generated, so it's also a good practice to include a condition that limits the data to a single field.

Notitie

Deze gegevenstoewijzing kan niet worden gebruikt in combinatie met een andere gegevenstoewijzing.This data mapping can't be used in conjunction with any other data mapping. De toewijzing is bedoeld om gegevens te reduceren tot één numerieke waarde.It's meant to reduce data into a single numeric value.

Voorbeeld 3Example 3

{
    "dataRoles": [
        {
            "displayName": "Y",
            "name": "Y",
            "kind": "Measure"
        }
    ],
    "dataViewMappings": [
        {
            "conditions": [
                {
                    "Y": {
                        "max": 1
                    }
                }
            ],
            "single": {
                "role": "Y"
            }
        }
    ]
}

De resulterende gegevensweergave bevat nog steeds de andere typen (tabel, categorische, enzovoort), maar elke toewijzing bevat alleen de enkele waarde.The resulting data view still contains the other types (table, categorical, and so on), but each mapping contains only the single value. De aanbevolen procedure is om toegang te krijgen tot de waarde in één (single) veld.The best practice is to access the value only in single.

{
    "dataView": [
        {
            "metadata": null,
            "categorical": null,
            "matrix": null,
            "table": null,
            "tree": null,
            "single": {
                "value": 94163140.3560001
            }
        }
    ]
}

Codevoorbeeld voor het verwerken van de toewijzing van eenvoudige gegevensweergavenCode sample to process simple data view mapping

"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewSingle = powerbi.DataViewSingle;
// standart 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();
    }
}

Als gevolg hiervan wordt in de visual een enkele waarde uit Power BI weergegeven:As a result the visual displays a single value from Power BI:

Voorbeeld van een visual met een toewijzing van één gegevensweergave

Categorische gegevenstoewijzingCategorical data mapping

Categorische gegevenstoewijzing wordt gebruikt om een of twee onafhankelijke groeperingen van gegevens op te halen.Categorical data mapping is used to get one or two independent groupings of data.

Voorbeeld 4Example 4

Hier volgt de definitie uit het vorige voorbeeld over gegevensrollen:Here is the definition from the previous example for data roles:

"dataRole":[
    {
        "displayName": "Category",
        "name": "category",
        "kind": "Grouping"
    },
    {
        "displayName": "Y Axis",
        "name": "measure",
        "kind": "Measure"
    }
]

De toewijzing is als volgt:Here is the mapping:

"dataViewMappings": {
    "categorical": {
        "categories": {
            "for": { "in": "category" }
        },
        "values": {
            "select": [
                { "bind": { "to": "measure" } }
            ]
        }
    }
}

Dit is een eenvoudig voorbeeld.It's a simple example. Er staat 'Wijs de gegevensrol van mijn category zo toe dat de gegevens van elk veld dat ik naar category sleep, worden toegewezen aan categorical.categories.It reads "Map my category data role so that for every field I drag into category, its data is mapped to categorical.categories. En wijs de gegevensrol van mijn measure toe aan categorical.values'.Also map my measure data role to categorical.values."

  • for... in: Neem alle items in deze gegevensrol op in de gegevensquery.for...in: For all the items in this data role, include them in the data query.
  • bind...to: Produceert hetzelfde resultaat als for...in, maar verwacht dat de gegevensrol een voorwaarde heeft die deze beperkt tot één veld.bind...to: Produces the same result as in for...in, but expects that the data role will have a condition restricting it to a single field.

Voorbeeld 5Example 5

In dit voorbeeld gebruiken we de eerste twee gegevensrollen uit het vorige voorbeeld en definiëren bovendien grouping en measure2.This example uses the first two data roles from the previous example and additionally defines grouping and measure2.

"dataRole":[
    {
        "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"
    }
]

De toewijzing is als volgt:Here is the mapping:

"dataViewMappings":{
    "categorical": {
        "categories": {
            "for": { "in": "category" }
        },
        "values": {
            "group": {
                "by": "grouping",
                "select":[
                    { "bind": { "to": "measure" } },
                    { "bind": { "to": "measure2" } }
                ]
            }
        }
    }
}

Hier is het verschil de manier waarop we categorical.values toewijzen.Here the difference is in how we are mapping categorical.values. We zeggen: 'Wijs de gegevensrollen van mijn measure en measure2 toe om te worden gegroepeerd op de gegevensrol grouping'.We are saying that "Map my measure and measure2 data roles to be grouped by the data role grouping."

Voorbeeld 6Example 6

Hier zijn de gegevensrollen:Here are the data roles:

"dataRoles": [
    {
        "displayName": "Categories",
        "name": "category",
        "kind": "Grouping"
    },
    {
        "displayName": "Measures",
        "name": "measure",
        "kind": "Measure"
    },
    {
        "displayName": "Series",
        "name": "series",
        "kind": "Measure"
    }
]

Dit is de toewijzing van de gegevensweergave:Here is the data view mapping:

"dataViewMappings": [
    {
        "categorical": {
            "categories": {
                "for": {
                    "in": "category"
                }
            },
            "values": {
                "group": {
                    "by": "series",
                    "select": [{
                            "for": {
                                "in": "measure"
                            }
                        }
                    ]
                }
            }
        }
    }
]

De categorische gegevensweergave kan als volgt worden gevisualiseerd:The categorical data view could be visualized like this:

CategorischCategorical
JaarYear 20132013 20142014 20152015 20162016
LandCountry
VSUSA xx xx 650650 350350
CanadaCanada xx 630630 490490 xx
MexicoMexico 645645 xx xx xx
VKUK xx xx 831831 xx

Power BI produceert deze als de categorische gegevensweergave.Power BI produces it as the categorical data view. Het is de set met categorieën.It's the set of categories.

{
    "categorical": {
        "categories": [
            {
                "source": {...},
                "values": [
                    "Canada",
                    "USA",
                    "UK",
                    "Mexico"
                ],
                "identity": [...],
                "identityFields": [...],
            }
        ]
    }
}

Elke categorie wordt ook toegewezen aan een set met waarden.Each category maps to a set of values as well. Elk van deze waarden wordt gegroepeerd op een reeks, die wordt uitgedrukt in jaren.Each of these values is grouped by series, which is expressed as years.

Elke values-matrix vertegenwoordigt bijvoorbeeld gegevens voor elk jaar.For example, each values array represents data for each year. Elke values-matrix heeft ook vier waarden, voor respectievelijk Canada, USA, het VK en Mexico:Also each values array has 4 values, for Canada, USA, UK and Mexico respectively:

{
    "values": [
        // Values for 2013 year
        {
            "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 2014 year
        {
            "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 2015 year
        {
            "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 2016 year
        {
            "source": {...},
            "values": [
                null, // Value for `Canada` category
                350, // Value for `USA` category
                null, // Value for `UK` category
                null // Value for `Mexico` category
            ],
            "identity": [...],
        }
    ]
}

Het codevoorbeeld voor het verwerken van de toewijzing van categorische gegevensweergaven wordt hieronder beschreven.Code sample for processing categorical data view mapping is described below. Het voorbeeld zorgt voor een hiërarchische structuur Country => Year => ValueThe sample creates Hierarchical structure Country => Year => Value

"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewDataViewCategoricalSingle = powerbi.DataViewCategorical;
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import PrimitiveValue = powerbi.PrimitiveValue;
// standart 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
        // If you want to support several columns of categories data bucket, you should iterate categoricalDataView.categories array.
        const categoryFieldIndex = 0;
        // Measure has only one column in data buckets.
        // If you want to support several columns on data bucket, you should 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
        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);
    }
}

Het resultaat van de visual:The result of the visual:

De visual met toewijzing van categorische gegevensweergaven

TabelgegevenstoewijzingTable data mapping

De tabelgegevensweergave is een eenvoudige gegevenstoewijzing.The table data view is a simple data mapping. Het is in essentie een lijst met gegevenspunten, waarin numerieke gegevenspunten kunnen worden geaggregeerd.Essentially, it's a list of data points, where numeric data points could be aggregated.

Voorbeeld 7Example 7

Met de gegeven mogelijkheden:With the given capabilities:

"dataRoles": [
    {
        "displayName": "Column",
        "name": "column",
        "kind": "Grouping"
    },
    {
        "displayName": "Value",
        "name": "value",
        "kind": "Measure"
    }
]
"dataViewMappings": [
    {
        "table": {
            "rows": {
                "select": [
                    {
                        "for": {
                            "in": "column"
                        }
                    },
                    {
                        "for": {
                            "in": "value"
                        }
                    }
                ]
            }
        }
    }
]

U kunt de tabelgegevensweergave als volgt visualiseren:You can visualize the table data view as the following:

Voorbeeld van gegevens:Data example:

LandCountry JaarYear VerkoopSales
VSUSA 20162016 100100
VSUSA 20152015 5050
CanadaCanada 20152015 200200
CanadaCanada 20152015 5050
MexicoMexico 20132013 300300
VKUK 20142014 150150
VSUSA 20152015 7575

Gegevensbinding:Data binding:

Gegevensbindingen voor toewijzing van tabelgegevensweergaven

Power BI geeft uw gegevens weer als de tabelgegevensweergave.Power BI displays your data as the table data view. U moet er niet van uitgaan dat de gegevens zijn geordend.You shouldn't assume that the data is ordered.

{
    "table" : {
        "columns": [...],
        "rows": [
            [
                "Canada",
                2014,
                630
            ],
            [
                "Canada",
                2015,
                490
            ],
            [
                "Mexico",
                2013,
                645
            ],
            [
                "UK",
                2014,
                831
            ],
            [
                "USA",
                2015,
                650
            ],
            [
                "USA",
                2016,
                350
            ]
        ]
    }
}

U kunt de gegevens samenvoegen door het gewenste veld te selecteren en vervolgens Som te selecteren.You can aggregate the data by selecting the desired field and then selecting sum.

Gegevensaggregatie

Codevoorbeeld voor het verwerken van de toewijzing van tabelgegevensweergaven.Code sample to process table data view mapping.

"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;
// other 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 een indeling voor tabel:The visual styles file style/visual.less contains layout for table:

table {
    display: flex;
    flex-direction: column;
}

tr, th {
    display: flex;
    flex: 1;
}

td {
    flex: 1;
    border: 1px solid black;
}

De visual met toewijzing van tabelgegevensweergaven

MatrixgegevenstoewijzingMatrix data mapping

Matrixgegevenstoewijzing lijkt op tabelgegevenstoewijzing, maar de rijen worden hiërarchisch gepresenteerd.Matrix data mapping is similar to table data mapping, but the rows are presented hierarchically. Een van de gegevensrolwaarden kan worden gebruikt als kolomkopwaarde.Any of the data role values can be used as a column header value.

{
    "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"
                            }
                        }
                    ]
                }
            }
        }
    ]
}

Power BI maakt een hiërarchische gegevensstructuur.Power BI creates a hierarchical data structure. De hoofdmap van de hiërarchiestructuur bevat de gegevens uit de kolom Bovenliggende items van de Category-gegevensrol met onderliggende items uit de kolom Onderliggende items van de gegevensroltabel.The root of the tree hierarchy includes the data from the Parents column of the Category data role, with children from the Children column of the data role table.

Gegevensset:Dataset:

Bovenliggende itemsParents Onderliggende itemsChildren Dieper onderliggende itemsGrandchildren KolommenColumns WaardenValues
Bovenliggend item 1Parent1 Onderliggend item 1Child1 Dieper onderliggend item 1Grand child1 Kolom 1Col1 55
Bovenliggend item 1Parent1 Onderliggend item 1Child1 Dieper onderliggend item 1Grand child1 Kolom 2Col2 66
Bovenliggend item 1Parent1 Onderliggend item 1Child1 Dieper onderliggend item 2Grand child2 Kolom 1Col1 77
Bovenliggend item 1Parent1 Onderliggend item 1Child1 Dieper onderliggend item 2Grand child2 Kolom 2Col2 88
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 3Grand child3 Kolom 1Col1 55
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 3Grand child3 Kolom 2Col2 33
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 4Grand child4 Kolom 1Col1 44
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 4Grand child4 Kolom 2Col2 99
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 5Grand child5 Kolom 1Col1 33
Bovenliggend item 1Parent1 Onderliggend item 2Child2 Dieper onderliggend item 5Grand child5 Kolom 2Col2 55
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 6Grand child6 Kolom 1Col1 11
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 6Grand child6 Kolom 2Col2 22
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 7Grand child7 Kolom 1Col1 77
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 7Grand child7 Kolom 2Col2 11
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 8Grand child8 Kolom 1Col1 1010
Bovenliggend item 2Parent2 Onderliggend item 3Child3 Dieper onderliggend item 8Grand child8 Kolom 2Col2 1313

De kernmatrixvisual van Power BI geeft de gegevens weer als een tabel.The core matrix visual of Power BI renders the data as a table.

Matrixvisual

De visual krijgt de gegevensstructuur zoals beschreven in de volgende code (alleen de eerste twee tabelrijen worden hier weergegeven):The visual gets its data structure as described in the following code (only the first two table rows are shown here):

{
    "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": [...]
    }
}

GegevensreductiealgoritmeData reduction algorithm

Als u de hoeveelheid gegevens wilt beheren die in de gegevensweergave moet worden ontvangen, kunt u een gegevensreductiealgoritme toepassen.To control the amount of data to receive in the data view, you can apply a data reduction algorithm.

Standaard wordt in alle Power BI-visuals het gegevensreductiealgoritme 'top' toegepast, met count (aantal) ingesteld op 1000 gegevenspunten.By default, all Power BI visuals have the top data reduction algorithm applied with the count set to 1000 data points. Dit is hetzelfde als het instellen van de volgende eigenschappen in het bestand capabilities.json:It's the same as setting the following properties in the capabilities.json file:

"dataReductionAlgorithm": {
    "top": {
        "count": 1000
    }
}

U kunt de waarde count instellen op ieder geheel getal tot 30000.You can modify the count value to any integer value up to 30000. Op R gebaseerde Power BI-visuals kunnen tot 150000 rijen ondersteunen.R-based Power BI visuals can support up to 150000 rows.

Soorten gegevensreductiealgoritmenData reduction algorithm types

Er zijn vier typen instellingen voor gegevensreductiealgoritme:There are four types of data reduction algorithm settings:

  • top: Als u de gegevens wilt beperken tot waarden van de bovenkant van de gegevensset.top: If you want to limit the data to values taken from the top of the dataset. De bovenste count-waarden worden uit de gegevensset genomen.The top first count values will be taken from the dataset.
  • bottom: Als u de gegevens wilt beperken tot waarden van de onderkant van de gegevensset.bottom: If you want to limit the data to values taken from the bottom of the dataset. De laatste 'count'-waarden worden uit de gegevensset genomen.The last "count" values will be taken from the dataset.
  • sample: Verklein de gegevensset door een eenvoudig steekproefalgoritme, beperkt tot count items.sample: Reduce the dataset by a simple sampling algorithm, limited to a count number of items. Dit betekent dat het eerste en laatste item worden opgenomen, en een aantal van count gegevens met gelijke intervallen ertussen.It means that the first and last items are included, and a count number of items have equal intervals between them. Als u bijvoorbeeld de gegevensset [0, 1, 2, ... 100] en een count van 9 hebt, ontvangt u de waarden [0, 10, 20... 100].For example, if you have a dataset [0, 1, 2, ... 100] and a count of 9, you'll receive the values [0, 10, 20 ... 100].
  • window: Laadt één venster met gegevenspunten tegelijk, dat count elementen bevat.window: Loads one window of data points at a time containing count elements. Momenteel zijn top en window equivalent.Currently, top and window are equivalent. Er wordt gewerkt aan de volledige ondersteuning van een vensterbewerkingsinstelling.We are working toward fully supporting a windowing setting.

Gebruik van gegevensreductiealgoritmeData reduction algorithm usage

Het gegevensreductiealgoritme kan worden gebruikt bij categorische, tabel- of matrixtoewijzing.The data reduction algorithm can be used in categorical, table, or matrix data view mapping.

Het algoritme kan worden opgenomen in categories en/of de groepssectie van values voor categorische gegevenstoewijzing.You can set the algorithm into categories and/or group section of values for categorical data mapping.

Voorbeeld 8Example 8

"dataViewMappings": {
    "categorical": {
        "categories": {
            "for": { "in": "category" },
            "dataReductionAlgorithm": {
                "window": {
                    "count": 300
                }
            }  
        },
        "values": {
            "group": {
                "by": "series",
                "select": [{
                        "for": {
                            "in": "measure"
                        }
                    }
                ],
                "dataReductionAlgorithm": {
                    "top": {
                        "count": 100
                    }
                }  
            }
        }
    }
}

U kunt het gegevensreductiealgoritme toepassen op de sectie rows van de toewijzingstabel van de gegevensweergave.You can apply the data reduction algorithm to the rows section of the Data View mapping table.

Voorbeeld 9Example 9

"dataViewMappings": [
    {
        "table": {
            "rows": {
                "for": {
                    "in": "values"
                },
                "dataReductionAlgorithm": {
                    "top": {
                        "count": 2000
                    }
                }
            }
        }
    }
]

U kunt het gegevensreductiealgoritme toepassen op de secties rows en columns van de toewijzingsmatrix van de gegevensweergave.You can apply the data reduction algorithm to the rows and columns sections of the Data View mapping matrix.

Volgende stappenNext steps

Lees meer informatie over het toevoegen van ondersteuning voor inzoomen voor toewijzingen van gegevensweergaven in Power BI-visuals.Read how to add Drill-Down support for data view mappings in Power BI visuals.