Erstellen effektiver Datenausdrücke

Mit den erstellten Datenausdrücken können Sie die datenabhängigen Elemente in Ihrem Dashboard ausführen. Auf diese Weise können Sie unter Verwendung von Datasets, auf die Sie Zugriff haben, robuste Visualisierungen und damit effektive Dashboards erstellen. Nachfolgend finden Sie Empfehlungen für das Erstellen effektiver Datenausdrücke.

Hinweis:

Sie können Beispieldatenausdrücke anzeigen, die Ihnen die ersten Schritte erleichtern.

Datenausdrücke sind mit Performance-Kompromissen verbunden und sollten nicht für komplexe Workflows oder große Datasets verwendet werden. In diesen Situationen wird eine Neumodellierung und Veröffentlichung gehosteter Layer empfohlen, wenn Sie mit eigenen Daten arbeiten.

  • Wenn Sie mithilfe der FeatureSet-Funktionen Daten eines Layers abfragen, fordern Sie nur die benötigten Features und Spalten an, und fragen Geometriedaten nur ab, wenn dies erforderlich ist.

    Mit dem folgenden Datenausdruck werden nur die benötigten Spalten ohne Geometrie aus dem Layer abgerufen, indem sie in der FeatureSetByPortalItem-Funktion angegeben werden. Die Filter-Funktion wird dann verwendet, um nur die Zeilen zurückzugeben, die für die Visualisierung erforderlich sind.

    var fs = Filter(FeatureSetByPortalItem(Portal('https://www.arcgis.com'),'f8492125f78445b284751ced4e9d6573',0,['Waterbody_Type', 'Sample_Date', 'Mercury'], false),'Mercury > 0.3');

  • Sie können Datenausdrücke in mehreren Elementen eines Dashboards wiederverwenden. Vermeiden Sie es, mehrere Ausdrücke zu erstellen, die dieselben Daten verarbeiten und zurückgeben.
  • Vermeiden Sie die Verwendung von Geometriefunktionen in Ihren Datenausdrücken. Geometriefunktionen können die Dashboard-Performance beeinträchtigen. Führen Sie die Datenverarbeitung stattdessen im Vorfeld durch.

    Mit dem folgenden Ausdruck werden die Geometriemethoden Contains() und Buffer() ausgeführt, um innerhalb einer Entfernung von 50 Meilen von Staatswäldern nach Anlagen zur Gewinnung fossiler Brennstoffe zu suchen. Die Positionsinformationen zu Staatswäldern und Anlagen befinden sich in zwei verschiedenen Layern. Da die Geometriemethoden für jeden Staatswald im Dataset über eine for-Schleife ausgeführt werden, ist der Ausdruck langsam.

    var p = 'https://arcgis.com/'; 
    var sizeFilter = 'SQMI > 10000';  
    var nfs = Filter(FeatureSetByPortalItem(Portal(p),'3d86e0ee5f34471ab30a1ad19a08c21f',0),sizeFilter);  
    var wells = FeatureSetByPortalItem(Portal(p),'f30ebe47eebc4534b7a385835d6bfedb',0);
    
    var Dict = {  
     'fields': [{ 'name': 'NF_name', 'type': 'esriFieldTypeString' },  
     {'name': 'area','type': 'esriFieldTypeDouble'},  
     {'name': 'n_wells','type': 'esriFieldTypeInteger'}],  
     'geometryType': '',   
     'features': []};  
    
    var counts = 0;   
    var index = 0;  
    
    for (var nf in nfs) { 
        Console(nf)  
        counts = Count(Contains(Buffer(nf, 50, 'miles'), wells))  
        Dict.features[index] = {   
                'attributes': {   
                    'NF_name': nf.NAME,    
                    'area': nf.SQMI,    
                    'n_wells': counts  
                }}   
        index++; };  
    
    return FeatureSet(Dict);

  • Vermeiden Sie es, Datenausdrücke für Vorgänge oder Abfragen zu verwenden, die mit der Standardkonfiguration von Dashboard-Elementen durchgeführt werden können.

    Für ein datenabhängiges Element können beispielsweise Filter verwendet werden, um das Ergebnis für den folgenden Ausdruck zu erzeugen:

    return Filter(FeatureSetByPortalItem(Portal('https://www.arcgis.com'),'f8492125f78445b284751ced4e9d6573',0,['Waterbody_Type', 'Sample_Date', 'Mercury'], false),'Mercury > 0.3');

  • Vermeiden Sie das Verarbeiten großer Datasets unter Verwendung von Datenausdrücken.

    Mit dem folgenden Ausdruck werden die durch Trennzeichen getrennten Werte einer Spalte in separate Zeilen transformiert. Diese Verarbeitung erfolgt in einer for-Schleife für jeweils ein Feature, wodurch der Ausdruck langsam ist.

    var fs = FeatureSetByPortalItem(Portal('https://www.arcgis.com'), 'd10b9e8dbd7f4cccbd0a938a06c586e9',0,['Report_road_condition'], false);
      
    var choicesDict =  
    {'fields': [{'name': 'split_choices', 'type': 'esriFieldTypeString'}],  
      'geometryType': '',  
      'features': []};  
     
    var index = 0;  
    
    for (var feature in fs) {  
        var split_array  =  Split(feature["Report_road_condition"], ',')  
        var count_arr = Count(split_array)  
        for(var i = 0; i < count_arr; i++){  
            choicesDict.features[index] = {  
                'attributes': {
             'split_choices':Trim(split_array[i]),   
                } }  
    index++;}  
    };  
    
    return GroupBy(FeatureSet(choicesDict),['split_choices'], [ {name:'split_count',expression:'split_choices',statistic: 'COUNT'}]);

  • Legen Sie Aktualisierungsintervalle für den Datenausdruck nur dann fest, wenn die zugrunde liegenden Daten aktualisiert werden. Legen Sie für das Aktualisierungsintervall einen Wert fest, der der Häufigkeit der Datenaktualisierung entspricht.
    Hinweis:
    Aktualisierungsintervalle werden in mobilen Ansichten nicht unterstützt.
  • Speichern Sie Kopien Ihrer Datenausdrücke mithilfe eines Text-Editors. Nicht verwendete Datenausdrücke in einem Dashboard werden nicht gespeichert.
  • Datenausdrücke sollten nicht als Ersatz für eine gute Datenmodellierung angesehen werden. Verarbeiten Sie Ihre Daten nach Möglichkeit vor, bevor Sie sie in ein Dashboard integrieren.