Grundlegendes zur Zuordnung von Datenansichten in Power BI-VisualsUnderstand data view mapping in Power BI visuals

In diesem Artikel wird erläutert, wie Datenansichten zugeordnet werden. Außerdem wird beschrieben, wie Datenrollen zusammenhängen und wie Sie für sie Bedingungen festlegen.This article discusses data view mapping and describes how data roles relate to each other and allow you to specify conditional requirements for them. Darüber hinaus werden die einzelnen dataMappings-Typen behandelt.The article also describes each dataMappings type.

Jede gültige Zuordnung erzeugt eine Datenansicht. Aktuell wird jedoch nur eine Abfrage pro Visual unterstützt.Each valid mapping produces a data view, but we currently support performing only one query per visual. Üblicherweise ist daher nur eine Datensicht verfügbar.You ordinarily get only one data view. Sie können allerdings mehrere Datenzuordnungen mit unterschiedlichen Bedingungen bereitstellen, die folgende Möglichkeiten bieten:However, you can provide multiple data mappings in certain conditions, which allow:

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

Power BI erstellt nur dann eine Zuordnung zu einer Datenansicht, wenn die gültige Zuordnung in dataViewMappings angegeben ist.Power BI creates a mapping to a data view if and only if the valid mapping is filled in dataViewMappings.

Anders ausgedrückt: categorical kann in dataViewMappings definiert werden, andere Zuordnungen wie table oder single jedoch möglicherweise nicht.In other words, categorical might be defined in dataViewMappings but other mappings, such as table or single, might not be. Beispiel:For example:

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

Power BI erzeugt eine Datenansicht mit einer einzelnen categorical-Zuordnung. table und andere Zuordnungen sind nicht definiert:Power BI produces a data view with a single categorical mapping, and table and other mappings are undefined:

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

„conditions“Conditions

In diesem Abschnitt werden Bedingungen für eine bestimmte Datenzuordnung beschrieben.This section describes conditions for a particular data mapping. Sie können mehrere Gruppen von Bedingungen bereitstellen. Wenn die Daten mit einer der beschriebenen Bedingungsgruppen übereinstimmen, werden die Daten vom Visual als gültig betrachtet.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.

Derzeit können Sie für jedes Feld einen minimalen und einen maximalen Wert angeben.Currently, for each field, you can specify a minimum and maximum value. Diese Werte stellen die Anzahl von Feldern dar, die an die Datenrolle gebunden werden können.The value represents the number of fields that can be bound to that data role.

Hinweis

Wenn eine Datenrolle in der Bedingung ausgelassen wird, kann sie über eine beliebige Anzahl von Feldern verfügen.If a data role is omitted in the condition, it can have any number of fields.

Beispiel 1Example 1

Sie können mehrere Felder in jede Datenrolle ziehen.You can drag multiple fields into each data role. In diesem Beispiel beschränken Sie die Kategorie auf ein Datenfeld und das Measure auf zwei Datenfelder.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 } },
]

Beispiel 2Example 2

In diesem Beispiel ist eine von zwei Bedingungen erforderlich:In this example, either of two conditions is required:

  • Genau ein category-Datenfeld und genau zwei MeasuresExactly one category data field and exactly two measures
  • Genau zwei Kategorien und genau ein MeasureExactly 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 } }
]

Einzelne DatenzuordnungSingle data mapping

Die einzelne Datenzuordnung ist die einfachste Form der Datenzuordnung.Single data mapping is the simplest form of data mapping. Sie akzeptiert ein einzelnes Measurefeld und gibt die Summe zurück.It accepts a single measure field and gives you the total. Bei einem numerischen Feld wird die Summe zurückgegeben.If the field is numeric, it gives you the sum. Andernfalls wird die Anzahl der eindeutigen Werte ermittelt.Otherwise, it gives you a count of unique values.

Wenn Sie eine einzelne Datenzuordnung verwenden möchten, müssen Sie den Namen der Datenrolle festlegen, die Sie zuordnen möchten.To use single data mapping, you need to define the name of the data role that you want to map. Diese Zuordnung funktioniert nur mit einem einzelnen Measurefeld.This mapping works only with a single measure field. Wenn ein zweites Feld zugewiesen ist, wird keine Datenansicht generiert. Es wird daher zusätzlich empfohlen, eine Bedingung bereitzustellen, die die Daten auf ein einzelnes Feld beschränkt.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.

Hinweis

Diese Datenzuordnung kann nicht in Verbindung mit einer anderen Datenzuordnung verwendet werden.This data mapping can't be used in conjunction with any other data mapping. Sie soll Daten auf einen einzelnen numerischen Wert reduzieren.It's meant to reduce data into a single numeric value.

Beispiel 3Example 3

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

Die resultierende Datenansicht enthält immer noch die anderen Typen („table“, „categorical“ usw.). Jede Zuordnung enthält jedoch nur den einzelnen Wert.The resulting data view still contains the other types (table, categorical, and so on), but each mapping contains only the single value. Es empfiehlt sich, nur auf den Wert in „single“ zuzugreifen.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
            }
        }
    ]
}

Codebeispiel für die Verarbeitung der einfachen Datenzuordnung in der AnsichtCode 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 Ergebnis zeigt das Visual einen einzelnen Wert aus Power BI an:As a result the visual displays a single value from Power BI:

Beispiel für ein Visual mit Zuordnung einer einzelnen Datenansicht

Kategorische DatenzuordnungCategorical data mapping

Die kategorische Datenzuordnung wird verwendet, um eine oder zwei unabhängige Datengruppierungen zu erhalten.Categorical data mapping is used to get one or two independent groupings of data.

Beispiel 4Example 4

Die Datenrollen aus dem vorherigen Beispiel sind wie folgt definiert: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"
    }
]

Die Zuordnung sieht so aus:Here is the mapping:

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

Dies ist ein einfaches Beispiel.It's a simple example. Es kann wie folgt interpretiert werden: Die category-Datenrolle wird so zugeordnet, dass für jedes Feld, das in category gezogen wird, die Daten categorical.categories zugeordnet werden.It reads "Map my category data role so that for every field I drag into category, its data is mapped to categorical.categories. Außerdem wird die measure-Datenrolle categorical.values zugeordnet.Also map my measure data role to categorical.values."

  • for...in: fügt alle Elemente dieser Datenrolle in die Datenabfrage ein.for...in: For all the items in this data role, include them in the data query.
  • bind...to: erzeugt dasselbe Ergebnis wie for...in, erwartet jedoch, dass die Datenrolle über eine Bedingung verfügt, die sie auf ein einzelnes Feld beschränkt.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.

Beispiel 5Example 5

Im folgenden Beispiel werden die ersten beiden Datenrollen aus dem vorherigen Beispiel verwendet. Zusätzlich werden grouping und measure2 definiert.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"
    }
]

Die Zuordnung sieht so aus:Here is the mapping:

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

Hier liegt der Unterschied in der Zuordnung von „categorical.values“.Here the difference is in how we are mapping categorical.values. Das Beispiel kann wie folgt interpretiert werden: Die Datenrollen measure und measure2 werden so zugeordnet, dass diese von der Datenrolle grouping gruppiert werden.We are saying that "Map my measure and measure2 data roles to be grouped by the data role grouping."

Beispiel 6Example 6

Die Datenrollen sehen wie folgt aus:Here are the data roles:

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

Die Zuordnung der Datensicht sieht wie folgt aus:Here is the data view mapping:

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

Die kategorische Datensicht kann beispielsweise wie folgt visualisiert werden:The categorical data view could be visualized like this:

LandCountry 20132013 20142014 20152015 20162016
USAUSA xx xx 650650 350350
CanadaCanada xx 630630 490490 xx
MexikoMexico 645645 xx xx xx
UKUK xx xx 831831 xx

Power BI erstellt sie als kategorische Datenansicht.Power BI produces it as the categorical data view. Dabei handelt es sich um die Gruppe von Kategorien.It's the set of categories.

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

Jede Kategorie wird auch einer Gruppe von Werten zugeordnet.Each category maps to a set of values as well. Zur Gruppierung der einzelnen Werte wird eine Reihe verwendet, die auf Jahren basiert.Each of these values is grouped by series, which is expressed as years.

Jedes values-Array stellt z. B. Daten für jedes Jahr dar.For example, each values array represents data for each year. Außerdem hat jedes values-Array vier Werte für Kanada, USA, Vereinigtes Königreich und Mexiko: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": [...],
        }
    ]
}

Das Codebeispiel für die Verarbeitung einer kategorischer Datenansichtszuordnung wird nachfolgend beschrieben.Code sample for processing categorical data view mapping is described below. Im Beispiel wird eine hierarchische Struktur, Country => Year => Value, erstellt.The 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);
    }
}

Das Ergebnis des Visuals:The result of the visual:

Das Visual mit kategorischer Datenansichtszuordnung

TabellendatenzuordnungTable data mapping

Die Tabellendatenansicht ist eine einfache Datenzuordnung.The table data view is a simple data mapping. Im Wesentlichen handelt es sich um eine Liste von Datenpunkten, in der numerische Datenpunkte aggregiert werden können.Essentially, it's a list of data points, where numeric data points could be aggregated.

Beispiel 7Example 7

Mit den angegebenen FunktionenWith 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"
                        }
                    }
                ]
            }
        }
    }
]

Mit diesen können Sie die Tabellendatenansicht wie folgt visualisieren:You can visualize the table data view as the following:

Beispiel für Daten:Data example:

LandCountry JahrYear SalesSales
USAUSA 20162016 100100
USAUSA 20152015 5050
CanadaCanada 20152015 200200
CanadaCanada 20152015 5050
MexikoMexico 20132013 300300
UKUK 20142014 150150
USAUSA 20152015 7575

Datenbindung:Data binding:

Tabellendatenansichtszuordnung von Datenbindungen

In Power BI werden die Daten als Tabellendatenansicht angezeigt.Power BI displays your data as the table data view. Sie sollten nicht davon ausgehen, dass die Daten sortiert wurden.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
            ]
        ]
    }
}

Sie können die Daten aggregieren, indem Sie das gewünschte Feld auswählen und dann „Summe“ auswählen.You can aggregate the data by selecting the desired field and then selecting sum.

Daten-Aggregation

Codebeispiel für die Verarbeitung der TabellendatenansichtszuordnungCode 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);
        });
    }
}

Die Formatierungsvisualisierungdatei style/visual.less enthält das Layout für die folgende Tabelle: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;
}

Das Visual mit Tabellendatenansichtszuordnung

MatrixdatenzuordnungMatrix data mapping

Die Matrixdatenzuordnung ist mit der Tabellendatenzuordnung vergleichbar, allerdings werden Zeilen hierarchisch dargestellt.Matrix data mapping is similar to table data mapping, but the rows are presented hierarchically. Alle Datenrollenwerte können als Werte für die Spaltenkopfzeile verwendet werden.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 erzeugt eine hierarchische Datenstruktur.Power BI creates a hierarchical data structure. Das Stammelement dieser Struktur enthält die Daten aus der Spalte Parents (Eltern) der Category-Datenrolle und die Daten aus der Spalte Children (Kinder) aus der Datenrollentabelle.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.

Dataset:Dataset:

Übergeordnete Elemente (Parents)Parents ChildrenChildren Grandchildren (Enkelkinder)Grandchildren SpaltenColumns WerteValues
Parent1Parent1 Child1Child1 Grand child1Grand child1 Col1Col1 55
Parent1Parent1 Child1Child1 Grand child1Grand child1 Col2Col2 66
Parent1Parent1 Child1Child1 Grand child2Grand child2 Col1Col1 77
Parent1Parent1 Child1Child1 Grand child2Grand child2 Col2Col2 88
Parent1Parent1 Child2Child2 Grand child3Grand child3 Col1Col1 55
Parent1Parent1 Child2Child2 Grand child3Grand child3 Col2Col2 33
Parent1Parent1 Child2Child2 Grand child4Grand child4 Col1Col1 44
Parent1Parent1 Child2Child2 Grand child4Grand child4 Col2Col2 99
Parent1Parent1 Child2Child2 Grand child5Grand child5 Col1Col1 33
Parent1Parent1 Child2Child2 Grand child5Grand child5 Col2Col2 55
Parent2Parent2 Child3Child3 Grand child6Grand child6 Col1Col1 11
Parent2Parent2 Child3Child3 Grand child6Grand child6 Col2Col2 22
Parent2Parent2 Child3Child3 Grand child7Grand child7 Col1Col1 77
Parent2Parent2 Child3Child3 Grand child7Grand child7 Col2Col2 11
Parent2Parent2 Child3Child3 Grand child8Grand child8 Col1Col1 1010
Parent2Parent2 Child3Child3 Grand child8Grand child8 Col2Col2 1313

Das Hauptmatrixvisual von Power BI rendert die Daten als Tabelle.The core matrix visual of Power BI renders the data as a table.

Matrixvisual

Die Datenstruktur für das Visual wird wie im folgenden Code definiert. Nur die ersten beiden Tabellenzeilen werden hier aufgeführt: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": [...]
    }
}

DatenverringerungsalgorithmusData reduction algorithm

Sie können einen Datenverringerungsalgorithmus verwenden, um festzulegen, wie viele Daten für die Datenansicht verwendet werden.To control the amount of data to receive in the data view, you can apply a data reduction algorithm.

Auf alle Power BI-Visuals wird standardmäßig der Datenverringerungsalgorithmus „top“ angewendet, wobei count auf 1000 Datenpunkte festgelegt ist.By default, all Power BI visuals have the top data reduction algorithm applied with the count set to 1000 data points. Das Festlegen der folgenden Eigenschaften in capabilities.json hat dieselben Auswirkungen:It's the same as setting the following properties in the capabilities.json file:

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

Sie können für count einen anderen Integerwert bis 30.000 festlegen.You can modify the count value to any integer value up to 30000. R-basierte Power BI-Visuals können bis zu 150000 Zeilen unterstützen.R-based Power BI visuals can support up to 150000 rows.

Typen von DatenverringerungsalgorithmenData reduction algorithm types

Für den Datenverringerungsalgorithmus sind vier Einstellungstypen verfügbar:There are four types of data reduction algorithm settings:

  • top: Hiermit beschränken Sie die Daten auf Werte, die vom Anfang des Datasets abgerufen wurden.top: If you want to limit the data to values taken from the top of the dataset. Die ersten Werte, deren Anzahl durch count vorgegeben wird, werden aus dem Dataset abgerufen.The top first count values will be taken from the dataset.
  • bottom: Hiermit beschränken Sie die Daten auf Werte, die vom Ende des Datasets abgerufen werden.bottom: If you want to limit the data to values taken from the bottom of the dataset. Die letzten Werte, deren Anzahl durch „count“ vorgegeben wird, werden aus dem Dataset abgerufen.The last "count" values will be taken from the dataset.
  • sample: Hiermit beschränken Sie das Dataset durch einen einfachen Algorithmus für die Stichprobenentnahme auf eine durch count vorgegebene Anzahl von Elementen.sample: Reduce the dataset by a simple sampling algorithm, limited to a count number of items. Dies bedeutet, dass das erste und das letzte Element einbezogen werden und dass zwischen einer durch count vorgegebenen Anzahl von Elementen dieselben Intervalle bestehen.It means that the first and last items are included, and a count number of items have equal intervals between them. Wenn z. B. das Dataset [0, 1, 2, ... 100] vorliegt und count 9 beträgt, ergeben sich daraus die Werte [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: Hiermit wird jeweils ein Segment (window) mit Datenpunkten mit der durch count angegebenen Anzahl von Elementen geladen.window: Loads one window of data points at a time containing count elements. top und window sind derzeit gleichwertig.Currently, top and window are equivalent. An der vollständigen Unterstützung der Segmentierungseinstellung wird aktuell gearbeitet.We are working toward fully supporting a windowing setting.

Verwenden des DatenverringerungsalgorithmusData reduction algorithm usage

Der Datenverringerungsalgorithmus kann für Datenansichtszuordnungen der Typen „categorical“, „table“ oder „matrix“ genutzt werden.The data reduction algorithm can be used in categorical, table, or matrix data view mapping.

Sie können den Algorithmus in categories und/oder im Gruppenabschnitt von values für kategorische Datenzuordnungen verwenden.You can set the algorithm into categories and/or group section of values for categorical data mapping.

Beispiel 8Example 8

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

Sie können den Datenverringerungsalgorithmus auf den rows-Abschnitt der Zuordnungstabelle für Datenansichten anwenden.You can apply the data reduction algorithm to the rows section of the Data View mapping table.

Beispiel 9Example 9

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

Sie können den Datenverringerungsalgorithmus auf die Abschnitte rows und columns der Zuordnungsmatrix für Datenansichten anwenden.You can apply the data reduction algorithm to the rows and columns sections of the Data View mapping matrix.

Nächste SchritteNext steps

Erfahren Sie, wie Sie Drilldown-Unterstützung für Datenansichtszuordnungen in Power BI-Visuals hinzufügen.Read how to add Drill-Down support for data view mappings in Power BI visuals.