Power BI görsellerinde veri görünümü eşlemesini anlamaUnderstand data view mapping in Power BI visuals

Bu makalede veri görünümü eşlemesi anlatılır ve veri rollerinin birbirleriyle ilişkisi, bunlar için koşullu gereksinimleri belirlemenize nasıl olanak tanıdığı açıklanır.This article discusses data view mapping and describes how data roles relate to each other and allow you to specify conditional requirements for them. Makalede dataMappings türleri de açıklanır.The article also describes each dataMappings type.

Her geçerli eşleme bir veri görünümü oluşturur ama şu anda görsel başına tek bir sorgu gerçekleştirmeyi destekliyoruz.Each valid mapping produces a data view, but we currently support performing only one query per visual. Normalde tek bir veri görünümü alırsınız.You ordinarily get only one data view. Bununla birlikte bazı durumlarda birden çok veri eşlemesi sağlayabilirsiniz ve bu da şunlara olanak tanır:However, you can provide multiple data mappings in certain conditions, which allow:

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

Power BI ancak geçerli eşleme dataViewMappings içine doldurulduysa veri görünümüne bir eşleme oluşturur.Power BI creates a mapping to a data view if and only if the valid mapping is filled in dataViewMappings.

Başka bir deyişle dataViewMappings içinde categorical tanımlanabilir ama table veya single gibi diğer eşlemeler tanımlanmayabilir.In other words, categorical might be defined in dataViewMappings but other mappings, such as table or single, might not be. Örnek:For example:

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

Power BI tek bir categorical eşlemesiyle bir veri görünümü oluşturur ve table ile diğer eşlemeler tanımlanmaz:Power BI produces a data view with a single categorical mapping, and table and other mappings are undefined:

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

KoşullarConditions

Bu bölümde belirli bir veri eşlemesinin koşulları açıklanır.This section describes conditions for a particular data mapping. Birden çok koşul kümesi sağlayabilirsiniz ve veriler tanımlanan koşul kümelerinden biriyle eşleşirse görsel verileri geçerli olarak kabul eder.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.

Şu anda her alan için en düşük ve en yüksek değeri belirtebilirsiniz.Currently, for each field, you can specify a minimum and maximum value. Bu değer söz konusu veri rolüne bağlanabilecek alan sayısını temsil eder.The value represents the number of fields that can be bound to that data role.

Not

Koşulda bir veri rolü atlanırsa, herhangi bir sayıda alan olabilir.If a data role is omitted in the condition, it can have any number of fields.

Örnek 1Example 1

Birden çok alanı her bir veri rolüne sürükleyebilirsiniz.You can drag multiple fields into each data role. Bu örnekte kategoriyi tek bir veri alanına ve ölçüyü iki veri alanına sınırlıyorsunuz.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 } },
]

Örnek 2Example 2

Bu örnekte iki koşuldan herhangi biri gereklidir:In this example, either of two conditions is required:

  • Tam olarak bir kategori veri alanı ve tam olarak iki ölçüExactly one category data field and exactly two measures
  • Tam olarak iki kategori ve tam olarak bir ölçü.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 } }
]

Tek veri eşlemesiSingle data mapping

Tek veri eşlemesi, veri eşlemesinin en basit biçimidir.Single data mapping is the simplest form of data mapping. Tek bir ölçü alanını kabul eder ve size toplamı verir.It accepts a single measure field and gives you the total. Alan sayısalsa size toplamı verir.If the field is numeric, it gives you the sum. Aksi takdirde benzersiz değerlerin sayısını verir.Otherwise, it gives you a count of unique values.

Tek veri eşlemesini kullanmak için, eşlemek istediğiniz veri rolünün adını tanımlamalısınız.To use single data mapping, you need to define the name of the data role that you want to map. Bu eşleme tek bir ölçü alanıyla kullanılabilir.This mapping works only with a single measure field. İkinci bir alan atandıysa hiçbir veri görünümü oluşturulmaz; bu nedenle verileri tek alanla sınırlayan bir koşul eklemek iyi bir yaklaşım olacaktır.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.

Not

Bu veri eşlemesi diğer hiçbir veri eşlemesiyle birlikte kullanılamaz.This data mapping can't be used in conjunction with any other data mapping. Verileri tek bir sayısal değere düşürmek için tasarlanmıştır.It's meant to reduce data into a single numeric value.

Örnek 3Example 3

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

Yine de sonuçta elde edilen veri eşlemesi diğer türleri (tablo, kategorik vb.) içerir ama her eşlemede tek bir değer bulunur.The resulting data view still contains the other types (table, categorical, and so on), but each mapping contains only the single value. En iyi yöntem değere tek bir öğe olarak erişmektir.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
            }
        }
    ]
}

Basit veri görünümü eşlemeyi işlemek için kod örneğiCode 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();
    }
}

Sonuç olarak görsel Power BI'dan tek bir değer görüntüler:As a result the visual displays a single value from Power BI:

Tek değer görünümü eşleme görseli örneği

Kategorik veri eşlemesiCategorical data mapping

Kategorik veri eşlemesi, bir veya iki bağımsız veri grubunu almak için kullanılır.Categorical data mapping is used to get one or two independent groupings of data.

Örnek 4Example 4

Aşağıda veri rolleri için önceki örnekteki tanım verilmiştir: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"
    }
]

Eşleme şöyledir:Here is the mapping:

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

Bu basit bir örnektir.It's a simple example. "category veri rolümü, category içine sürüklediğim her alanın verileri categorical.categories ile eşlenecek şekilde eşleyin.It reads "Map my category data role so that for every field I drag into category, its data is mapped to categorical.categories. Ayrıca measure veri rolümü de categorical.values ile eşleyin" anlamına gelir.Also map my measure data role to categorical.values."

  • for...in: Bu veri rolündeki tüm öğeleri veri sorgusuna ekleyin.for...in: For all the items in this data role, include them in the data query.
  • bind...to: for...in ile aynı sonucu verir ama veri rolünün tek alan kısıtlaması getiren bir koşulu olmasını bekler.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.

Örnek 5Example 5

Bu örnekte önceki örneğin ilk iki veri rolü kullanılır ve bunlara ek olarak grouping ve measure2 tanımlanır.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"
    }
]

Eşleme şöyledir:Here is the mapping:

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

Kategorik değerlerini eşlemeye yönelik fark aşağıdaki gibidir.Here the difference is in how we are mapping categorical.values. Burada şunu söylüyoruz: "measure ve measure2 veri rollerimi, grouping veri rolüne göre gruplandırılacak şekilde eşleyin."We are saying that "Map my measure and measure2 data roles to be grouped by the data role grouping."

Örnek 6Example 6

Veri rolleri şöyledir:Here are the data roles:

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

Veri görünümü eşlemesi şöyledir:Here is the data view mapping:

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

Kategorik veri görünümü şu şekilde görselleştirilebilir:The categorical data view could be visualized like this:

ÜlkeCountry 20132013 20142014 20152015 20162016
ABDUSA xx xx 650650 350350
KanadaCanada xx 630630 490490 xx
MeksikaMexico 645645 xx xx xx
Birleşik KrallıkUK xx xx 831831 xx

Power BI bunu kategorik veri görünümü olarak oluşturur.Power BI produces it as the categorical data view. Kategori kümesidir.It's the set of categories.

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

Her kategori bir değerler kümesiyle de eşlenir.Each category maps to a set of values as well. Bu değerlerin her biri, yıl olan gösterilen bir seriye göre gruplandırılır.Each of these values is grouped by series, which is expressed as years.

Örneğin her values dizisi tek tek yılların verilerini temsil eder.For example, each values array represents data for each year. Ayrıca values dizisinin sırasıyla Kanada, ABD, Birleşik Krallık ve Meksika için 4 değeri vardır: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": [...],
        }
    ]
}

Kategorik veri görünümü eşlemesini işlemeye yönelik kod örneği aşağıda açıklanmıştır.Code sample for processing categorical data view mapping is described below. Örnek Hiyerarşik Country => Year => Value yapısını oluştururThe 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);
    }
}

Görselin sonucu:The result of the visual:

Kategorik veri görünümü eşlemesi içeren görseller

Tablo veri eşlemesiTable data mapping

Tablo veri görünümü basit bir veri eşlemedir.The table data view is a simple data mapping. Temelde, bu, sayısal veri noktalarının toplanabileceği veri noktalarının bir listesidir.Essentially, it's a list of data points, where numeric data points could be aggregated.

Örnek 7Example 7

Verilen yetenekler ile: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"
                        }
                    }
                ]
            }
        }
    }
]

Tablo veri görünümünü aşağıdaki gibi görselleştirebilirsiniz:You can visualize the table data view as the following:

Veri örneği:Data example:

ÜlkeCountry YılYear SalesSales
ABDUSA 20162016 100100
ABDUSA 20152015 5050
KanadaCanada 20152015 200200
KanadaCanada 20152015 5050
MeksikaMexico 20132013 300300
Birleşik KrallıkUK 20142014 150150
ABDUSA 20152015 7575

Veri bağlama:Data binding:

Tablo veri görünümü eşlemesi veri bağlamaları

Power BI verilerinizi tablo veri görünümü olarak gösterir.Power BI displays your data as the table data view. Verilerin sıralı olduğunu varsaymamalısınız.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
            ]
        ]
    }
}

İstenen alanı ve sonra da toplamı seçerek verileri toplayabilirsiniz.You can aggregate the data by selecting the desired field and then selecting sum.

Veri toplama

Tablo veri görünümü eşlemeyi işlemek için kod örneği.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);
        });
    }
}

Görsel stiller dosyası style/visual.less tablonun düzenini içerir: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;
}

Tablo veri görünümü eşlemesi içeren görseller

Matris veri eşlemesiMatrix data mapping

Matris veri eşlemesi, tablo veri eşlemesine benzer ancak satırlar hiyerarşik olarak sunulur.Matrix data mapping is similar to table data mapping, but the rows are presented hierarchically. Veri rolü değerlerden herhangi biri sütun üst bilgisi değeri olarak kullanılabilir.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 hiyerarşik bir veri yapısı oluşturur.Power BI creates a hierarchical data structure. Ağaç hiyerarşisinin kökünde Category veri rolünün Parents sütunundaki veriler ve veri rolü tablosunun Children sütunundaki alt öğeler yer alır.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.

Veri kümesi:Dataset:

Üst öğelerParents Alt öğelerChildren Alt öğenin alt öğeleriGrandchildren SütunlarColumns DeğerlerValues
Üst öğe1Parent1 Alt öğe1Child1 Alt öğenin alt öğesi1Grand child1 Süt1Col1 55
Üst öğe1Parent1 Alt öğe1Child1 Alt öğenin alt öğesi1Grand child1 Süt2Col2 66
Üst öğe1Parent1 Alt öğe1Child1 Alt öğenin alt öğesi2Grand child2 Süt1Col1 77
Üst öğe1Parent1 Alt öğe1Child1 Alt öğenin alt öğesi2Grand child2 Süt2Col2 88
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi3Grand child3 Süt1Col1 55
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi3Grand child3 Süt2Col2 33
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi4Grand child4 Süt1Col1 44
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi4Grand child4 Süt2Col2 99
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi5Grand child5 Süt1Col1 33
Üst öğe1Parent1 Alt öğe2Child2 Alt öğenin alt öğesi5Grand child5 Süt2Col2 55
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi6Grand child6 Süt1Col1 11
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi6Grand child6 Süt2Col2 22
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi7Grand child7 Süt1Col1 77
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi7Grand child7 Süt2Col2 11
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi8Grand child8 Süt1Col1 1010
Üst öğe2Parent2 Alt öğe3Child3 Alt öğenin alt öğesi8Grand child8 Süt2Col2 1313

Power BI’ın temel matris görseli verileri tablo olarak işler.The core matrix visual of Power BI renders the data as a table.

Matris görseli

Görsel veri yapısını aşağıdaki kodda açıklandığı gibi alır (burada yalnızca ilk iki tablo satırı gösterilmiştir):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": [...]
    }
}

Veri azaltma algoritmasıData reduction algorithm

Veri görünümünde alınacak verilerin miktarını belirlemek için bir veri azaltma algoritması uygulayabilirsiniz.To control the amount of data to receive in the data view, you can apply a data reduction algorithm.

Varsayılan olarak tüm Power BI görsellerinde count değerinin 1000 veri noktasına ayarlandığı üst veri azaltma algoritması vardır.By default, all Power BI visuals have the top data reduction algorithm applied with the count set to 1000 data points. Bu ayar, capabilities.json dosyasında aşağıdaki özellikleri ayarlamakla aynı sonucu verir:It's the same as setting the following properties in the capabilities.json file:

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

count değerini 30000’e kadar herhangi bir tamsayı değeriyle değiştirebilirsiniz.You can modify the count value to any integer value up to 30000. R tabanlı Power BI görselleri en fazla 150000 satırı destekleyebilir.R-based Power BI visuals can support up to 150000 rows.

Veri azaltma algoritması türleriData reduction algorithm types

Dört tür veri azaltma algoritması ayarı vardır:There are four types of data reduction algorithm settings:

  • top: Verileri veri kümesinin en üstünden alınan değerlerle sınırlamak istiyorsanız.top: If you want to limit the data to values taken from the top of the dataset. İlk count değerleri veri kümesinden alınacaktır.The top first count values will be taken from the dataset.
  • bottom: Verileri veri kümesinin en altından alınan değerlerle sınırlamak istiyorsanız.bottom: If you want to limit the data to values taken from the bottom of the dataset. Son "count" değerleri veri kümesinden alınacaktır.The last "count" values will be taken from the dataset.
  • sample: Veri kümesini, count öğe sayısıyla sınırlı bir basit örnekleme algoritması ile azaltabilirsiniz.sample: Reduce the dataset by a simple sampling algorithm, limited to a count number of items. Bu, ilk ve son öğelerin dahil olduğu ve aralarında eşit aralıklar olan bir count öğe sayısı olduğu anlamına gelir.It means that the first and last items are included, and a count number of items have equal intervals between them. Örneğin veri kümeniz [0, 1, 2, ... 100] ve count değeri 9 olduğunda, [0, 10, 20 ... 100] değerlerini alırsınız.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: Bir kerede count öğelerini içeren bir window kadar veri öğesi yükler.window: Loads one window of data points at a time containing count elements. Şu anda top ve window eşdeğerdir.Currently, top and window are equivalent. Pencereleme ayarına tam destek sağlamak için çalışıyoruz.We are working toward fully supporting a windowing setting.

Veri azaltma algoritmasının kullanımıData reduction algorithm usage

Veri azaltma algoritması kategorik, tablo veya matris veri görünümü eşlemesinde kullanılabilir.The data reduction algorithm can be used in categorical, table, or matrix data view mapping.

Algoritmayı categories içinde ve/veya kategorik veri eşlemesi için values altındaki group bölümünde ayarlayabilirsiniz.You can set the algorithm into categories and/or group section of values for categorical data mapping.

Örnek 8Example 8

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

Veri azaltma algoritmasını Veri Görünümü eşleme tablosunun rows bölümüne uygulayabilirsiniz.You can apply the data reduction algorithm to the rows section of the Data View mapping table.

Örnek 9Example 9

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

Veri azaltma algoritmasını Veri Görünümü eşleme matrisinin rows ve columns bölümlerine uygulayabilirsiniz.You can apply the data reduction algorithm to the rows and columns sections of the Data View mapping matrix.

Sonraki adımlarNext steps

Power BI görsellerinde veri görünümü eşlemeleri için Detaya Gitme desteği ekleme konusunu okuyun.Read how to add Drill-Down support for data view mappings in Power BI visuals.