Créez une couche de requête dans la boîte de dialogue New Query Layer (Nouvelle couche de requête) pour accéder à des données figurant dans un stockage de données cloud. Pour des performances optimales, installez le client ArcGIS AllSource que vous utilisez pour interroger le stockage de données dans le même environnement cloud et la même région que l’entrepôt de données.
Conseil :
Cette page explique comment créer une couche de requête destinée à une table dans un stockage de données. Pour accéder aux données dans une base de données, reportez-vous à la rubrique Créer une couche de requête destinée aux données d’une base de données.
Prérequis et processus
Avant de créer une couche de requête, lisez la rubrique Configurations de base de données et de client pour les couches de requête.
Lisez ensuite les sous-sections ci-dessous afin de comprendre le processus de création d’une couche de requête pour un stockage de données cloud à l’aide de la boîte de dialogue New Query Layer (Nouvelle couche de requête).
Se connecter au stockage de données
Pour pouvoir définir une couche de requête, vous devez vous connecter au stockage de données.
Vous pouvez créer une connexion dans la fenêtre Catalog (Catalogue) (comme décrit dans la rubrique Connexions aux stockages de données cloud dans ArcGIS AllSource), ajouter cette connexion au projet et y accéder depuis la boîte de dialogue New Query Layer (Nouvelle couche de requête) ou vous pouvez créer la connexion à partir de la boîte de dialogue New Query Layer (Nouvelle couche de requête).
Définir une requête SQL
Spécifiez une requête SQL dans la zone de texte Query (Requête) pour accéder aux données dont vous avez besoin à partir des données du stockage. Lorsque vous accédez à une table ou à une vue qui contient un nombre de lignes élevés, la requête que vous définissez doit limiter le nombre de lignes allant être incluses dans la couche. Par exemple, vous ne pouvez pas réellement afficher des millions d’entités sur une carte si ces entités ne sont pas agrégées en groupes. Pour ces types de table ou de vue, utilisez la requête pour renvoyer un sous-ensemble de données.
Utilisez la syntaxe SQL spécifique au stockage de données lorsque vous créez la couche de requête.
Chaque colonne d’une table comporte un type de données spécifique. ArcGIS fonctionne avec la plupart des types de données courants. Cependant, certains types de données peu courants ne sont pas pris en charge. Si le type de colonne attributaire est inconnu, cela indique qu'ArcGIS ne prend pas en charge ce type de données. Lorsque vous spécifiez une requête, toutes les colonnes comportant un type de données inconnu doivent être exclues ou remplacées dans la requête par un type de données pris en charge par ArcGIS.
Pour plus d’informations, reportez-vous à la rubrique Types de données de stockages de données cloud pris en charge dans ArcGIS.
Conseil :
- Pour savoir comment utiliser des variables dans les requêtes SQL, reportez-vous à la rubrique Définir des paramètres dans une couche de requête.
- Si vous n’avez pas préparé de requête SQL et que vous devez afficher une liste de tables, cochez la case List of tables (Liste de tables). Vous pouvez double-cliquer sur les tables et les colonnes qui apparaissent dans la liste pour créer une requête SQL.
- Les performances de la requête et de l’affichage peuvent être lentes si des tables externes sont incluses dans la requête
ArcGIS AllSource a ajouté la prise en charge des types de données suivants :
- Entier très grand
- Date uniquement
- Heure uniquement
- Décalage de l’horodatage
La prise en charge des nouveaux types de données varie en fonction des bases de données et des plateformes de stockage des données cloud. Pour plus d’informations, reportez-vous à la rubrique Types de données de stockages de données cloud pris en charge dans ArcGIS.
Créer une vue matérialisée
Lorsque vous accédez à des tables qui contiennent de gros volumes de données dans un stockage de données et définissez une requête SQL qui limite le nombre d’entités renvoyées par la requête à un nombre raisonnable, stockez cette requête sous la forme d’une vue matérialisée dans la base de données pour en améliorer les performances lorsque vous accédez aux données.
Lorsque vous créez une vue matérialisée dans la boîte de dialogue New Query Layer (Nouvelle couche de requête), la définition de la vue est la requête SQL que vous avez spécifiée pour la couche de requête. La couche de requête accède à la vue matérialisée au lieu d’exécuter la requête SQL chaque fois que vous utilisez la couche de requête.
Si la vue matérialisée est créée dans Google BigQuery, vous pouvez la configurer de telle sorte qu’elle expire. Vous évitez ainsi les frais de stockage de cette vue si vous n’en avez pas besoin pendant quelques jours.
Vous ne pouvez pas créer de vue matérialisée si vous incluez des variables dans la requête SQL ou si la requête SQL est définie pour une vue. Vous ne pouvez pas créer de vue matérialisée si vous incluez une table externe dans la requête.
Conseil :
Pour afficher le nom de la vue matérialisée associée à une couche de requête, ouvrez la boîte de dialogue Layer Properties (Propriétés de la couche) de la couche sur la carte. Ne supprimez pas ou ne modifiez pas cette vue dans le stockage de données cloud.
Pour obtenir des informations sur la manière dont les vues matérialisées sont prises en charge dans une source de données spécifique, consultez la documentation mise à disposition par le fournisseur du stockage de données cloud.
Valider l’instruction SQL
Après avoir défini une requête SQL et créé une vue matérialisée, validez l’instruction SQL. Lors de la validation, ArcGIS utilise les propriétés de la première ligne renvoyée dans la table pour déterminer la validité de la requête.
ArcGIS utilise également les propriétés de la première ligne renvoyée par la requête pour filtrer les autres lignes à afficher sur la carte pour respecter les exigences ArcGIS. Par exemple, ArcGIS prend en charge une seule référence spatiale dans une table spatiale. Si les entités de votre classe d’entités utilisent des ID de référence spatiale (SRID) différentes, par défaut, la couche de requête renverra uniquement les lignes qui ont le même SRID que la première entité renvoyée par la requête. De même, ArcGIS prend en charge un seul type de géométrie par table. Par défaut, seules les entités ayant le même type de géométrie que la première ligne renvoyée par la requête apparaîtront sur la carte. Pour utiliser un SRID ou un type de géométrie différent, définissez les propriétés spatiales de la couche de requête.
Spécifier un identifiant unique
L’identifiant unique est l’une des nombreuses colonnes utilisées par ArcGIS pour identifier chaque ligne de la table.
Pendant la validation, ArcGIS tente d’identifier une seule colonne d’identifiant unique pour la table. Si ArcGIS trouve une colonne adéquate, vous pouvez utiliser cette colonne pour la couche de requête. Si ArcGIS ne trouve aucun identifiant unique ou si vous voulez utiliser un identifiant unique différent, vous pouvez en définir un dans la boîte de dialogue New Query Layer (Nouvelle couche de requête).
Définir les propriétés spatiales (facultatif)
Pour les classes d’entités ou les vues contenant une colonne spatiale, vous pouvez définir les valeurs suivantes ou utiliser les valeurs par défaut détectées par ArcGIS lors de la validation :
- Type de géométrie : détermine si la couche stocke des entités ponctuelles, multi-points, linéaires ou surfaciques.
- Référence spatiale : il s'agit du système de coordonnées et d'autres propriétés spatiales associées à la couche.
Remarque :
La définition d’une référence spatiale pour la couche de requête ne reprojette pas les données. Elle définit simplement la référence spatiale qui doit être utilisée lors de l’appariement des résultats de la requête dans ArcGIS.
Vous ne pouvez pas définir de référence spatiale lorsque vous interrogez Google BigQuery.
- SRID : identifiant de référence spatiale de la couche utilisé pour s’assurer que seules les géométries dotées du même identifiant de référence spatiale sont renvoyées par la requête. La valeur SRID est vierge si la couche de requête ne possède pas de champ spatial. Si cette valeur est définie, toutes les entités dépourvues de la valeur SRID de géométrie spécifiée sont exclues du jeu de résultats.
Créer une couche de requête accédant aux données dans un stockage de données cloud
Pour définir une couche de requête sur une carte dans un projet ArcGIS AllSource à l’aide de la boîte de dialogue New Query Layer (Nouvelle couche de requête), procédez comme suit :
- Dans ArcGIS AllSource, ouvrez la carte à laquelle vous voulez ajouter la couche de requête.
- Cliquez sur le bouton Add Data (Ajouter des données) dans le groupe Layer (Couche) sur le ruban Map (Carte), et sélectionnez Query Layer (Couche de requête) dans le menu déroulant.
La boîte de dialogue New Query Layer (Nouvelle couche de requête) s’ouvre.
- Procédez de l’une des manières suivantes pour spécifier une connexion :
- Si le fichier de connexion (.sde) existe déjà dans le projet, sélectionnez-le dans la liste déroulante.
- Si la connexion n’existe pas dans le projet, sélectionnez le bouton de nouvelle connexion à une base de données et créez une connexion.
- Dans la zone de texte Name (Nom), donnez un nom à la requête que vous créez.
Il s’agit du nom qui apparaîtra dans la fenêtre Contents (Contenu) de la carte.
- Entrez ou collez une requête SQL dans la zone de texte Query (Requête).
Pour afficher une liste de tables et leurs colonnes, 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 toutes les colonnes de la table à 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 colonnes que vous ne souhaitez pas inclure et y ajouter des clauses à la requête pour limiter les données incluses dans la couche de requête.
- Choisissez comment les propriétés spatiales de la couche seront définies.
- Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS Pro à découvrir les propriétés spatiales de la couche) : ArcGIS AllSource utilise les propriétés spatiales de la première ligne renvoyée par la requête. ArcGIS AllSource détermine ces propriétés lorsque vous validez l’instruction SQL. Il s’agit de l’option par défaut.
- Define spatial properties for the layer (Définir les propriétés spatiales de la couche) : si vous choisissez cette option, vous devez spécifier les propriétés spatiales à utiliser pour la couche.
- Cochez la case Create a materialized view of the output query layer (Créer la vue matérialisée de la couche de requête en sortie) pour stocker la requête SQL en tant que vue matérialisée dans le stockage de données cloud.
- Lorsque vous créez une vue matérialisée dans BigQuery, utilisez les flèches vers le haut ou vers le bas pour spécifier le nombre de jours pendant lesquels la vue matérialisée doit rester dans le stockage de données.
La vue matérialisée sera supprimée une fois le nombre de jours spécifié écoulé. Si vous ouvrez la carte contenant la couche de requête après cette date d’expiration, ArcGIS recrée la vue matérialisée avec le même ensemble de définition et la même expiration qu’auparavant.
- Cliquez sur Validate (Valider) pour vérifier la syntaxe de la requête est correcte et qu’ArcGIS peut utiliser la requête.
Cela exécute la requête dans la base de données et vérifie si le jeu de résultats de la requête satisfait aux 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 suivantes s’appliquent :
- Le jeu de résultats doit comporter un champ spatial au maximum.
- Le jeu de résultats doit comporter une référence spatiale au maximum.
- Le jeu de résultats doit comporter un seul type de forme.
- Le jeu de résultats ne peut pas comporter de types de champ que ArcGIS ne prend pas en charge.
Si la validation échoue pour quelque raison que ce soit, un message d'erreur est renvoyé pour que vous puissiez modifier la requête.
- Cliquez sur Next (Suivant) une fois que la validation est terminée.
- Sélectionnez le champ d’identifiant unique de la couche de requête.
Toutes les entités de la carte nécessitent un identifiant unique. La couche de requête doit donc contenir un champ d’identifiant unique comprenant une valeur pour chaque entité. Pour en savoir plus sur le choix d’un champ d’identifiant unique pour une couche de requête, reportez-vous à la rubrique Champs d’identifiant uniques.
- Définissez les propriétés spatiales de la couche de requête.
Il se peut que ces paramètres soient déjà définis si vous avez choisi Let ArcGIS Pro discover spatial properties for the layer (Autoriser ArcGIS à découvrir les propriétés spatiales de la couche) à l’étape 6.
- Si vous définissez une couche de requête dans Redshift, indiquez d’inclure ou non les entités comprenant des coordonnées m ou des coordonnées z.
- Sélectionnez le type de géométrie dans le menu déroulant.
- Cliquez sur Coordinate System (Système de coordonnées) pour choisir le système de coordonnées de la référence spatiale utilisée par les données, ou importez la référence spatiale à partir d’un jeu de données existant.
N’oubliez pas que cette action ne reprojette pas les données.
Vous ne pouvez pas choisir de système de coordonnées lorsque vous définissez une couche de requête sur des données dans BigQuery ou Snowflake.
- Si vous avez choisi 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.
- Si vous avez choisi Define spatial properties for the layer (Définir les propriétés spatiales de la couche) à l’étape 6, renseignez la section supplémentaire apparaissant dans la boîte de dialogue.
Dans cette 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) : une étendue que vous spécifiez est utilisée pour l’étendue de couche de requête. Cliquez sur Next (Suivant) et saisissez l’étendue. L’étendue que vous spécifiez 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.
- 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.
Si vous choisissez de créer une vue matérialisée, la couche de requête est définie sur la vue matérialisée plutôt que sur la table source.
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.
Vous avez un commentaire à formuler concernant cette rubrique ?