Migrieren von GeoAnalytics-Konnektor zu Qlik GeoOperations
Qlik GeoOperations in Qlik Cloud bietet ähnliche Funktionen und Vorgänge wie der GeoAnalytics-Konnektor in Qlik Sense Enterprise on Windows. Es werden auch viele der gleichen Datenformate unterstützt. Folgende Unterschiede liegen vor:
- Qlik GeoOperations ist eine Advanced Analytics Integration (AAI), die sich besser als ein Konnektor zum Senden und Verarbeiten von Daten eignet.
- Die Skriptsyntax für Advanced Analytics Integrations weicht von der Syntax für Konnektoren ab.
- Einige GeoOperations können auch in Diagrammformeln verwendet werden.
- Qlik GeoOperations gibt eine einzelne Tabelle zurück. Im Vergleich mit den Rückgaben des GeoAnalytics-Konnektor werden Tabellen in Qlik GeoOperations verknüpft.
- In Qlik GeoOperations wurden einige Felder und Parameter umbenannt, um für mehr Einheitlichkeit zu sorgen.
Die folgenden Schritte umreißen, wie das vom GeoAnalytics-Konnektor Assistenten erstellte Skript in Qlik GeoOperations konvertiert wird:
- Kopieren Sie im Dateneditor im GeoAnalytics-Konnektor-Skriptcode alles nach SQL bis zum zweiten SELECT oder „;“, je nachdem, was zuerst vorkommt.
- Ersetzen Sie alle ' im GeoAnalytics-Konnektor-Skript durch ".
-
Fügen Sie die ausgewählten Feldnamen aus dem sekundären SELECT-Befehl im GeoAnalytics-Konnektor-Skript zum ersten SELECT-Befehl im GeoOperations-Skript hinzu. Lassen Sie alle bereits vorhandenen Felder aus. Fügen Sie den Quelltabellennamen durch einen Punkt getrennt zu den Feldnamen hinzu. Beispiel: table.field. Dadurch wird eine einzelne verknüpfte Tabelle anstelle von mehreren Tabellen erstellt.
-
Lesen Sie die Referenzdokumentation für den Vorgang und Datensatz und passen Sie bei Bedarf alle Parameter oder Feldnamen an.
-
Fügen Sie Folgendes zum Anfang des GeoOperations-Skripts hinzu:
Load * Extension GeoOperations.ScriptEval('
-
Fügen Sie Folgendes zum Ende des GeoOperations-Skripts hinzu:
');
Wenn Sie eine geladene Tabelle mit dem GeoAnalytics-Konnektor verwenden, senden Sie sie stattdessen als zweiten Parameter an GeoOperations.ScriptEval.
Da Qlik GeoOperations eine verknüpfte Tabelle zurückgibt, werden nur Feldwerte, die über einen entsprechenden Wert in der primären Tabelle verfügen, aus den sekundären Tabellen zurückgegeben.Beispiel: Wenn Sie die nächstgelegenen Flughäfen in Deutschland für einige Punkte suchen, werden nur Daten zu den Flughäfen zurückgegeben, die den Punkten am nächsten liegen. Wenn Sie alle Flughäfen in Deutschland abrufen möchten, müssen diese mit einem LOAD-Vorgang separat geladen werden.
Wenn Sie aus einer SQL-Datenbank mit dem Konnektor laden, müssen die Daten stattdessen mit einem der Datenbankkonnektoren wie dem ODBC-Konnektor geladen werden. Vergewissern Sie sich, dass Sie die Geometrien als WKT laden (wenden Sie eine Funktion an, die in der Regel als st_asText() bezeichnet wird, in der SQL-Abfrage an). Konvertieren Sie dann das WKT-Feld, indem Sie die Tabelle an Qlik GeoOperations senden. Dadurch wird ein Feld mit den Geometrien im Qlik Sense Format zurückgegeben.
Beispiel einer Skriptkonvertierung
Dieses Beispiel einer Skriptkonvertierung verwendet das folgende GeoAnalytics-Konnektor-Skript:
/* Generated by GeoAnalytics for operation Cluster ---------------------- */
[ClusterAssociations]:
SQL SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points')
DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default'
SELECT [Clusters_ClusterID], [Clusters_ClusterCenter] FROM Clusters;
[Clusters]:
SQL LOAD * FROM Clusters;
tag field [LocationDbId] with '$primarykey';
tag field [Clusters_ClusterID] with '$primarykey';
tag field [Clusters_ClusterCenter] with '$geopoint';
tag field [Clusters_ClusterID] with '$geoname';
tag field [Clusters_ClusterCenter] with '$relates_Clusters_ClusterID';
tag field [Clusters_ClusterID] with '$relates_Clusters_ClusterCenter';
/* End GeoAnalytics operation Cluster ----------------------------------- */
Gehen Sie folgendermaßen vor:
-
Verwenden Sie das Skript zwischen SQL und dem zweiten SELECT-Befehl.
SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points')
DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default'
-
Ersetzen Sie die Anführungszeichen:
SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance="10000", points="Points")
DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"
-
Fügen Sie Felder aus sekundären Tabellen hinzu:
SELECT [LocationDbId], [Clusters_ClusterID], [Clusters.Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")
DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"
-
Passen Sie Parameter- und Feldnamen an:
SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")
DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"
-
Schließen Sie dies in Boilerplate-Code ein:
Load * Extension GeoOperations.ScriptEval('
SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")
DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"
');
Dieses Skript kann jetzt zusammen mit Qlik GeoOperations verwendet werden.