Power BI ビジュアルでのデータ ビューのマッピングについて理解するUnderstand data view mapping in Power BI visuals

この記事ではデータ ビュー マッピングについて説明します。データ ロールが相互にどのように関連しているか、またデータ ロールで、条件付き要件を指定できるようにするにはどうすればよいかについても説明します。This article discusses data view mapping and describes how data roles relate to each other and allow you to specify conditional requirements for them. この記事では、dataMappings の各種類についても説明します。The article also describes each dataMappings type.

有効なマッピングごとにデータ ビューが生成されますが、現在はビジュアルごとに 1 つのクエリを実行することしかサポートされていません。Each valid mapping produces a data view, but we currently support performing only one query per visual. 通常、取得できるデータ ビューは 1 つだけです。You ordinarily get only one data view. ただし、次のような特定の条件では複数のデータ マッピングを実現できます。However, you can provide multiple data mappings in certain conditions, which allow:

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

Power BI では、dataViewMappings に有効なマッピングが指定されている場合にのみ、データ ビューへのマッピングが作成されます。Power BI creates a mapping to a data view if and only if the valid mapping is filled in dataViewMappings.

つまり、dataViewMappings に定義されるものも (categorical) あれば、定義されないものも (tablesingle などの他のマッピング) あります。In other words, categorical might be defined in dataViewMappings but other mappings, such as table or single, might not be. 例:For example:

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

Power BI では、単一の categorical マッピングを使用してデータビューが生成され、table およびその他のマッピングは未定義になります。Power BI produces a data view with a single categorical mapping, and table and other mappings are undefined:

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

条件Conditions

このセクションでは、特定のデータ マッピングに対する条件について説明します。This section describes conditions for a particular data mapping. 複数の条件セットを指定できます。記述されている条件セットのいずれかにデータが一致した場合、ビジュアルによってデータが有効なものとして受け入れられます。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.

現時点では、フィールドごとに最小値と最大値を指定できます。Currently, for each field, you can specify a minimum and maximum value. この値は、そのデータ ロールにバインドできるフィールドの数を表します。The value represents the number of fields that can be bound to that data role.

注意

条件でデータ ロールが省略されている場合は、任意の数のフィールドを持つことができます。If a data role is omitted in the condition, it can have any number of fields.

例 1Example 1

各データ ロールに複数のフィールドをドラッグできます。You can drag multiple fields into each data role. この例では、category を 1 つのデータ フィールドに制限し、measure を 2 つのデータ フィールドに制限します。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 } },
]

例 2Example 2

この例では、次の 2 つの条件のいずれかが必要です。In this example, either of two conditions is required:

  • 正確に 1 つの category データ フィールドと正確に 2 つの measureExactly one category data field and exactly two measures
  • 正確に 2 つの category と正確に 1 つの measure。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 } }
]

単一のデータ マッピングSingle data mapping

単一のデータ マッピングは、最も単純な形式のデータ マッピングです。Single data mapping is the simplest form of data mapping. 1 つの measure フィールドを受け取り、合計を返します。It accepts a single measure field and gives you the total. フィールドが数値の場合、合計が返されます。If the field is numeric, it gives you the sum. それ以外の場合は、一意の値の数が返されます。Otherwise, it gives you a count of unique values.

単一のデータ マッピングを使用するには、マップするデータ ロールの名前を定義する必要があります。To use single data mapping, you need to define the name of the data role that you want to map. このマッピングは、1 つの measure フィールドに対してのみ機能します。This mapping works only with a single measure field. 2 番目のフィールドが割り当てられている場合は、データ ビューは生成されません。そのため、データを 1 つのフィールドに制限する条件を含めることをお勧めします。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.

注意

このデータ マッピングは、他のどのデータ マッピングとも組み合わせて使用することはできません。This data mapping can't be used in conjunction with any other data mapping. データを 1 つの数値に減らすことを目的としています。It's meant to reduce data into a single numeric value.

例 3Example 3

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

結果のデータ ビューには引き続き他の種類 (テーブル、カテゴリなど) も含まれますが、各マッピングには single 値しか含まれていません。The resulting data view still contains the other types (table, categorical, and so on), but each mapping contains only the single value. single 内の値にのみアクセスすることをお勧めします。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
            }
        }
    ]
}

単純なデータ ビューのマッピングを処理するコード サンプルCode 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();
    }
}

結果として、ビジュアルには Power BI の 1 つの値が表示されます。As a result the visual displays a single value from Power BI:

単一の dataview マッピング ビジュアルの例

カテゴリ別のデータ マッピングCategorical data mapping

カテゴリ別のデータ マッピングは、1 つまたは 2 つの独立したデータ グループを取得するために使用されます。Categorical data mapping is used to get one or two independent groupings of data.

例 4Example 4

データ ロールに関する前の例の定義を次に示します。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"
    }
]

マッピングは次のようになります。Here is the mapping:

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

これはシンプルな例です。It's a simple example. これは次のように読み取れます。"どのフィールドでも category にドラッグすると、そのデータが categorical.categories にマップされるように、category データ ロールをマップします。It reads "Map my category data role so that for every field I drag into category, its data is mapped to categorical.categories. また、自分の measure データ ロールを categorical.values にマップします。"Also map my measure data role to categorical.values."

  • for...in: このデータ ロール内のすべての項目について、それらをデータ クエリに含めます。for...in: For all the items in this data role, include them in the data query.
  • bind...to: for...in と同じ結果が生成されますが、それを 1 つのフィールドに制限する条件をデータ ロールが持つことが想定されています。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.

例 5Example 5

この例では、前の例の最初の 2 つのデータ ロールを使用し、さらに groupingmeasure2 を定義します。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"
    }
]

マッピングは次のようになります。Here is the mapping:

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

ここでの違いは、categorical.values をどのようにマップするかという点です。Here the difference is in how we are mapping categorical.values. ここでは、「measure および measure2 のデータ ロールを、データ ロール grouping によってグループ化されるようにマップします」ということを示しています。We are saying that "Map my measure and measure2 data roles to be grouped by the data role grouping."

例 6Example 6

データ ロールを次に示します。Here are the data roles:

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

データ ビュー マッピングは次のとおりです。Here is the data view mapping:

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

カテゴリ別のデータ ビューは次のように視覚化できます。The categorical data view could be visualized like this:

Country 20132013 20142014 20152015 20162016
米国USA xx xx 650650 350350
CanadaCanada xx 630630 490490 xx
メキシコMexico 645645 xx xx xx
英国UK xx xx 831831 xx

Power BI では、それがカテゴリ別のデータ ビューとして作成されます。Power BI produces it as the categorical data view. これはカテゴリのセットです。It's the set of categories.

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

各カテゴリは値のセットにもマップされます。Each category maps to a set of values as well. これらの値はそれぞれ系列 (年で表現される) でグループ化されます。Each of these values is grouped by series, which is expressed as years.

たとえば、各 values 配列は各年のデータを表します。For example, each values array represents data for each year. また、各 values 配列には、それぞれカナダ、米国、英国、およびメキシコの 4 つの値があります。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": [...],
        }
    ]
}

カテゴリ データ ビューのマッピングを処理するコード サンプルを以下に示します。Code sample for processing categorical data view mapping is described below. このサンプルでは、階層構造 Country => Year => Value を作成します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);
    }
}

ビジュアルの結果:The result of the visual:

カテゴリ データ ビューのマッピングがあるビジュアル

テーブルのデータ マッピングTable data mapping

テーブルのデータ ビューは、単純なデータ マッピングです。The table data view is a simple data mapping. 基本的には、これは数値データ ポイントを集計できるデータ ポイントの一覧です。Essentially, it's a list of data points, where numeric data points could be aggregated.

例 7Example 7

特定の機能を指定: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"
                        }
                    }
                ]
            }
        }
    }
]

テーブルのデータ ビューは、次のように視覚化できます。You can visualize the table data view as the following:

データの例:Data example:

Country YearYear SalesSales
米国USA 20162016 100100
米国USA 20152015 5050
CanadaCanada 20152015 200200
CanadaCanada 20152015 5050
メキシコMexico 20132013 300300
英国UK 20142014 150150
米国USA 20152015 7575

データ バインド:Data binding:

テーブル データ ビューのマッピングのデータ バインド

Power BI では、ご利用のデータはテーブル データ ビューとして表示されます。Power BI displays your data as the table data view. データが順序付けられていると想定しないでください。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
            ]
        ]
    }
}

目的のフィールドを選択してから、[合計] を選択することで、データを集計できます。You can aggregate the data by selecting the desired field and then selecting sum.

データの集計

テーブル データ ビューのマッピングを処理するコード サンプルです。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);
        });
    }
}

ビジュアル スタイル ファイル style/visual.less には、テーブルのレイアウトが含まれています。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;
}

テーブル データ ビューのマッピングがあるビジュアル

マトリックスのデータ マッピングMatrix data mapping

マトリックスのデータ マッピングはテーブルのデータ マッピングに似ていますが、行が階層的に表示されます。Matrix data mapping is similar to table data mapping, but the rows are presented hierarchically. データ ロール値はいずれも列ヘッダー値として使用することができます。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 によって階層データ構造が作成されます。Power BI creates a hierarchical data structure. ツリー階層のルートには、Category データ ロールの [親] 列からのデータと、データ ロール テーブルの [子] 列からの子が含まれます。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:

ParentsParents ChildrenChildren Grandchildren [列]Columns Values
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

Power BI のコア マトリックス ビジュアルでは、データがテーブルとしてレンダリングされます。The core matrix visual of Power BI renders the data as a table.

マトリックス ビジュアル

このビジュアルでは、次のコードに記述されているようにそのデータ構造が取得されます (ここでは、最初の 2 つのテーブル行のみを表示しています)。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": [...]
    }
}

データの削減アルゴリズムData reduction algorithm

データ ビューで受信するデータの量を制御するには、データの削減アルゴリズムを適用します。To control the amount of data to receive in the data view, you can apply a data reduction algorithm.

既定では、すべての Power BI ビジュアルには、count が 1000 個のデータ ポイントに設定された先頭データ削減アルゴリズムが適用されます。By default, all Power BI visuals have the top data reduction algorithm applied with the count set to 1000 data points. これは capabilities.json ファイル内の次のプロパティを設定することと同じです。It's the same as setting the following properties in the capabilities.json file:

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

count 値は 30000 までの任意の整数値に変更できます。You can modify the count value to any integer value up to 30000. R ベースの Power BI ビジュアルでは、最大 150000 行をサポートできます。R-based Power BI visuals can support up to 150000 rows.

データの削減アルゴリズムの種類Data reduction algorithm types

データの削減アルゴリズムの設定には、次の 4 種類があります。There are four types of data reduction algorithm settings:

  • top: データセットの先頭から取得した値にデータを制限する場合。top: If you want to limit the data to values taken from the top of the dataset. 先頭から count 個の値がデータセットから取得されます。The top first count values will be taken from the dataset.
  • bottom: データセットの末尾から取得した値にデータを制限する場合。bottom: If you want to limit the data to values taken from the bottom of the dataset. 末尾から "count" 個の値がデータセットから取得されます。The last "count" values will be taken from the dataset.
  • sample: count 個の項目に制限されたシンプルなサンプリング アルゴリズムによってデータセットを減らします。sample: Reduce the dataset by a simple sampling algorithm, limited to a count number of items. これは、最初と最後の項目と、それらの間にある等間隔の count 個の項目が含まれることを意味します。It means that the first and last items are included, and a count number of items have equal intervals between them. たとえば、データ セット [0, 1, 2,...100] をお持ちで、count が 9 である場合、値 [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: count 個の要素を含む、ある時点のデータ ポイントの 1 つの window を読み込みます。window: Loads one window of data points at a time containing count elements. 現時点では、topwindow は同等です。Currently, top and window are equivalent. ウィンドウ設定を完全にサポートするための取り組みを進めています。We are working toward fully supporting a windowing setting.

データの削減アルゴリズムの使用Data reduction algorithm usage

データの削減アルゴリズムは、カテゴリ別、テーブル、またはマトリックスのデータ ビュー マッピングで使用できます。The data reduction algorithm can be used in categorical, table, or matrix data view mapping.

このアルゴリズムは、categories または values のグループ セクション (カテゴリ別のデータ マッピングに対して) に設定できます。You can set the algorithm into categories and/or group section of values for categorical data mapping.

例 8Example 8

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

データの削減アルゴリズムは、データ ビュー マッピング テーブルの rows セクションに適用できます。You can apply the data reduction algorithm to the rows section of the Data View mapping table.

例 9Example 9

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

データの削減アルゴリズムは、データ ビュー マッピング マトリックスの rows セクションおよび columns セクションに適用できます。You can apply the data reduction algorithm to the rows and columns sections of the Data View mapping matrix.

次のステップNext steps

Power BI ビジュアルでデータ ビュー マッピングのドリルダウン サポートを追加する方法を確認します。Read how to add Drill-Down support for data view mappings in Power BI visuals.