Gå till huvudinnehåll

Migrera från GeoAnalytics-koppling till Qlik Sense GeoOperations

PÅ DEN HÄR SIDAN

Migrera från GeoAnalytics-koppling till Qlik Sense GeoOperations

Qlik Sense GeoOperations i Qlik Cloud ger liknande funktioner och operationer som GeoAnalytics-koppling gör i Qlik Sense Enterprise on Windows. De stöder också många av de samma dataformaten. De skiljer sig från varandra på följande sätt:

  • GeoOperations är en Avancerad analysintegrering (AAI) som är bättre lämpad för att skicka ut och bearbeta data är en koppling.
  • GeoOperations är endast tillgänglig via skriptspråket. Det finns ingen guide för GeoOperations.
  • Skriptsyntaxen för Avancerad analysintegrering är annorlunda än för kopplingar.
  • GeoOperations kan också användas i diagramuttryck.
  • GeoOperations ger en enda tabell. I jämförelse med vad kopplingen returnerar är tabellerna gemensamma i GeoOperations.
  • Vissa fält och parametrar har döpts om i GeoOperations för att vara mer konsekventa.

Följande beskriver hur du konverterar skriptet som skapats av GeoAnalytics-koppling-guiden till GeoOperations:

  1. I Skriptredigeraren, i GeoAnalytics-koppling-skriptkoden, kopierar du allting efter SQL fram till andra SELECT eller ";", beroende på vilken som kommer först.
  2. Ersätt alla ' i GeoAnalytics-koppling-skriptet med ".
  3. Lägg till utvalda fältnamn från den sekundära SELECT-satsen i GeoAnalytics-koppling-skriptet till den första SELECT-satsen i GeoOperations-skriptet. Hoppa över fält som redan finns där. Lägg till namnet på källtabellen bland fältnamnen och avskilj dem med en punkt. Till exempel table.field. Det här skapar en enda gemensam tabell istället för flera olika tabeller.

  4. Granska referensdokumentationen för operationen och datauppsättningen. Anpassa parametrar och fältnamn där det behövs.

    Operation (endast på engelska)

    Datauppsättning (endast på engelska)

  5. Lägg till följande i början av GeoOperations-skriptet: 

    Load * Extension GeoOperations.ScriptEval('

  6. Lägg till följande i slutet av GeoOperations-skriptet:

    ');

Om du använder en laddad tabell med GeoAnalytics-koppling skickar du den som den andra parametern till GeoOperations.ScriptEval istället.

Eftersom GeoOperations returnerar en gemensam tabell kommer endast fältvärden som har ett motsvarande värde i den primära tabellen att returneras i de sekundära tabellerna. Om du till exempel vill hitta de närmaste flygplatserna i Tyskland för några punkter visas bara data om de flygplatser som ligger närmast punkterna. Om du vill ha alla flygplatser i Tyskland behöver de laddas separat med en LOAD-operation.

Om du laddar från en SQL-databas med en koppling borde data istället laddas med en av databaskopplingarna som till exempel ODBC-kopplingen. Se till att ladda geometrin som WKT (applicera en funktion som oftast heter st_asText() i SQL-frågan). Konvertera sedan WKT-fältet genom att skicka tabellen till GeoOperations. Det kommer att generera ett fält med geometri i formatet Qlik Sense.

Exempel på en skriptkonvertering

Exemplet på en skriptkonvertering kommer att använda följande GeoAnalytics-koppling-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 ----------------------------------- */

 

Gör följande:

  1. Ta skriptet mellan SQL och den andra SELECT-satsen.

    SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points')

    DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default'

  2. Ersätt citationstecknen:

    SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

  3. Lägg till fält från sekundära tabeller:

    SELECT [LocationDbId], [Clusters_ClusterID], [Clusters.Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

  4. Justera parametrarna och fältnamnen:

    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"

  5. Omslut med standardkoden:

    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"

    ');

Den här skriptkoden kan nu användas med Qlik Sense GeoOperations.