Memahami pemetaan tampilan data dalam visual Power BI
Artikel ini membahas pemetaan tampilan data dan menjelaskan bagaimana peran data digunakan untuk membuat berbagai jenis visual. Ini menjelaskan cara menentukan persyaratan bersyarah untuk peran data dan berbagai dataMappings
jenis.
Setiap pemetaan yang valid menghasilkan tampilan data. Anda dapat menyediakan beberapa pemetaan data dalam kondisi tertentu. Opsi pemetaan yang didukung adalah:
"dataViewMappings": [
{
"conditions": [ ... ],
"categorical": { ... },
"single": { ... },
"table": { ... },
"matrix": { ... }
}
]
Power BI membuat pemetaan ke tampilan data hanya jika pemetaan yang valid juga ditentukan dalam dataViewMappings
.
Dengan kata lain, categorical
mungkin didefinisikan dalam dataViewMappings
tetapi pemetaan lain, seperti table
atau single
, mungkin tidak. Dalam hal ini, Power BI menghasilkan tampilan data dengan satu categorical
pemetaan, sementara table
dan pemetaan lainnya tetap tidak terdefinisi. Contohnya:
"dataViewMappings": [
{
"categorical": {
"categories": [ ... ],
"values": [ ... ]
},
"metadata": { ... }
}
]
Kondisi
Bagian conditions
ini menetapkan aturan untuk pemetaan data tertentu. Jika data cocok dengan salah satu kumpulan kondisi yang dijelaskan, visual menerima data sebagai valid.
Untuk setiap bidang, Anda dapat menentukan nilai minimum dan maksimum. Nilai mewakili jumlah bidang yang dapat terikat ke peran data tersebut.
Catatan
Jika peran data dihilangkan dalam kondisi tersebut, peran tersebut dapat memiliki sejumlah bidang.
Dalam contoh berikut, terbatas pada category
satu bidang data dan terbatas pada measure
dua bidang data.
"conditions": [
{ "category": { "max": 1 }, "measure": { "max": 2 } },
]
Anda juga dapat mengatur beberapa kondisi untuk peran data. Dalam hal ini, data valid jika salah satu kondisi terpenuhi.
"conditions": [
{ "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
{ "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]
Dalam contoh sebelumnya, salah satu dari dua kondisi berikut diperlukan:
- Tepat satu bidang kategori dan tepat dua ukuran
- Tepat dua kategori dan tepat satu ukuran
Pemetaan data tunggal
Pemetaan data tunggal adalah bentuk pemetaan data yang paling sederhana. Ini menerima bidang pengukuran tunggal dan mengembalikan total. Jika bidang numerik, bidang akan mengembalikan jumlah. Jika tidak, ia mengembalikan hitungan nilai unik.
Untuk menggunakan pemetaan data tunggal, tentukan nama peran data yang ingin Anda petakan. Pemetaan ini hanya berfungsi dengan satu bidang pengukuran. Jika bidang kedua ditetapkan, tidak ada tampilan data yang dihasilkan, jadi ada baiknya untuk menyertakan kondisi yang membatasi data ke satu bidang.
Catatan
Pemetaan data ini tidak dapat digunakan bersama dengan pemetaan data lainnya. Ini dimaksudkan untuk mengurangi data ke satu nilai numerik.
Contohnya:
{
"dataRoles": [
{
"displayName": "Y",
"name": "Y",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"conditions": [
{
"Y": {
"max": 1
}
}
],
"single": {
"role": "Y"
}
}
]
}
Tampilan data yang dihasilkan masih dapat berisi jenis pemetaan lain, seperti tabel atau kategoris, tetapi setiap pemetaan hanya berisi nilai tunggal. Praktik terbaik adalah mengakses nilai hanya dalam pemetaan tunggal.
{
"dataView": [
{
"metadata": null,
"categorical": null,
"matrix": null,
"table": null,
"tree": null,
"single": {
"value": 94163140.3560001
}
}
]
}
Sampel kode berikut memproses pemetaan tampilan data sederhana:
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewSingle = powerbi.DataViewSingle;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private valueText: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.valueText = document.createElement("p");
this.target.appendChild(this.valueText);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const singleDataView: DataViewSingle = dataView.single;
if (!singleDataView ||
!singleDataView.value ) {
return
}
this.valueText.innerText = singleDataView.value.toString();
}
}
Sampel kode sebelumnya menghasilkan tampilan satu nilai dari Power BI:
Pemetaan data kategoris
Pemetaan data kategoris digunakan untuk mendapatkan pengelompokan independen atau kategori data. Kategori juga dapat dikelompokkan bersama dengan menggunakan "kelompokkan menurut" dalam pemetaan data.
Pemetaan data kategoris dasar
Pertimbangkan peran dan pemetaan data berikut:
"dataRoles":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
}
],
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" }
},
"values": {
"select": [
{ "bind": { "to": "measure" } }
]
}
}
}
Contoh sebelumnya berbunyi "Petakan peran data saya category
sehingga untuk setiap bidang yang saya seret ke category
, datanya dipetakan ke categorical.categories
. Selain itu, petakan peran data measure
saya ke categorical.values
."
- Untuk... di: Menyertakan semua item dalam peran data ini dalam kueri data.
- Mengikat... ke: Menghasilkan hasil yang sama seperti untuk... dalam tetapi mengharapkan peran data memiliki kondisi yang membatasinya ke satu bidang.
Mengelompokkan data kategoris
Contoh berikutnya menggunakan dua peran data yang sama dengan contoh sebelumnya dan menambahkan dua peran data lagi bernama grouping
dan measure2
.
"dataRoles":[
{
"displayName": "Category",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Y Axis",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Grouping with",
"name": "grouping",
"kind": "Grouping"
},
{
"displayName": "X Axis",
"name": "measure2",
"kind": "Grouping"
}
],
"dataViewMappings": [
{
"categorical": {
"categories": {
"for": {
"in": "category"
}
},
"values": {
"group": {
"by": "grouping",
"select": [{
"bind": {
"to": "measure"
}
},
{
"bind": {
"to": "measure2"
}
}
]
}
}
}
}
]
Perbedaan antara pemetaan ini dan pemetaan dasar adalah bagaimana categorical.values
dipetakan. Saat Anda memetakan measure
peran data dan measure2
ke peran grouping
data, sumbu x dan sumbu y dapat diskalakan dengan tepat.
Mengelompokkan data hierarkis
Dalam contoh berikutnya, data kategoris digunakan untuk membuat hierarki, yang dapat digunakan untuk mendukung tindakan telusuri paling detail .
Contoh berikut menunjukkan peran dan pemetaan data:
"dataRoles": [
{
"displayName": "Categories",
"name": "category",
"kind": "Grouping"
},
{
"displayName": "Measures",
"name": "measure",
"kind": "Measure"
},
{
"displayName": "Series",
"name": "series",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"categorical": {
"categories": {
"for": {
"in": "category"
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
]
}
}
}
}
]
Pertimbangkan data kategoris berikut:
Negara/Wilayah | 2013 | 2014 | 2015 | 2016 |
---|---|---|---|---|
AS | x | x | 650 | 350 |
Kanada | x | 630 | 490 | x |
Meksiko | 645 | x | x | x |
Inggris | x | x | 831 | x |
Power BI menghasilkan tampilan data kategoris dengan serangkaian kategori berikut.
{
"categorical": {
"categories": [
{
"source": {...},
"values": [
"Canada",
"USA",
"UK",
"Mexico"
],
"identity": [...],
"identityFields": [...],
}
]
}
}
Setiap category
peta ke satu set values
. Masing-masing values
dikelompokkan menurut series
, yang dinyatakan sebagai tahun.
Misalnya, setiap array values
mewakili satu tahun.
Selain itu, setiap values
array memiliki empat nilai: Kanada, AS, Inggris, dan Meksiko.
{
"values": [
// Values for year 2013
{
"source": {...},
"values": [
null, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
645 // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2014
{
"source": {...},
"values": [
630, // Value for `Canada` category
null, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2015
{
"source": {...},
"values": [
490, // Value for `Canada` category
650, // Value for `USA` category
831, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
},
// Values for year 2016
{
"source": {...},
"values": [
null, // Value for `Canada` category
350, // Value for `USA` category
null, // Value for `UK` category
null // Value for `Mexico` category
],
"identity": [...],
}
]
}
Sampel kode berikut adalah untuk memproses pemetaan tampilan data kategoris. Sampel ini membuat struktur hierarkis Nilai Tahun > Negara/Wilayah>.
"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewCategorical = powerbi.DataViewCategorical;
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private categories: HTMLElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.categories = document.createElement("pre");
this.target.appendChild(this.categories);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const categoricalDataView: DataViewCategorical = dataView.categorical;
if (!categoricalDataView ||
!categoricalDataView.categories ||
!categoricalDataView.categories[0] ||
!categoricalDataView.values) {
return;
}
// Categories have only one column in data buckets
// To support several columns of categories data bucket, iterate categoricalDataView.categories array.
const categoryFieldIndex = 0;
// Measure has only one column in data buckets.
// To support several columns on data bucket, iterate years.values array in map function
const measureFieldIndex = 0;
let categories: PrimitiveValue[] = categoricalDataView.categories[categoryFieldIndex].values;
let values: DataViewValueColumnGroup[] = categoricalDataView.values.grouped();
let data = {};
// iterate categories/countries-regions
categories.map((category: PrimitiveValue, categoryIndex: number) => {
data[category.toString()] = {};
// iterate series/years
values.map((years: DataViewValueColumnGroup) => {
if (!data[category.toString()][years.name] && years.values[measureFieldIndex].values[categoryIndex]) {
data[category.toString()][years.name] = []
}
if (years.values[0].values[categoryIndex]) {
data[category.toString()][years.name].push(years.values[measureFieldIndex].values[categoryIndex]);
}
});
});
this.categories.innerText = JSON.stringify(data, null, 6);
console.log(data);
}
}
Berikut adalah visual yang dihasilkan:
Tabel pemetaan
Tampilan data tabel pada dasarnya adalah daftar titik data tempat titik data numerik dapat diagregasi.
Misalnya, gunakan data yang sama di bagian sebelumnya, tetapi dengan kemampuan berikut:
"dataRoles": [
{
"displayName": "Column",
"name": "column",
"kind": "Grouping"
},
{
"displayName": "Value",
"name": "value",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"table": {
"rows": {
"select": [
{
"for": {
"in": "column"
}
},
{
"for": {
"in": "value"
}
}
]
}
}
}
]
Visualisasikan tampilan data tabel seperti contoh ini:
Negara/Wilayah | Tahun | Sales |
---|---|---|
AS | 2016 | 100 |
AS | 2015 | 50 |
Kanada | 2015 | 200 |
Kanada | 2015 | 50 |
Meksiko | 2013 | 300 |
Inggris | 2014 | 150 |
AS | 2015 | 75 |
Pengikatan data:
Power BI menampilkan data Anda sebagai tampilan data tabel. Jangan berasumsi bahwa data diurutkan.
{
"table" : {
"columns": [...],
"rows": [
[
"Canada",
2014,
630
],
[
"Canada",
2015,
490
],
[
"Mexico",
2013,
645
],
[
"UK",
2014,
831
],
[
"USA",
2015,
650
],
[
"USA",
2016,
350
]
]
}
}
Untuk mengagregasi data, pilih bidang yang diinginkan lalu pilih Jumlah.
Sampel kode untuk memproses pemetaan tampilan data tabel.
"use strict";
import "./../style/visual.less";
import powerbi from "powerbi-visuals-api";
// ...
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import DataViewTable = powerbi.DataViewTable;
import DataViewTableRow = powerbi.DataViewTableRow;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...
export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;
private table: HTMLParagraphElement;
constructor(options: VisualConstructorOptions) {
// constructor body
this.target = options.element;
this.host = options.host;
this.table = document.createElement("table");
this.target.appendChild(this.table);
// ...
}
public update(options: VisualUpdateOptions) {
const dataView: DataView = options.dataViews[0];
const tableDataView: DataViewTable = dataView.table;
if (!tableDataView) {
return
}
while(this.table.firstChild) {
this.table.removeChild(this.table.firstChild);
}
//draw header
const tableHeader = document.createElement("th");
tableDataView.columns.forEach((column: DataViewMetadataColumn) => {
const tableHeaderColumn = document.createElement("td");
tableHeaderColumn.innerText = column.displayName
tableHeader.appendChild(tableHeaderColumn);
});
this.table.appendChild(tableHeader);
//draw rows
tableDataView.rows.forEach((row: DataViewTableRow) => {
const tableRow = document.createElement("tr");
row.forEach((columnValue: PrimitiveValue) => {
const cell = document.createElement("td");
cell.innerText = columnValue.toString();
tableRow.appendChild(cell);
})
this.table.appendChild(tableRow);
});
}
}
File style/visual.less
gaya visual berisi tata letak untuk tabel:
table {
display: flex;
flex-direction: column;
}
tr, th {
display: flex;
flex: 1;
}
td {
flex: 1;
border: 1px solid black;
}
Visual yang dihasilkan terlihat seperti ini:
Pemetaan data matriks
Pemetaan data matriks mirip dengan pemetaan data tabel, tetapi baris disajikan secara hierarkis. Salah satu nilai peran data dapat digunakan sebagai nilai header kolom.
{
"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"
}
}
]
}
}
}
]
}
Struktur hierarkis data matriks
Power BI membuat struktur data hierarkis. Akar hierarki pohon menyertakan data dari kolom Orang Tua dari Category
peran data dengan anak-anak dari kolom Anak dari tabel peran data.
Model semantik:
orang tua | Anak | Cucu | Kolom | Nilai |
---|---|---|---|---|
Orangtua1 | Anak1 | Cucu1 | Col1 | 5 |
Orangtua1 | Anak1 | Cucu1 | Col2 | 6 |
Orangtua1 | Anak1 | Cucu2 | Col1 | 7 |
Orangtua1 | Anak1 | Cucu2 | Col2 | 8 |
Orangtua1 | Anak2 | Cucu3 | Col1 | 5 |
Orangtua1 | Anak2 | Cucu3 | Col2 | 3 |
Orangtua1 | Anak2 | Cucu4 | Col1 | 4 |
Orangtua1 | Anak2 | Cucu4 | Col2 | 9 |
Orangtua1 | Anak2 | Cucu5 | Col1 | 3 |
Orangtua1 | Anak2 | Cucu5 | Col2 | 5 |
Orangtua2 | Anak3 | Cucu6 | Col1 | 1 |
Orangtua2 | Anak3 | Cucu6 | Col2 | 2 |
Orangtua2 | Anak3 | Cucu7 | Col1 | 7 |
Orangtua2 | Anak3 | Cucu7 | Col2 | 1 |
Orangtua2 | Anak3 | Cucu8 | Col1 | 10 |
Orangtua2 | Anak3 | Cucu8 | Col2 | 13 |
Visual matriks inti Power BI merender data sebagai tabel.
Visual mendapatkan struktur datanya seperti yang dijelaskan dalam kode berikut (hanya dua baris tabel pertama yang diperlihatkan di sini):
{
"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": [...]
}
}
Memperluas dan menciutkan header baris
Untuk API 4.1.0 atau yang lebih baru, data matriks mendukung perluasan dan ciutkan header baris. Dari API 4.2 Anda dapat memperluas/menciutkan seluruh tingkat secara terprogram. Fitur perluas dan ciutkan mengoptimalkan pengambilan data ke dataView dengan memungkinkan pengguna memperluas atau menciutkan baris tanpa mengambil semua data untuk tingkat berikutnya. Ini hanya mengambil data untuk baris yang dipilih. Status ekspansi header baris tetap konsisten di seluruh marka buku dan bahkan di seluruh laporan yang disimpan. Ini tidak spesifik untuk setiap visual.
Perluas dan ciutkan perintah dapat ditambahkan ke menu konteks dengan menyediakan dataRoles
parameter ke showContextMenu
metode .
Untuk memperluas sejumlah besar titik data, gunakan ambil lebih banyak API data dengan API perluas/ciutkan.
Fitur API
Elemen berikut telah ditambahkan ke API versi 4.1.0 untuk mengaktifkan perluasan dan ciutkan header baris:
Bendera
isCollapsed
diDataViewTreeNode
:interface DataViewTreeNode { //... /** * TRUE if the node is Collapsed * FALSE if it is Expanded * Undefined if it cannot be Expanded (e.g. subtotal) */ isCollapsed?: boolean; }
Metode
toggleExpandCollapse
dalam antarmukaISelectionManger
:interface ISelectionManager { //... showContextMenu(selectionId: ISelectionId, position: IPoint, dataRoles?: string): IPromise<{}>; // dataRoles is the name of the role of the selected data point toggleExpandCollapse(selectionId: ISelectionId, entireLevel?: boolean): IPromise<{}>; // Expand/Collapse an entire level will be available from API 4.2.0 //... }
Bendera
canBeExpanded
di DataViewHierarchyLevel:interface DataViewHierarchyLevel { //... /** If TRUE, this level can be expanded/collapsed */ canBeExpanded?: boolean; }
Persyaratan visual
Untuk mengaktifkan fitur ciutkan perluas pada visual dengan menggunakan tampilan data matriks:
Tambahkan kode berikut ke file capabilities.json:
"expandCollapse": { "roles": ["Rows"], //”Rows” is the name of rows data role "addDataViewFlags": { "defaultValue": true //indicates if the DataViewTreeNode will get the isCollapsed flag by default } },
Konfirmasikan bahwa peran dapat dibor:
"drilldown": { "roles": ["Rows"] },
Untuk setiap simpul, buat instans pembangun pilihan dengan memanggil
withMatrixNode
metode dalam tingkat hierarki simpul yang dipilih dan membuatselectionId
. Contohnya:let nodeSelectionBuilder: ISelectionIdBuilder = visualHost.createSelectionIdBuilder(); // parantNodes is a list of the parents of the selected node. // node is the current node which the selectionId is created for. parentNodes.push(node); for (let i = 0; i < parentNodes.length; i++) { nodeSelectionBuilder = nodeSelectionBuilder.withMatrixNode(parentNodes[i], levels); } const nodeSelectionId: ISelectionId = nodeSelectionBuilder.createSelectionId();
Buat instans manajer pilihan, dan gunakan
selectionManager.toggleExpandCollapse()
metode , dengan parameterselectionId
, yang Anda buat untuk simpul yang dipilih. Contoh:// handle click events to apply expand\collapse action for the selected node button.addEventListener("click", () => { this.selectionManager.toggleExpandCollapse(nodeSelectionId); });
Catatan
- Jika simpul yang dipilih bukan simpul baris, PowerBI akan mengabaikan perluas dan ciutkan panggilan dan perintah perluas dan ciutkan akan dihapus dari menu konteks.
- Parameter
dataRoles
diperlukan untuk metodeshowContextMenu
hanya jika visual mendukung fiturdrilldown
atauexpandCollapse
. Jika visual mendukung fitur-fitur ini tetapi dataRoles tidak disediakan, kesalahan akan dihasilkan ke konsol saat menggunakan visual pengembang atau jika penelusuran kesalahan visual publik dengan mode debug diaktifkan.
Pertimbangan dan batasan
- Setelah Anda memperluas simpul, batas data baru akan diterapkan ke DataView. DataView baru mungkin tidak menyertakan beberapa simpul yang disajikan di DataView sebelumnya.
- Saat menggunakan perluas atau ciutkan, total ditambahkan meskipun visual tidak memintanya.
- Memperluas dan menciutkan kolom tidak didukung.
Pertahankan semua kolom metadata
Untuk API 5.1.0 atau yang lebih baru, menjaga semua kolom metadata didukung. Fitur ini memungkinkan visual untuk menerima metadata untuk semua kolom apa pun proyeksi aktifnya.
Tambahkan baris berikut ke file capabilities.json Anda:
"keepAllMetadataColumns": {
"type": "boolean",
"description": "Indicates that visual is going to receive all metadata columns, no matter what the active projections are"
}
Mengatur properti ini ke true
akan mengakibatkan penerimaan semua metadata, termasuk dari kolom yang diciutkan. Mengaturnya ke false
atau membiarkannya tidak terdefinisi akan mengakibatkan penerimaan metadata hanya pada kolom dengan proyeksi aktif (diperluas, misalnya).
Algoritma pengurangan data
Algoritma pengurangan data mengontrol data mana dan berapa banyak data yang diterima dalam tampilan data.
Hitungan diatur ke jumlah maksimum nilai yang dapat diterima tampilan data. Jika ada lebih dari nilai hitungan, algoritma pengurangan data menentukan nilai mana yang harus diterima.
Jenis algoritma pengurangan data
Ada empat jenis pengaturan algoritma pengurangan data:
top
: Nilai hitungan pertama diambil dari model semantik.bottom
: Nilai hitungan terakhir diambil dari model semantik.sample
: Item pertama dan terakhir disertakan, dan hitung jumlah item dengan interval yang sama di antaranya. Misalnya, jika Anda memiliki model semantik [0, 1, 2, ... 100] dan hitungan 9, Anda menerima nilai [0, 10, 20 ... 100].window
: Memuat satu jendela titik data pada satu waktu yang berisi elemen hitungan. Saat ini,top
danwindow
setara. Di masa mendatang, pengaturan windowing akan didukung sepenuhnya.
Secara default, semua visual Power BI memiliki algoritma pengurangan data teratas yang diterapkan dengan jumlah yang diatur ke 1000 titik data. Default ini setara dengan mengatur properti berikut dalam file capabilities.json :
"dataReductionAlgorithm": {
"top": {
"count": 1000
}
}
Anda dapat mengubah nilai hitungan ke nilai bilangan bulat apa pun hingga 30000. Visual Power BI berbasis R dapat mendukung hingga 150000 baris.
Penggunaan algoritma pengurangan data
Algoritma pengurangan data dapat digunakan dalam pemetaan tampilan data kategoris, tabel, atau matriks.
Dalam pemetaan data kategoris, Anda dapat menambahkan algoritma ke bagian values
"kategori" dan/atau "grup" untuk pemetaan data kategoris.
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" },
"dataReductionAlgorithm": {
"window": {
"count": 300
}
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
],
"dataReductionAlgorithm": {
"top": {
"count": 100
}
}
}
}
}
}
Dalam pemetaan tampilan data tabel, terapkan algoritma pengurangan data ke bagian rows
tabel pemetaan Tampilan Data.
"dataViewMappings": [
{
"table": {
"rows": {
"for": {
"in": "values"
},
"dataReductionAlgorithm": {
"top": {
"count": 2000
}
}
}
}
}
]
Anda dapat menerapkan algoritma pengurangan data ke bagian rows
dan columns
dari matriks pemetaan Tampilan Data.