Power BI görsellerinde veri görünümü eşlemesini anlama
Bu makalede veri görünümü eşlemesi ele alınmaktadır ve farklı görsel türleri oluşturmak için veri rollerinin nasıl kullanıldığı açıklanmaktadır. Veri rolleri ve farklı dataMappings
türler için koşullu gereksinimlerin nasıl belirtileceğini açıklar.
Her geçerli eşleme bir veri görünümü oluşturur. Belirli koşullar altında birden çok veri eşlemesi sağlayabilirsiniz. Desteklenen eşleme seçenekleri şunlardır:
"dataViewMappings": [
{
"conditions": [ ... ],
"categorical": { ... },
"single": { ... },
"table": { ... },
"matrix": { ... }
}
]
Power BI, veri görünümüne eşlemeyi yalnızca içinde geçerli eşleme de tanımlanıyorsa dataViewMappings
oluşturur.
Başka bir deyişle, categorical
içinde dataViewMappings
tanımlanabilir, ancak veya single
gibi table
diğer eşlemeler tanımlanmayabilir. Bu durumda Power BI tek categorical
eşlemeli bir veri görünümü oluştururken table
diğer eşlemeler tanımsız kalır. Örneğin:
"dataViewMappings": [
{
"categorical": {
"categories": [ ... ],
"values": [ ... ]
},
"metadata": { ... }
}
]
Koşullar
conditions
bölümü, belirli bir veri eşlemesi için kurallar oluşturur. Veriler açıklanan koşul kümelerinden biriyle eşleşiyorsa görsel verileri geçerli olarak kabul eder.
Her alan için en düşük ve en yüksek değeri belirtebilirsiniz. değeri, bu veri rolüne bağlanabilecek alanların sayısını temsil eder.
Not
Koşulda bir veri rolü atlanırsa, herhangi bir sayıda alanı olabilir.
Aşağıdaki örnekte , category
bir veri alanıyla ve iki veri alanıyla measure
sınırlıdır.
"conditions": [
{ "category": { "max": 1 }, "measure": { "max": 2 } },
]
Veri rolü için birden çok koşul da ayarlayabilirsiniz. Bu durumda, koşullardan herhangi biri karşılanırsa veriler geçerli olur.
"conditions": [
{ "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
{ "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]
Önceki örnekte, aşağıdaki iki koşuldan biri gereklidir:
- Tam olarak bir kategori alanı ve tam olarak iki ölçü
- Tam olarak iki kategori ve tam olarak bir ölçü
Tek veri eşleme
Tek veri eşleme, veri eşlemenin en basit biçimidir. Tek bir ölçü alanı kabul eder ve toplamı döndürür. Alan sayısalsa, toplamı döndürür. Aksi takdirde, benzersiz değerlerin sayısını döndürür.
Tek veri eşlemesini kullanmak için eşlemek istediğiniz veri rolünün adını tanımlayın. Bu eşleme yalnızca tek bir ölçü alanıyla çalışır. İkinci bir alan atanırsa veri görünümü oluşturulmaz, bu nedenle verileri tek bir alanla sınırlayan bir koşul eklemek iyi bir uygulamadır.
Not
Bu veri eşlemesi başka hiçbir veri eşlemesiyle birlikte kullanılamaz. Verileri tek bir sayısal değere düşürmeyi amaçlır.
Örneğin:
{
"dataRoles": [
{
"displayName": "Y",
"name": "Y",
"kind": "Measure"
}
],
"dataViewMappings": [
{
"conditions": [
{
"Y": {
"max": 1
}
}
],
"single": {
"role": "Y"
}
}
]
}
Sonuçta elde edilen veri görünümü tablo veya kategorik gibi başka eşleme türlerini de içerebilir, ancak her eşleme yalnızca tek bir değer içerir. En iyi yöntem, değere yalnızca tek eşlemede erişmektir.
{
"dataView": [
{
"metadata": null,
"categorical": null,
"matrix": null,
"table": null,
"tree": null,
"single": {
"value": 94163140.3560001
}
}
]
}
Aşağıdaki kod örneği basit veri görünümleri eşlemesini işler:
"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();
}
}
Önceki kod örneği, Power BI'dan tek bir değerin görüntülenmesine neden olur:
Kategorik veri eşleme
Kategorik veri eşleme, bağımsız gruplamalar veya veri kategorileri almak için kullanılır. Kategoriler, veri eşlemesinde "gruplandırma ölçütü" kullanılarak birlikte de gruplandırılabilir.
Temel kategorik veri eşleme
Aşağıdaki veri rollerini ve eşlemelerini göz önünde bulundurun:
"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" } }
]
}
}
}
Önceki örnekte "içine sürüklediğim category
her alan için verilerimin ile eşlenmesi categorical.categories
için veri rolümü category
eşle" ifadesi yer alır. Ayrıca, veri rolümü measure
ile eşleyin categorical.values
."
- için... in: Bu veri rolündeki tüm öğeleri veri sorgusuna ekler.
- bağlamak... to: Için ile aynı sonucu verir... ancak veri rolünün tek bir alanla kısıtlayan bir koşula sahip olmasını bekler.
Kategorik verileri gruplandırma
Sonraki örnek, önceki örnekle aynı iki veri rolünü kullanır ve ve measure2
adlı grouping
iki veri rolü daha ekler.
"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"
}
}
]
}
}
}
}
]
Bu eşleme ile temel eşleme arasındaki fark, nasıl categorical.values
eşlendiğidir. ve measure2
veri rollerini veri rolüyle grouping
eşlediğinizdemeasure
, x ekseni ve y ekseni uygun şekilde ölçeklendirilebilir.
Hiyerarşik verileri gruplandırma
Sonraki örnekte kategorik veriler, detaya gitme eylemlerini desteklemek için kullanılabilen bir hiyerarşi oluşturmak için kullanılır.
Aşağıdaki örnekte veri rolleri ve eşlemeleri gösterilmektedir:
"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"
}
}
]
}
}
}
}
]
Aşağıdaki kategorik verileri göz önünde bulundurun:
Ülke/Bölge | 2013 | 2014 | 2015 | 2016 |
---|---|---|---|---|
ABD | x | x | 650 | 350 |
Kanada | x | 630 | 490 | x |
Meksika | 645 | x | x | x |
Birleşik Krallık | x | x | 831 | x |
Power BI, aşağıdaki kategori kümesiyle kategorik bir veri görünümü oluşturur.
{
"categorical": {
"categories": [
{
"source": {...},
"values": [
"Canada",
"USA",
"UK",
"Mexico"
],
"identity": [...],
"identityFields": [...],
}
]
}
}
Her category
biri bir kümesine eşler values
. Bunların values
her biri, yıl olarak ifade edilen ile gruplandırılır series
.
Örneğin, her values
dizi bir yılı temsil eder.
Ayrıca her values
dizinin dört değeri vardır: Kanada, ABD, İngiltere ve Meksika.
{
"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": [...],
}
]
}
Aşağıdaki kod örneği kategorik veri görünümü eşlemesini işlemeye yöneliktir. Bu örnek Ülke/Bölge > Yıl > Değeri hiyerarşik yapısını oluşturur.
"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);
}
}
Elde edilen görsel aşağıdadır:
Eşleme tabloları
Tablo veri görünümü temelde sayısal veri noktalarının toplandığı veri noktalarının listesidir.
Örneğin, önceki bölümde aynı verileri kullanın, ancak aşağıdaki özelliklerle:
"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ü şu örnekte olduğu gibi görselleştirin:
Ülke/Bölge | Yıl | Sales |
---|---|---|
ABD | 2016 | 100 |
ABD | 2015 | 50 |
Kanada | 2015 | 200 |
Kanada | 2015 | 50 |
Meksika | 2013 | 300 |
Birleşik Krallık | 2014 | 150 |
ABD | 2015 | 75 |
Veri bağlama:
Power BI verilerinizi tablo veri görünümü olarak görüntüler. Verilerin sıralandığını varsaymayın.
{
"table" : {
"columns": [...],
"rows": [
[
"Canada",
2014,
630
],
[
"Canada",
2015,
490
],
[
"Mexico",
2013,
645
],
[
"UK",
2014,
831
],
[
"USA",
2015,
650
],
[
"USA",
2016,
350
]
]
}
}
Verileri toplamak için istediğiniz alanı seçin ve ardından Topla'yı seçin.
Tablo veri görünümü eşlemesini işlemek için kod örneği.
"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);
});
}
}
Görsel stiller dosyası style/visual.less
, tablonun düzenini içerir:
table {
display: flex;
flex-direction: column;
}
tr, th {
display: flex;
flex: 1;
}
td {
flex: 1;
border: 1px solid black;
}
Sonuçta elde edilen görsel şöyle görünür:
Matris veri eşlemesi
Matris veri eşlemesi tablo veri eşlemesine benzer, ancak satırlar hiyerarşik olarak sunulur. Veri rolü değerlerinden herhangi biri sütun üst bilgisi değeri olarak kullanılabilir.
{
"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"
}
}
]
}
}
}
]
}
Matris verilerinin hiyerarşik yapısı
Power BI hiyerarşik bir veri yapısı oluşturur. Ağaç hiyerarşisinin kökü, veri rolü tablosunun Alt öğeler sütunundaki Category
alt öğelerle birlikte veri rolünün Ebeveynler sütunundaki verileri içerir.
Anlamsal model:
Üst Öğeler | Alt Öğeler | Torun | Sütunlar | Değerler |
---|---|---|---|---|
Üst Öğe1 | Alt Öğe1 | Alt öğe1 | Sütun1 | 5 |
Üst Öğe1 | Alt Öğe1 | Alt öğe1 | Sütun2 | 6 |
Üst Öğe1 | Alt Öğe1 | Alt öğe2 | Sütun1 | 7 |
Üst Öğe1 | Alt Öğe1 | Alt öğe2 | Sütun2 | 8 |
Üst Öğe1 | Alt Öğe2 | Alt öğe3 | Sütun1 | 5 |
Üst Öğe1 | Alt Öğe2 | Alt öğe3 | Sütun2 | 3 |
Üst Öğe1 | Alt Öğe2 | Alt öğe4 | Sütun1 | 4 |
Üst Öğe1 | Alt Öğe2 | Alt öğe4 | Sütun2 | 9 |
Üst Öğe1 | Alt Öğe2 | Büyük çocuk5 | Sütun1 | 3 |
Üst Öğe1 | Alt Öğe2 | Büyük çocuk5 | Sütun2 | 5 |
Üst Öğe2 | Alt Öğe3 | Alt öğe6 | Sütun1 | 1 |
Üst Öğe2 | Alt Öğe3 | Alt öğe6 | Sütun2 | 2 |
Üst Öğe2 | Alt Öğe3 | Alt öğe7 | Sütun1 | 7 |
Üst Öğe2 | Alt Öğe3 | Alt öğe7 | Sütun2 | 1 |
Üst Öğe2 | Alt Öğe3 | Büyük çocuk8 | Sütun1 | 10 |
Üst Öğe2 | Alt Öğe3 | Büyük çocuk8 | Sütun2 | 13 |
Power BI'ın temel matris görseli verileri tablo olarak işler.
Görsel, veri yapısını aşağıdaki kodda açıklandığı gibi alır (burada yalnızca ilk iki tablo satırı gösterilir):
{
"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": [...]
}
}
Satır üst bilgilerini genişletme ve daraltma
API 4.1.0 veya üzeri için matris verileri satır üst bilgilerini genişletmeyi ve daraltma işlemini destekler. API 4.2'den tüm düzeyi program aracılığıyla genişletebilir/daraltabilirsiniz. Genişletme ve daraltma özelliği, kullanıcının bir sonraki düzey için tüm verileri getirmeden bir satırı genişletmesine veya daraltmasına izin vererek dataView'a veri getirmeyi iyileştirir. Yalnızca seçili satırın verilerini getirir. Satır üst bilgisinin genişletme durumu yer işaretleri ve hatta kaydedilmiş raporlar arasında tutarlı kalır. Her görsele özgü değildir.
Genişletme ve daralt komutları, yöntemine parametresini sağlayarak dataRoles
bağlam menüsüne showContextMenu
eklenebilir.
Çok sayıda veri noktası genişletmek için genişlet/daralt API'siyle daha fazla veri getirme API'sini kullanın.
API özellikleri
Satır üst bilgilerinin genişletilmesi ve daraltılması için API sürüm 4.1.0'a aşağıdaki öğeler eklenmiştir:
içindeki
isCollapsed
DataViewTreeNode
bayrağı:interface DataViewTreeNode { //... /** * TRUE if the node is Collapsed * FALSE if it is Expanded * Undefined if it cannot be Expanded (e.g. subtotal) */ isCollapsed?: boolean; }
toggleExpandCollapse
ArabirimindekiISelectionManger
yöntemi: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 //... }
canBeExpanded
DataViewHierarchyLevel içindeki bayrak:interface DataViewHierarchyLevel { //... /** If TRUE, this level can be expanded/collapsed */ canBeExpanded?: boolean; }
Görsel gereksinimler
Matris veri görünümünü kullanarak görselde genişletme daraltma özelliğini etkinleştirmek için:
capabilities.json dosyasına aşağıdaki kodu ekleyin:
"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 } },
Rollerin detaylanabilir olduğunu onaylayın:
"drilldown": { "roles": ["Rows"] },
Her düğüm için, seçilen düğüm hiyerarşi düzeyinde yöntemini çağırarak
withMatrixNode
ve bir oluşturarak seçim oluşturucusunun birselectionId
örneğini oluşturun. Örneğin: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();
Seçim yöneticisinin bir örneğini oluşturun ve yöntemini, seçili düğüm için oluşturduğunuz parametresiyle
selectionId
kullanınselectionManager.toggleExpandCollapse()
. Örneğin:// handle click events to apply expand\collapse action for the selected node button.addEventListener("click", () => { this.selectionManager.toggleExpandCollapse(nodeSelectionId); });
Not
- Seçili düğüm bir satır düğümü değilse PowerBI genişletme ve daraltma çağrılarını yoksayar ve genişletme ve daralt komutları bağlam menüsünden kaldırılır.
dataRoles
parametresi yalnızca görsel veya özellikleri destekliyorsadrilldown
expandCollapse
yöntemi içinshowContextMenu
gereklidir. Görsel bu özellikleri destekliyorsa ancak dataRoles sağlanmadıysa, geliştirici görseli kullanılırken veya hata ayıklama modu etkin bir genel görselde hata ayıklanırken konsola bir hata verilir.
Dikkat edilecekler ve sınırlamalar
- Bir düğümü genişletdikten sonra DataView'a yeni veri sınırları uygulanır. Yeni DataView, önceki DataView'da sunulan düğümlerden bazılarını içermeyebilir.
- Genişletme veya daraltma kullanılırken, görsel bunları istemese bile toplamlar eklenir.
- Sütunları genişletme ve daraltma desteklenmez.
Tüm meta veri sütunlarını koru
API 5.1.0 veya üzeri için tüm meta veri sütunlarının tutulması desteklenir. Bu özellik, görselin etkin projeksiyonları ne olursa olsun tüm sütunların meta verilerini almasını sağlar.
capabilities.json dosyanıza aşağıdaki satırları ekleyin:
"keepAllMetadataColumns": {
"type": "boolean",
"description": "Indicates that visual is going to receive all metadata columns, no matter what the active projections are"
}
Bu özelliğin olarak true
ayarlanması, daraltılmış sütunlardan da dahil olmak üzere tüm meta verilerin alınmasına neden olur. Bu ayarın false
olarak ayarlanması veya tanımsız bırakılması, meta verilerin yalnızca etkin projeksiyonlara sahip sütunlarda alınmasına neden olur (örneğin, genişletilmiş).
Veri azaltma algoritması
Veri azaltma algoritması, veri görünümünde hangi verileri ve ne kadar veri alınıp alınanı denetler.
Sayı, veri görünümünün kabul edebildiği en fazla değer sayısına ayarlanır. Sayı değerlerinden daha fazlası varsa, veri azaltma algoritması hangi değerlerin alınması gerektiğini belirler.
Veri azaltma algoritması türleri
Dört tür veri azaltma algoritması ayarı vardır:
top
: İlk sayı değerleri anlamsal modelden alınır.bottom
: Son sayı değerleri anlamsal modelden alınır.sample
: İlk ve son öğeler dahil edilir ve aralarında eşit aralıklara sahip öğe sayısını sayar . Örneğin, bir anlam modeliniz varsa [0, 1, 2, ... 100] ve 9 sayısıyla [0, 10, 20 ... 100].window
: Sayı öğelerini içeren bir kerede bir veri noktası penceresi yükler.top
Şu anda vewindow
eşdeğerdir. Gelecekte bir pencereleme ayarı tam olarak desteklenecektir.
Varsayılan olarak, tüm Power BI görsellerinde en yüksek veri azaltma algoritması uygulanır ve sayı 1000 veri noktasına ayarlanır. Bu varsayılan, capabilities.json dosyasında aşağıdaki özellikleri ayarlamakla eşdeğerdir:
"dataReductionAlgorithm": {
"top": {
"count": 1000
}
}
Sayı değerini 30000'e kadar herhangi bir tamsayı değeriyle değiştirebilirsiniz. R tabanlı Power BI görselleri en fazla 150000 satırı destekleyebilir.
Veri azaltma algoritması kullanımı
Veri azaltma algoritması kategorik, tablo veya matris veri görünümü eşlemesinde kullanılabilir.
Kategorik veri eşlemesinde, kategorik veri eşlemesi için algoritmayı öğesinin values
"kategoriler" ve/veya "grup" bölümüne ekleyebilirsiniz.
"dataViewMappings": {
"categorical": {
"categories": {
"for": { "in": "category" },
"dataReductionAlgorithm": {
"window": {
"count": 300
}
}
},
"values": {
"group": {
"by": "series",
"select": [{
"for": {
"in": "measure"
}
}
],
"dataReductionAlgorithm": {
"top": {
"count": 100
}
}
}
}
}
}
Tablo veri görünümü eşlemesinde veri azaltma algoritmasını rows
Veri Görünümü eşleme tablosunun bölümüne uygulayın.
"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.