Κοινή χρήση μέσω


Ανάκτηση περισσότερων δεδομένων από το Power BI

Το API fetchMoreData σάς επιτρέπει να φορτώσετε τμήματα δεδομένων διαφορετικών μεγεθών ως έναν τρόπο ενεργοποίησης των απεικονίσεων Power BI για την παράκαμψη του σκληρού ορίου μιας προβολής δεδομένων γραμμής 30 χιλ. Εκτός από την αρχική προσέγγιση της συνάθροισης όλων των ζητούμενων τμημάτων, το API υποστηρίζει πλέον τη φόρτωση τμημάτων δεδομένων σταδιακά.

Μπορείτε να ρυθμίσετε τον αριθμό των γραμμών για ανάκτηση ταυτόχρονα εκ των προτέρων ή μπορείτε να χρησιμοποιήσετε για να επιτρέψετε dataReductionCustomization στον συντάκτη της αναφοράς να ορίσει δυναμικά το μέγεθος του τμήματος.

Σημείωμα

Το fetchMoreData API διατίθεται στην έκδοση 3.4 και νεότερες εκδόσεις.

Το δυναμικό dataReductionCustomization API διατίθεται στην έκδοση 5.2 και νεότερες εκδόσεις.

Για να μάθετε ποια έκδοση χρησιμοποιείτε, ελέγξτε το apiVersion στο αρχείο pbiviz.json .

Ενεργοποίηση τμηματικής ανάκτησης μεγάλων σημασιολογικών μοντέλων

Καθορίστε ένα μέγεθος παραθύρου για dataReductionAlgorithm το στο αρχείο capabilities.json της απεικόνισης για το υποχρεωτικό dataViewMapping. Το count προσδιορίζει το μέγεθος του παραθύρου, το οποίο περιορίζει τον αριθμό των νέων γραμμών δεδομένων που μπορείτε να προσαρτήσετε στο dataview σε κάθε ενημέρωση.

Για παράδειγμα, προσθέστε τον παρακάτω κώδικα στο αρχείο capabilities.json για να προσαρτάτε 100 γραμμές δεδομένων κάθε φορά:

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

Τα νέα τμήματα προσαρτώνται στην υπάρχουσα dataview και παρέχονται στην απεικόνιση ως update κλήση.

Χρήση της fetchMoreData στην απεικόνιση Power BI

Στο Power BI, μπορείτε με fetchMoreData έναν από τους εξής δύο τρόπους:

  • λειτουργία συνάθροισης τμημάτων
  • λειτουργία επαυξητικών ενημερώσεων

Λειτουργία συνάθροισης τμημάτων (προεπιλογή)

Με τη λειτουργία συνάθροισης τμημάτων, η προβολή δεδομένων που παρέχεται στην απεικόνιση περιέχει τα δεδομένα που έχουν συσσωρευτεί από όλα τα προηγούμενα fetchMoreData requests. Επομένως, το μέγεθος της προβολής δεδομένων αυξάνεται με κάθε ενημέρωση σύμφωνα με το μέγεθος του παραθύρου. Για παράδειγμα, εάν αναμένονται συνολικά 100.000 γραμμές και το μέγεθος του παραθύρου έχει οριστεί σε 10.000, η πρώτη προβολή ενημέρωσης δεδομένων θα πρέπει να περιλαμβάνει 10.000 γραμμές, η δεύτερη προβολή δεδομένων ενημέρωσης θα πρέπει να περιλαμβάνει 20.000 γραμμές και ούτω καθεξής.

Επιλέξτε τη λειτουργία συνάθροισης τμημάτων με κλήση fetchMoreData aggregateSegments = trueτης μεθόδου .

Μπορείτε να προσδιορίσετε εάν υπάρχουν δεδομένα ελέγχοντας για παρουσία :dataView.metadata.segment

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

Μπορείτε επίσης να ελέγξετε εάν η ενημέρωση είναι η πρώτη ενημέρωση ή μια μεταγενέστερη ενημέρωση επιλέγοντας options.operationKind. Στον παρακάτω κώδικα, VisualDataChangeOperationKind.Create το αναφέρεται στο πρώτο τμήμα και VisualDataChangeOperationKind.Append το αναφέρεται σε επόμενα τμήματα.

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

Μπορείτε επίσης να καλέσετε τη fetchMoreData μέθοδο από ένα πρόγραμμα χειρισμού συμβάντων περιβάλλοντος εργασίας χρήστη:

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

Ως απάντηση στην κλήση της μεθόδου , το this.host.fetchMoreData Power BI καλεί τη update μέθοδο της απεικόνισης με ένα νέο τμήμα δεδομένων.

Σημείωμα

Για να αποφύγετε τους περιορισμούς μνήμης του υπολογιστή-πελάτη, το Power BI περιορίζει το σύνολο δεδομένων ανάκτησης στα 100 MB. Όταν συμπληρωιστεί αυτό το όριο, fetchMoreData() επιστρέφει false.

Λειτουργία επαυξητικών ενημερώσεων

Με τη λειτουργία επαυξητικών ενημερώσεων, η προβολή δεδομένων που παρέχεται στην απεικόνιση περιέχει μόνο το επόμενο σύνολο επαυξητικών δεδομένων. Το μέγεθος της προβολής δεδομένων ισούται με το καθορισμένο μέγεθος παραθύρου (ή μικρότερο, εάν το τελευταίο bit δεδομένων είναι μικρότερο από το μέγεθος του παραθύρου). Για παράδειγμα, εάν αναμένονται συνολικά 101.000 γραμμές και το μέγεθος του παραθύρου οριστεί σε 10.000, η απεικόνιση θα λαμβάνει 10 ενημερώσεις με μέγεθος προβολής δεδομένων 10.000 και μία ενημέρωση με προβολή δεδομένων μέγεθος 1.000.

Η λειτουργία επαυξητικών ενημερώσεων επιλέγεται με aggregateSegments = falseκλήση fetchMoreData της μεθόδου .

Μπορείτε να προσδιορίσετε εάν υπάρχουν δεδομένα ελέγχοντας για παρουσία :dataView.metadata.segment

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

Μπορείτε επίσης να ελέγξετε εάν η ενημέρωση είναι η πρώτη ενημέρωση ή μια μεταγενέστερη ενημέρωση επιλέγοντας options.operationKind. Στον παρακάτω κώδικα, VisualDataChangeOperationKind.Create το αναφέρεται στο πρώτο τμήμα και VisualDataChangeOperationKind.Segment το αναφέρεται σε επόμενα τμήματα.

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

Μπορείτε επίσης να καλέσετε τη fetchMoreData μέθοδο από ένα πρόγραμμα χειρισμού συμβάντων περιβάλλοντος εργασίας χρήστη:

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

Ως απάντηση στην κλήση της μεθόδου , το this.host.fetchMoreData Power BI καλεί τη update μέθοδο της απεικόνισης με ένα νέο τμήμα δεδομένων.

Σημείωμα

Παρόλο που τα δεδομένα στις διαφορετικές ενημερώσεις των προβολών δεδομένων είναι κυρίως αποκλειστικά, υπάρχει κάποια επικάλυψη μεταξύ διαδοχικών προβολών δεδομένων.

Για τον πίνακα και την κατηγορηματική αντιστοίχιση δεδομένων, οι πρώτες N γραμμές προβολής δεδομένων αναμένεται να περιέχουν δεδομένα που έχουν αντιγραφεί από την προηγούμενη προβολή δεδομένων.

N μπορεί να προσδιοριστεί από: (dataView.table['lastMergeIndex'] === undefined) ? 0 : dataView.table['lastMergeIndex'] + 1

Η απεικόνιση διατηρεί την προβολή δεδομένων μεταβιβαστική σε αυτή, ώστε να μπορεί να έχει πρόσβαση στα δεδομένα χωρίς επιπλέον επικοινωνίες με το Power BI.

Προσαρμοσμένη μείωση δεδομένων

Δεδομένου ότι ο προγραμματιστής δεν μπορεί να γνωρίζει εκ των προτέρων τον τύπο δεδομένων που θα εμφανίζει η απεικόνιση, μπορεί να θέλει να επιτρέψει στον συντάκτη αναφοράς να ορίσει δυναμικά το μέγεθος του τμήματος δεδομένων. Από την έκδοση API 5.2, μπορείτε να επιτρέψετε στον συντάκτη της αναφοράς να ορίζει το μέγεθος των κομματιών δεδομένων που ανακτάται κάθε φορά.

Για να επιτρέψετε στον συντάκτη της αναφοράς να ορίσει το πλήθος, ορίστε πρώτα ένα αντικείμενο παραθύρου ιδιοτήτων που ονομάζεται dataReductionCustomization στο αρχείο 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
                }
            }
        }
    },

Στη συνέχεια, μετά από το dataViewMappings, καθορίστε τις προεπιλεγμένες τιμές για dataReductionCustomization.

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

Οι πληροφορίες μείωσης δεδομένων εμφανίζονται στην απεικόνιση στο τμήμα παραθύρου μορφοποίησης.

Στιγμιότυπο οθόνης της μετατόπισης μορφοποίησης με επιλογή για τον ορισμό του πλήθους μείωσης δεδομένων.

Ζητήματα προς εξέταση και περιορισμοί

  • Το μέγεθος του παραθύρου περιορίζεται σε ένα εύρος 2-30.000.

  • Το συνολικό πλήθος γραμμών προβολής δεδομένων περιορίζεται σε 1.048.576 γραμμές.

  • Το μέγεθος μνήμης της προβολής δεδομένων περιορίζεται σε 100 MB Σε λειτουργία συνάθροισης τμημάτων.