Jaa


Lisätietojen noutaminen Power BI:stä

fetchMoreData-ohjelmointirajapinnan avulla voit ladata erikokoisia tietolohkoja, jotta Power BI -visualisoinnit voivat ohittaa 30 000 rivin tietonäkymän kiinteän rajan. Ohjelmointirajapinta tukee nyt myös tietolohkojen lisäävästi lataamista alkuperäisen toimintatavan lisäksi, jossa kaikki pyydetyt lohkot koostetaan.

Voit määrittää, montako riviä noudetaan kerrallaan, tai voit käyttää arvoa dataReductionCustomization , jos haluat antaa raportin tekijän määrittää lohkon koon dynaamisesti.

Muistiinpano

Ohjelmointirajapinta fetchMoreData on saatavilla versiossa 3.4 tai uudemman version kautta.

Dynaaminen dataReductionCustomization ohjelmointirajapinta on saatavilla versiossa 5.2 tai uudemman version kautta.

Jos haluat tietää, mitä versiota käytät, tarkista apiVersion pbiviz.json .

Suurten semanttisten mallien segmentoitujen noutojen ottaminen käyttöön

Määritä kohteen ikkunan koko dataReductionAlgorithm visualisoinnin capabilities.json -tiedostolle vaadittua -määritystä dataViewMappingvarten. count määrittää ikkunan koon, joka rajoittaa -kohteeseen lisättävien uusien tietorivien dataview määrää kussakin päivityksessä.

Lisää esimerkiksi seuraava koodi capabilities.json-tiedostoon , jos haluat liittää kerralla 100 tietoriviä:

"dataViewMappings": [
    {
        "table": {
            "rows": {
                "for": {
                    "in": "values"
                },
                "dataReductionAlgorithm": {
                    "window": {
                        "count": 100
                    }
                }
            }
    }
]

Uudet segmentit lisätään olemassa dataview olevaan -kohteeseen ja annetaan visualisoinnille -kutsuna update .

fetchMoreDatan käyttäminen Power BI -visualisoinnissa

Voit tehdä tämän Power BI: fetchMoreData ssä kahdella tavalla:

  • segmenttien koostamistila
  • lisäävän päivityksen tila

Segmenttien koostamistila (oletus)

Segmenttien koostamistilassa visualisoinnille annettu tietonäkymä sisältää kertyneet tiedot kaikesta aiemmasta fetchMoreData requestskohteesta . Siksi tietonäkymän koko kasvaa kunkin päivityksen myötä ikkunan koon mukaan. Jos esimerkiksi odotetaan yhteensä 100 000 riviä ja ikkunan kooksi on määritetty 10 000, ensimmäisen päivityksen tietonäkymässä pitäisi olla 10 000 riviä, toisen päivitystietonäkymän tulee sisältää 20 000 riviä ja niin edelleen.

Valitse segmenttien koostetila kutsumalla fetchMoreData aggregateSegments = truekohdetta .

Voit määrittää, onko tietoja olemassa, tarkistamalla, onko olemassa dataView.metadata.segment:

    public update(options: VisualUpdateOptions) {
        const dataView = options.dataViews[0];
        console.log(dataView.metadata.segment);
        // output: __proto__: Object
    }

Voit myös tarkistaa, onko päivitys ensimmäinen päivitys vai myöhempi päivitys, tarkistamalla kohteen options.operationKind. Seuraavassa koodissa VisualDataChangeOperationKind.Create viittaa ensimmäiseen segmenttiin ja VisualDataChangeOperationKind.Append seuraaviin segmentteihin.

// 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
}

Voit myös käynnistää -menetelmän fetchMoreData käyttöliittymän tapahtumakäsittelijästä:

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
        }
    }
}

Vastauksena -menetelmän kutsumiseen this.host.fetchMoreData Power BI kutsuu update visualisoinnin -menetelmää uudella tietosegmentillä.

Muistiinpano

Asiakkaan muistirajoitteiden välttämiseksi noudetun tiedon kokonaismäärän rajoituksena Power BI:ssä on 100 Mt. Kun tämä raja saavutetaan, fetchMoreData() palauttaa arvon false.

Lisäävän päivityksen tila

Lisäävien päivitysten tilassa visualisoinnille annettu tietonäkymä sisältää vain seuraavan lisäävien tietojen joukon. Tietonäkymän koko on sama kuin määritetty ikkunan koko (tai pienempi, jos viimeinen tietobitti on pienempi kuin ikkunan koko). Jos esimerkiksi odotetaan yhteensä 101 000 riviä ja ikkunan kooksi on määritetty 10 000, visualisointiin tulee kymmenen päivitystä, kun tietonäkymän koko on 10 000, ja yksi, kun tietonäkymän koko on 1 000.

Lisäävän päivityksen tila valitaan kutsumalla fetchMoreData kohdetta ön kanssa aggregateSegments = false.

Voit määrittää, onko tietoja olemassa, tarkistamalla, onko olemassa dataView.metadata.segment:

    public update(options: VisualUpdateOptions) {
        const dataView = options.dataViews[0];
        console.log(dataView.metadata.segment);
        // output: __proto__: Object
    }

Voit myös tarkistaa, onko päivitys ensimmäinen päivitys vai myöhempi päivitys, tarkistamalla kohteen options.operationKind. Seuraavassa koodissa VisualDataChangeOperationKind.Create viittaa ensimmäiseen segmenttiin ja VisualDataChangeOperationKind.Segment seuraaviin segmentteihin.

// 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
}

Voit myös käynnistää -menetelmän fetchMoreData käyttöliittymän tapahtumakäsittelijästä:

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
        }
    }
}

Vastauksena -menetelmän kutsumiseen this.host.fetchMoreData Power BI kutsuu update visualisoinnin -menetelmää uudella tietosegmentillä.

Muistiinpano

Vaikka tietonäkymien eri päivitysten tiedot ovat pääosin yksinomaisia, peräkkäiset tietonäkymät ovat osittain päällekkäisiä.

Taulukon ja luokittaisen tietojen yhdistämisen osalta ensimmäisen N tietonäkymän rivien voidaan odottaa sisältävän edellisestä tietonäkymästä kopioituja tietoja.

N voidaan määrittää seuraavasti: (dataView.table['lastMergeIndex'] === undefined) ? 0 : dataView.table['lastMergeIndex'] + 1

Visualisointi pitää tietonäkymän välitettynä, jotta se voi käyttää tietoja ilman ylimääräistä viestintää Power BI:n kanssa.

Mukautettu tietojen vähentäminen

Koska kehittäjä ei aina voi tietää etukäteen, minkä tyyppisiä tietoja visualisointi näyttää, hän saattaa haluta antaa raportin tekijälle mahdollisuuden määrittää tietolohkon koko dynaamisesti. Ohjelmointirajapinnan versiosta 5.2 voit antaa raportin tekijän määrittää joka kerta noudettävien tietolohkojen koon.

Jotta raportin tekijä voi määrittää määrän, määritä ensin ominaisuusruudun objekti, jota kutsutaan dataReductionCustomization capabilities.json-tiedostossa:

    "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
                }
            }
        }
    },

Määritä sitten :n dataViewMappingsjälkeen oletusarvot dataReductionCustomization.

   "dataReductionCustomization": {
        "matrix": {
            "rowCount": {
                "propertyIdentifier": {
                    "objectName": "dataReductionCustomization",
                    "propertyName": "rowCount"
                },
                "defaultValue": "100"
            },
            "columnCount": {
                "propertyIdentifier": {
                    "objectName": "dataReductionCustomization",
                    "propertyName": "columnCount"
                },
                "defaultValue": "10"
            }
        }
    }

Tietojen vähentämisen tiedot näkyvät visualisoinnin muotoiluruudussa.

Näyttökuva muotoilupannusta, jossa on asetus tietojen vähentämisen määrän määrittämiseksi.

Huomioitavat asiat ja rajoitukset

  • Ikkunan koko on rajoitettu välillä 2–30 000.

  • Tietonäkymän rivien kokonaismäärä on rajoitettu 1 048 576 riviin.

  • Tietonäkymän muistin koko on rajoitettu 100 Mt:iin segmenttien koostamistilassa.