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.
Eine Übersicht über die wichtigsten Unterschiede finden Sie unter Feldunterschiede bei GeoOperations und GeoAnalytics
-
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:
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.
Feldunterschiede bei GeoOperations und GeoAnalytics
Die Standardfelder sind in GeoOperations- und GeoAnalytics-Skripten unterschiedlich und haben in der Regel verschiedene Präfixe. Wenn Sie Ihre GeoAnalytics-Skripte zu GeoOperations migrieren, müssen Sie möglicherweise einige der Feldnamen anpassen.
AddressToPoint
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, Address, AddressPoint, CountryIso2, Adm1, City, PostalCode, Street, HouseNumber, Match
-
GeoAnalytics: [<id>], [Dataset_Address], [Dataset_Geometry], [CountryIso2], [Dataset_Adm1], [Dataset_City], [Dataset_PostalCode], [Dataset_Street], [Dataset_HouseNumber], [Dataset_Match]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
GeoAnalytics Felder enthalten Präfixe aus dem Datensatz.
-
Dataset_Geometry wird in GeoOperations als AddressPoint bezeichnet.
Klasseneinteilung
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, BinId, BinTable.BinPolygon, BinTable.CenterPoint
-
GeoAnalytics: [<id>], [RH2W3], [RH2W3_CenterPoint]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
In GeoAnalytics ist RH2W3 das Polygonfeld, und sein Name wird je nach Gitternetzgröße/-verhältnis generiert. In GeoOperations lautet der Feldname BinTable.BinPolygon.
-
GeoAnalytics enthält kein Feld BinId.
Am nächsten
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<ds1 id>, dataset2.<ds2 id>, Distance
-
GeoAnalytics: [Dataset1_Dataset2_RelationId], [Dataset1.<ds1 id>], [Dataset2.<ds2 id>], [Dataset1_Dataset2_Distance]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
GeoOperations enthält keine Präfixe für das Feld Distance.
Cluster
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, ClusterID, Clusters.ClusterPoint, Clusters.PointCount
-
GeoAnalytics: [<id>], [Clusters_ClusterID], [Clusters_ClusterCenter], [Clusters_PointCount]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
Auflösen
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, DissolvedPolygon
-
GeoAnalytics: [<id>], [<id>_Geometry]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Name der Geometriespalte
Schnittpunkte
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<dataset1 id>, dataset2.<dataset2 id>, dataset.RelativeOverlap, dataset2.RelativeOverlap
-
GeoAnalytics: [Dataset1_Dataset2_RelationKey], [Dataset1.<ds1 id>], [Dataset2.<ds1 id>], [Dataset1_RelativeOverlap], [Dataset2_RelativeOverlap]
GeoAnalytics und GeoOperations weisen die folgenden Hauptunterschiede auf:
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
IpLookup
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, IpPoint, CountryIso2, Adm1Code, City
-
GeoAnalytics: [<id>], [IpTable_Geometry], [CountryIso2], [IpTable_Adm1Code], [IpTable_City]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
IpTable_Geometry in GeoAnalytics ist IpPoint in GeoOperations.
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
Load (location-Datensatz)
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations (Bereich): LocationDbId, LocationPolygon, Name, CountryIso2, Adm1Code, Adm2Code, LocationDbType
-
GeoOperations (Punkt): LocationDbId, LocationPoint, Name, CountryIso2, Adm1Code, Adm2Code, LocationDbType
-
GeoAnalytics: [LocationDbId], [Dataset_Geometry], [Dataset_Name], [CountryIso2], [Dataset_Adm1Code], [Dataset_Adm2Code], [LocationDbType]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Die Geometriefelder (LocationPolygon und LocationPoint in GeoAnalytics sind Dataset_Geometry in GeoOperations.
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
PointToAddress
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, Address, AddressPoint, CountryIso2, Adm1, City, PostalCode, Street, HouseNumber, Distance
-
GeoAnalytics: [<id>], [Dataset_Address], [Dataset_Geometry], [CountryIso2], [Dataset_Adm1], [Dataset_City], [Dataset_PostalCode], [Dataset_Street], [Dataset_HouseNumber], [Dataset_Distance]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
Strecken
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, Distance, Duration, Status, LowResLine
-
GeoAnalytics: [<id>], [Dataset_Distance], [Dataset_Duration], [Dataset_Status], [Dataset_PathLowRes]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Das Geometriefeld Dataset_PathLowRes in GeoAnalytics ist LowResLine in GeoOperations.
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
Vereinfachen
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, Simplified_<geo field name>
-
GeoAnalytics: [<id>], [Dataset_Simplified_Geometry]
.GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
Die Namen des Geometriefelds in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
TravelAreas
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: <id>, TravelArea, Cost, CostUnit, Status
-
GeoAnalytics: [<id>], [Dataset_TravelArea], [Dataset_Origin], [Dataset_Cost], [Dataset_CostUnit], [Dataset_Status]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
GeoOperations schließt kein Ursprungsfeld ein.
-
Die Präfixe in GeoOperations und GeoAnalytics unterscheiden sich voneinander.
Innerhalb
GeoOperations und GeoAnalytics geben die folgenden Felder zurück:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<dataset1 id>, dataset2.<dataset2 id>
-
GeoAnalytics: [Enclosed_Enclosing_RelationId], [Enclosed.<dataset 1/2 id>], [Enclosing.<datasets 1/2 id>]
GeoAnalytics und GeoOperations weisen die folgenden Unterschiede auf:
-
GeoOperations-Präfixe schließen Datensatznamen ein, während GeoAnalytics auch das Präfix Enclosed einschließt.