Créer une couche de requête destinée aux données d’une base de données orientée document

Vous pouvez faire glisser une table spatiale depuis une connexion à une base de données (.dbconn) dans la fenêtre Catalog (Catalogue) vers la carte afin de créer automatiquement une couche de requête qui accède aux données dans une base de données de documents. Vous pouvez également utiliser le bouton Add Data (Ajouter des données) Ajouter des données sur l’onglet Map (Carte) pour créer une couche de requête dans une carte dans ArcGIS Pro.

Conseil :

Vous trouverez ci-dessous les instructions permettant de créer une couche de requête pour une table dans une base de données de documents prise en charge. Reportez-vous à la rubrique Créer une couche de requête destinée aux données d’une base de données relationnelle ou Créer une couche de requête pour des données dans un stockage de données cloud pour savoir comment créer une couche de requête et accéder à ces types de source.

Résumé des processus

Voici un résumé des actions nécessaires pour créer une couche de requête de données à partir des bases de données de documents prises en charge :

  • Se connecter à la base de données : vous pouvez créer une connexion à une base de données dans la fenêtre Catalog (Catalogue), l’ajouter au projet et y accéder depuis la boîte de dialogue New Query Layer (Nouvelle couche de requête). Vous pouvez également créer la connexion à une base de données à partir de la boîte de dialogue New Query Layer (Nouvelle couche de requête). Reportez-vous aux rubriques Se connecter à Elasticsearch depuis ArcGIS Pro ou Connecter à OpenSearch depuis ArcGIS Pro pour obtenir des instructions.
  • Définir la requête : choisissez la table et les champs à inclure dans la requête. Les couches de requête utilisent des instructions SQL. Toutefois, Elasticsearch et OpenSearch n’étant pas des bases de données relationnelles, seul un sous-ensemble d’instructions SQL sont prises en charge lors de la création d’une couche de requête à partir des données de ces bases de données. Vous ne pouvez pas inclure de clauses join (jointure) ou relate (relation) et les clauses WHERE sont limitées .
  • Valider la requête : le processus de validation vérifie la syntaxe de l’instruction de requête. Il utilise également les propriétés de la première ligne renvoyée dans la table pour déterminer la validité de la requête. Il n’est pas possible d’ajouter une couche de requête si l’instruction de requête n’est pas valide.
  • Spécifier un identifiant unique : toutes les entités de la carte nécessitent un identifiant unique. La couche de requête doit contenir un champ d’identifiant unique comprenant une valeur pour chaque entité. Par défaut, la couche de requête utilise un champ d’ID système comme champ d’identifiant unique pour chaque entité. Si vous le souhaitez, vous pouvez sélectionner un champ d’ID différent. Si vous sélectionnez un champ, il doit s’agir d’un champ entier comprenant des valeurs uniques.
  • Définir le type de géométrie : le type de géométrie de la couche indique si la couche stocke des entités ponctuelles, multi-points, linéaires ou surfaciques. Par défaut, le type de géométrie de la première ligne est utilisé pour déterminer le type de géométrie qui existe dans la table. Comme ArcGIS ne prend en charge qu’un seul type de géométrie par table, seules les entités de ce type de géométrie apparaissent sur la carte. Vous pouvez spécifier un type de géométrie différent de celui qui est présent sur la première ligne renvoyée par la couche de requête.

    Par exemple, si la première ligne renvoyée par la requête est une entité linéaire, seules les entités linéaires s’affichent sur la carte. Si la table contient des entités surfaciques, vous pouvez définir le type de géométrie de la couche sur les polygones. Ainsi, seules les entités surfaciques renvoyées par la requête apparaîtront sur la carte.

    Les champs de géométrie imbriqués ne sont pas pris en charge.

Formats pris en charge de la clause WHERE

Toutes les instructions de la clause WHERE SQL ne sont pas prises en charge lors de l’interrogation d’une base de données de documents à partir d’ArcGIS. La syntaxe suivante peut être utilisée dans les couches de requête qui accèdent aux bases de données de documents :

  • <FIELD_NAME | LITERAL>'<='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<>'<FIELD_NAME | LITERAL>
  • <BOOLEAN EXPRESSION> AND | OR <BOOLEAN EXPRESSION>
  • NOT <BOOLEAN EXPRESSION>
  • <FIELD_NAME> LIKE <STRING>
  • <FIELD_NAME> NOT LIKE <STRING>
  • <FIELD_NAME> IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> NOT IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>
  • <FIELD_NAME> NOT BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>

Les syntaxes ci-dessous sont également prises en charge. Toutefois, comme les bases de données de documents prises en charge ne prennent pas en charge les valeurs nulles dans les champs, leur utilisation est légèrement différente de ce que renvoie la même clause lorsqu’elle est définie pour une table dans une base de données relationnelle ou un stockage de données.

  • <FIELD_NAME> IS NULL : renvoie les lignes dont une valeur est manquante pour le champ spécifié
  • <FIELD_NAME> IS NOT NULL ; renvoie les lignes comportant une valeur pour le champ spécifié

Créer une couche de requête destinée à une table dans Elasticsearch ou OpenSearch

Pour ajouter une couche de requête à une carte qui accède aux données dans Elasticsearch ou OpenSearch, faites glisser la table sur la carte ou définissez une couche de requête dans la boîte de dialogue New Query Layer (Nouvelle couche de requête).

Faire glisser la table sur la carte

Lorsque vous faites glisser une table sur la carte à partir d’une connexion à une base de données (.dbconn) dans la fenêtre Catalog (Catalogue), ArcGIS Pro crée automatiquement une couche de requête qui sélectionne toutes les lignes et tous les champs de cette table. Il définit également le champ _id géré par le système comme champ d’identifiant unique de la couche.

ArcGIS Pro calcule l’étendue de la couche lorsque vous la faites glisser dans la carte. ArcGIS Pro identifie également le type de géométrie de la première ligne et le définit comme type de géométrie de la couche de requête. Seules les entités de ce type de géométrie s’affichent sur la carte.

Après avoir ajouté la couche à la carte, vous pouvez si nécessaire modifier la couche de requête.

Définir une requête dans la boîte de dialogue Nouvelle couche de requête

Pour définir une couche de requête sur une carte dans un projet ArcGIS Pro à l’aide de la boîte de dialogue New Query Layer (Nouvelle couche de requête), procédez comme suit :

  1. Dans ArcGIS Pro, ouvrez la carte à laquelle vous voulez ajouter la couche de requête.
  2. Cliquez sur la flèche du bouton Add Data (Ajouter des données) Ajouter des données dans le groupe Layer (Couche) sur le ruban Map (Carte), et sélectionnez Query Layer (Couche de requête) Ajouter une couche de requête dans le menu déroulant.

    Développez le menu Ajouter des données et sélectionnez Couche de requête.

    La boîte de dialogue New Query Layer (Nouvelle couche de requête) s’ouvre.

  3. Spécifiez une connexion en procédant de l’une des manières suivantes :
    • Si le fichier de connexion (.dbconn) existe déjà dans le projet, sélectionnez-le dans la liste déroulante.
    • Si la connexion n’existe pas dans le projet, cliquez sur le bouton de nouvelle connexion à une base de données Nouvelle connexion à la géodatabase et créez une connexion. Une fois la connexion créée, choisissez-la dans la liste déroulante.
  4. Dans la zone de texte Name (Nom), attribuez un nom à la couche de requête à créer.

    Il s’agit du nom qui apparaîtra dans la fenêtre Contents (Contenu) de la carte.

  5. Entrez ou collez une requête SQL dans la zone de texte Query (Requête).

    Pour afficher une liste de tables (index) et leurs champs, cochez la case List of Tables (Liste de tables). Vous pouvez double-cliquer sur une table de la section List of Tables (Liste de tables) pour ajouter tous les champs à la zone de texte Query (Requête) et modifier la requête dans la zone de texte Query (Requête). Par exemple, vous pouvez supprimer de la requête les champs que vous ne souhaitez pas inclure et ajouter des clauses WHERE à la requête pour limiter les données incluses dans la couche de requête.

    Vous pouvez utiliser une clause WHERE comme le décrit la section ci-dessus, mais aucune autre clause n’est prise en charge.

  6. Choisissez comment les propriétés spatiales de la couche seront définies.
    • Sélectionnez Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS Pro à découvrir les propriétés spatiales de la couche) (option par défaut) pour autoriser ArcGIS Pro à utiliser les propriétés spatiales de la première ligne renvoyée par la requête. ArcGIS Pro découvre ces propriétés lorsque vous validez l’instruction SQL.
    • Pour que la couche inclue les entités avec des propriétés spatiales différentes de celles de la première ligne, sélectionnez Define spatial properties for the layer (Définir les propriétés spatiales de la couche).
  7. Cliquez sur Validate (Valider) pour vérifier que la syntaxe de la requête est correcte et qu’ArcGIS peut utiliser la requête.

    Le processus de validation exécute la requête dans la base de données pour vérifier que le jeu de résultats de la requête respecte les normes de modélisation de données appliquées par ArcGIS. Une couche de requête n'est pas ajoutée à la carte tant qu'elle n'est pas validée.

    Les règles de validation sont les suivantes :

    • Le jeu de résultats doit comporter un champ spatial au maximum.
    • Le jeu de résultats doit comporter un seul type de forme.
    • Le jeu de résultats ne doit comporter aucun type de champ non pris en charge par ArcGIS.

    Si la validation échoue pour quelque raison que ce soit, un message d'erreur est renvoyé pour que vous puissiez modifier la requête.

    La validation est particulièrement importante si vous utilisez des données de bases de données n’appliquant pas les mêmes normes qu’ArcGIS.

  8. Une fois la requête validée, cliquez sur Next (Suivant).
  9. Pour sélectionner un champ d’identifiant unique autre que le champ d’ID interne de l’entité, cochez la case en regard d’un champ d’entier contenant des valeurs uniques qu’ArcGIS peut utiliser comme identifiant pour chaque champ.

    Il n’est pas nécessaire de sélectionner un champ d’identifiant unique. Si vous ne spécifiez pas de champ, un champ d’ID système est utilisé.

  10. Remarque :

    Les valeurs m et z ne sont pas prises en charge.

    Vous ne pouvez pas définir de référence spatiale pour la couche ; SRID 4326, GCS WGS 1984 est toujours utilisé.

  11. Sélectionnez le type de géométrie dans le menu déroulant.

    Il se peut que ce paramètre soit déjà défini si vous avez choisi l’option Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS à découvrir les propriétés spatiales de la couche).

  12. Si vous avez choisi l’option Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS à découvrir les propriétés spatiales de la couche) à l’étape 6, cliquez sur Finish (Terminer) pour ajouter la couche de requête à la carte.
  13. Les deux étapes suivantes s’appliquent uniquement si vous avez choisi l’option Define spatial properties for the layer (Définir les propriétés spatiales de la couche).

  14. Dans la section Layer Extent Properties (Propriétés de l’étendue de la couche), spécifiez l’étendue spatiale de la couche de requête en choisissant parmi les options suivantes :
    • Input Extent (Étendue en entrée) : lorsque vous cliquez sur Next (Suivant), vous devez saisir l’étendue. L’étendue que vous indiquez doit être valide et inclure toutes les entités de la table.
    • Use Map Extent (Utiliser l’étendue de la carte) : l’étendue de la carte actuelle est utilisée pour l’étendue de la couche de requête. Cliquez sur Next (Suivant) pour vérifier les valeurs d’étendue de la carte.
    • Use Spatial Reference Extent (Utiliser l’étendue de la référence spatiale) : l’étendue de la référence spatiale est utilisée pour l’étendue de la couche de requête. Pour certaines références spatiales, cela correspond à l’intégralité du globe. Cliquez sur Next (Suivant) et vérifiez les valeurs d’étendue de la référence spatiale.
  15. Une fois que vous avez fini de définir ou de vérifier l’étendue de la couche, cliquez sur Finish (Terminer) pour ajouter la couche de requête à la carte.

Pour plus d’informations sur la modification des propriétés de la couche de requête, reportez-vous à la rubrique Modifier une couche de requête.