Načítanie väčšieho zdroja údajov zo služby Power BI
Rozhranie API fetchMoreData umožňuje načítať údajové bloky rôznych veľkostí, čím umožňuje povoliť vizuálom Power BI obísť pevný limit zobrazenia údajov v objeme 30 000 riadkov. Okrem pôvodného prístupu agregovania všetkých požadovaných blokov teraz rozhranie API podporuje aj prírastkové načítavanie údajových blokov.
Môžete nakonfigurovať počet riadkov, ktoré sa majú načítať v určitom čase vopred, alebo môžete použiť dataReductionCustomization
na dynamické nastavenie veľkosti bloku údajov autorom zostavy.
Poznámka
Rozhranie fetchMoreData
API je k dispozícii vo verzii 3.4 a novšej.
Dynamické dataReductionCustomization
rozhranie API je k dispozícii vo verzii 5.2 a novšej.
Ak chcete zistiť, ktorú verziu používate, pozrite si apiVersion
pbiviz.json súbore.
Povolenie segmentovaného načítania veľkých sémantických modelov
Definujte veľkosť okna pre dataReductionAlgorithm
položku v súbore capabilities.json vizuálu pre požadovanú hodnotu dataViewMapping
. Funkcia count
určí veľkosť okna, ktoré obmedzuje počet nových údajových riadkov, ktoré môžete pripojiť k tabuľke dataview
v každej aktualizácii.
Do súboru capabilities.json napríklad pridajte nasledujúci kód, aby ste mohli naraz pripojiť 100 riadkov údajov:
"dataViewMappings": [
{
"table": {
"rows": {
"for": {
"in": "values"
},
"dataReductionAlgorithm": {
"window": {
"count": 100
}
}
}
}
]
Nové segmenty sú pripojené k existujúcim dataview
segmentom a poskytnuté vizuálu update
ako volanie metódy .
Použitie funkcie fetchMoreData vo vizuáli služby Power BI
V službe Power BI môžete fetchMoreData
použiť jeden z dvoch spôsobov:
- režim agregácie segmentov
- režim prírastkových aktualizácií
Režim agregácie segmentov (predvolené)
V režime agregácie segmentov obsahuje zobrazenie údajov, ktoré sa poskytuje vizuálu, súhrnné údaje zo všetkých predchádzajúcich fetchMoreData requests
. Z tohto dôvodu sa veľkosť zobrazenia údajov zväčší pri každej aktualizácii podľa veľkosti okna. Ak sa napríklad očakáva celkový počet riadkov 100 000 a veľkosť okna je nastavená na 10 000, prvé aktualizované zobrazenie údajov by malo obsahovať 10 000 riadkov, druhé aktualizované zobrazenie údajov by malo obsahovať 20 000 riadkov atď.
Vyberte režim agregácie segmentov zavolaním fetchMoreData
s .aggregateSegments = true
Existenciu údajov môžete určiť tak, že skontrolujete, dataView.metadata.segment
či existuje :
public update(options: VisualUpdateOptions) {
const dataView = options.dataViews[0];
console.log(dataView.metadata.segment);
// output: __proto__: Object
}
Môžete tiež skontrolovať a zistiť, či je aktualizácia prvou aktualizáciou alebo následnou aktualizáciou options.operationKind
. V nasledujúcom kóde VisualDataChangeOperationKind.Create
odkazuje na prvý segment a VisualDataChangeOperationKind.Append
odkazuje na nasledujúce segmenty.
// CV update implementation
public update(options: VisualUpdateOptions) {
// indicates this is the first segment of new data.
if (options.operationKind == VisualDataChangeOperationKind.Create) {
}
// on second or subsequent segments:
if (options.operationKind == VisualDataChangeOperationKind.Append) {
}
// complete update implementation
}
Môžete tiež vyvolať metódu fetchMoreData
z obslužného programu udalostí používateľského rozhrania:
btn_click(){
{
// check if more data is expected for the current data view
if (dataView.metadata.segment) {
// request for more data if available; as a response, Power BI will call update method
let request_accepted: bool = this.host.fetchMoreData(true);
// handle rejection
if (!request_accepted) {
// for example, when the 100 MB limit has been reached
}
}
}
V reakcii na volanie this.host.fetchMoreData
metódy služba Power BI vyvolá metódu vizuálu update
s novým segmentom údajov.
Poznámka
Služba Power BI obmedzuje celkové načítané údaje na 100 MB, aby sa predišlo obmedzeniam pamäte klienta. Keď sa dosiahne tento limit, fetchMoreData()
vráti sa hodnota false
.
Režim prírastkových aktualizácií
V režime prírastkových aktualizácií obsahuje zobrazenie údajov, ktoré sa poskytuje vizuálu, iba ďalšiu množinu prírastkových údajov. Veľkosť zobrazenia údajov sa rovná definovanej veľkosti okna (alebo menšej, ak je posledný bit údajov menší ako veľkosť okna). Ak sa napríklad očakáva celkový počet riadkov 101 000 a veľkosť okna je nastavená na 10 000, vizuál získa 10 aktualizácií s veľkosťou zobrazenia údajov 10 000 a jednu aktualizáciu s veľkosťou zobrazenia údajov 1 000.
Režim prírastkových aktualizácií sa vyberie zavolaním fetchMoreData
funkcie pomocou funkcie aggregateSegments = false
.
Existenciu údajov môžete určiť tak, že skontrolujete, dataView.metadata.segment
či existuje :
public update(options: VisualUpdateOptions) {
const dataView = options.dataViews[0];
console.log(dataView.metadata.segment);
// output: __proto__: Object
}
Môžete tiež skontrolovať, či je aktualizácia prvou aktualizáciou alebo následnou aktualizáciou options.operationKind
. V nasledujúcom kóde VisualDataChangeOperationKind.Create
odkazuje na prvý segment a VisualDataChangeOperationKind.Segment
odkazuje na nasledujúce segmenty.
// CV update implementation
public update(options: VisualUpdateOptions) {
// indicates this is the first segment of new data.
if (options.operationKind == VisualDataChangeOperationKind.Create) {
}
// on second or subsequent segments:
if (options.operationKind == VisualDataChangeOperationKind.Segment) {
}
// skip overlapping rows
const rowOffset = (dataView.table['lastMergeIndex'] === undefined) ? 0 : dataView.table['lastMergeIndex'] + 1;
// Process incoming data
for (var i = rowOffset; i < dataView.table.rows.length; i++) {
var val = <number>(dataView.table.rows[i][0]); // Pick first column
}
// complete update implementation
}
Môžete tiež vyvolať metódu fetchMoreData
z obslužného programu udalostí používateľského rozhrania:
btn_click(){
{
// check if more data is expected for the current data view
if (dataView.metadata.segment) {
// request for more data if available; as a response, Power BI will call update method
let request_accepted: bool = this.host.fetchMoreData(false);
// handle rejection
if (!request_accepted) {
// for example, when the 100 MB limit has been reached
}
}
}
V reakcii na volanie this.host.fetchMoreData
metódy služba Power BI vyvolá metódu vizuálu update
s novým segmentom údajov.
Poznámka
Napriek tomu, že údaje v rôznych aktualizáciách zobrazení údajov sú väčšinou exkluzívne, medzi po sebe nasledujúcimi zobrazeniami údajov sa čiastočne prekrývajú.
V prípade priradenia tabuľkových a kategorických údajov sa dá očakávať, že prvé N
riadky zobrazenia údajov obsahujú údaje skopírované z predchádzajúceho zobrazenia údajov.
N
možno určiť podľa: (dataView.table['lastMergeIndex'] === undefined) ? 0 : dataView.table['lastMergeIndex'] + 1
Vizuál uchováva zobrazenie údajov, ktoré sa doň odovzdáva, aby mohol pristupovať k údajom bez dodatočnej komunikácie so službou Power BI.
Prispôsobené zníženie počtu údajov
Keďže vývojár nemôže vždy vopred vedieť, aký typ údajov sa zobrazí vizuál, môže chcieť autorovi zostavy povoliť dynamicky nastaviť veľkosť údajového bloku. Od rozhrania API verzie 5.2 môžete autorovi zostavy povoliť, aby vždy nastavil veľkosť údajových blokov, ktoré sa načítavajú.
Ak chcete povoliť autorovi zostavy nastaviť počet, najskôr definujte objekt tably vlastností s názvom dataReductionCustomization
vo vašom súbore capabilities.json :
"objects": {
"dataReductionCustomization": {
"displayName": "Data Reduction",
"properties": {
"rowCount": {
"type": {
"numeric": true
},
"displayName": "Row Reduction",
"description": "Show Reduction for all row groups",
"suppressFormatPainterCopy": true
},
"columnCount": {
"type": {
"numeric": true
},
"displayName": "Column Reduction",
"description": "Show Reduction for all column groups",
"suppressFormatPainterCopy": true
}
}
}
},
Potom po znaku dataViewMappings
definujte predvolené hodnoty pre dataReductionCustomization
.
"dataReductionCustomization": {
"matrix": {
"rowCount": {
"propertyIdentifier": {
"objectName": "dataReductionCustomization",
"propertyName": "rowCount"
},
"defaultValue": "100"
},
"columnCount": {
"propertyIdentifier": {
"objectName": "dataReductionCustomization",
"propertyName": "columnCount"
},
"defaultValue": "10"
}
}
}
Informácie o redukcii údajov sa zobrazia vo vizuáli na table formátu.
Dôležité informácie a obmedzenia
Veľkosť okna je obmedzená na rozsah od 2 do 30 000.
Celkový počet riadkov v zobrazení údajov je obmedzený na 1 048 576.
Veľkosť pamäte zobrazenia údajov je v režime agregácie segmentov obmedzená na 100 MB.