Accéder au contenu principal
Migration de GeoAnalytics Connector vers Qlik Sense GeoOperations

SUR CETTE PAGE

Migration de GeoAnalytics Connector vers Qlik Sense GeoOperations

Qlik Sense GeoOperations dans Qlik Cloud fournit des fonctions et opérations similaires à celles de GeoAnalytics Connector dans Qlik Sense Enterprise on Windows. Un grand nombre de formats de données identiques y sont eux aussi pris en charge. En voici les principales différences :

  • GeoOperations est une Intégration de l'analytique avancée (Advanced Analytics Integration ou AAI), plus adaptée pour envoyer et traiter des données qu'un connecteur.
  • GeoOperations est disponible uniquement depuis le langage de script. Il n'existe pas d'assistant pour GeoOperations.
  • La syntaxe de script de l'Intégration de l'analytique avancée est différente de celle des connecteurs.
  • GeoOperations peut également être utilisé dans des expressions de graphique.
  • GeoOperations renvoie une seule table. Contrairement aux éléments renvoyés par le connecteur, les tables sont jointes dans GeoOperations.
  • Dans GeoOperations, certains champs et paramètres ont été renommés, pour une plus grande cohérence.

Voici comment convertir le script produit par l'Assistant GeoAnalytics Connector dans GeoOperations :

  1. Dans l'éditeur de chargement de données, dans le code du script GeoAnalytics Connector, copiez tous les éléments après SQL jusqu'à la deuxième instruction SELECT ou jusqu'au caractère ";", selon la première occurrence.
  2. Remplacez tous les caractères ' du script GeoAnalytics Connector par ".
  3. Ajoutez les noms de champ sélectionnés de la deuxième instruction SELECT du script GeoAnalytics Connector à la première instruction SELECT du script GeoOperations. Omettez tous les champs qui s'y trouvent déjà. Ajoutez le nom de table source aux noms de champ en les séparant par un point. Par exemple, table.field. Cela crée une seule table jointe au lieu de plusieurs tables.

  4. Consultez la documentation de référence sur l'opération et l'ensemble de données et ajustez tout nom de champ ou de paramètre, si nécessaire.

    Opération (uniquement en anglais)

    Ensemble de données (uniquement en anglais)

  5. Ajoutez ce qui suit au début du script GeoOperations : 

    Load * Extension GeoOperations.ScriptEval('

  6. Ajoutez ce qui suit à la fin du script GeoOperations :

    ');

En cas d'utilisation d'une table chargée à l'aide de GeoAnalytics Connector, envoyez-la comme deuxième paramètre à GeoOperations.ScriptEval à la place.

Étant donné que GeoOperations renvoie une table jointe, seules les valeurs de champ ayant une valeur correspondante dans la table principale sont renvoyées des tables secondaires. Par exemple, si vous recherchez les aéroports les plus proches de certains points en Allemagne, seules les données sur les aéroports les plus proches des points seront renvoyées. Si vous recherchez tous les aéroports en Allemagne, ceux-ci doivent être chargés séparément via une opération LOAD.

En cas de chargement depuis une base de données SQL via le connecteur, les données doivent être chargées via l'un des connecteurs de base de données tels que le connecteur ODBC. Assurez-vous de charger les géométries au format WKT (appliquez une fonction généralement appelée st_asText() à la requête SQL). Convertissez ensuite le champ WKT en envoyant la table à GeoOperations. Cela renverra un champ avec les géométries au format Qlik Sense.

Exemple de conversion de script

Cet exemple de conversion de script utilise le script GeoAnalytics Connector suivant :

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

 

Procédez comme suit :

  1. Prenez le script entre SQL et la deuxième instruction SELECT.

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

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

  2. Remplacez les guillemets :

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

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

  3. Ajoutez les champs des tables secondaires :

    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. Ajustez les noms de champ et de paramètre :

    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. Encadrez dans un code d'expression standard :

    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"

    ');

Ce code de script peut désormais être utilisé avec Qlik Sense GeoOperations.