Traitement tuilé de jeux de données volumineux
Une logique opérationnelle appelée traitement de subdivision adaptative est appliquée afin d'améliorer la performance et l'évolutivité des outils de superposition d'entités tels que Agréger et Intersecter. L'utilisation de cette logique est déclenchée lorsque les données ne peuvent pas être traitées dans le cadre de l'espace de mémoire physique disponible. Afin de respecter les limites de mémoire physique, ce qui permet d'améliorer considérablement les performances, le traitement est réalisé de manière incrémentielle sur des subdivisions de l'étendue d'origine. Les entités à cheval sur les limites de ces subdivisions (également appelées tuiles) sont fractionnées le long de la limite de la tuile et réassemblées en une seule entité pendant la dernière étape du traitement. Les sommets ajoutés à ces limites de tuile sont conservés dans les entités en sortie. Des limites de tuile peuvent également subsister dans la classe d'entités en sortie lorsqu'une entité en cours de traitement est si grande que le processus de subdivision ne peut pas la restituer dans son état d'origine à l'aide de la mémoire disponible.
Utilité de la subdivision des données
Les outils d'analyse de superposition donnent les meilleurs résultats lorsque le traitement peut être réalisé dans la mémoire physique de l'ordinateur (ou mémoire RAM). Cela peut parfois s'avérer impossible lors de l'utilisation de jeux de données contenant soit un grand nombre d'entités, soit des entités très complexes comprenant des centaines de milliers ou des millions de sommets. Sans l'utilisation du tuilage, la mémoire virtuelle prend le relais lorsque la mémoire physique est épuisée, puis un système de pagination interne est utilisé lorsque la mémoire virtuelle est épuisée. Chaque mode de gestion de mémoire consécutif (physique, virtuelle, pagination interne) est exponentiellement plus lent que le mode précédent.
Forme des tuiles
Chaque processus commence avec une seule tuile qui couvre toute l'étendue des données. Si les données de la tuile unique sont trop volumineuses pour être traitées en mémoire physique, elle est subdivisée en quatre tuiles égales. Le traitement commence alors sur une sous-tuile, à nouveau sous-divisée si les données de ce deuxième niveau de tuiles sont encore trop volumineuses. Cette opération se poursuit jusqu'à ce que les données de chaque tuile puissent être traitées dans la mémoire physique. Voir l'exemple ci-dessous :
Emprise de l'ensemble des entités en entrée
Le processus commence avec une tuile qui couvre toute l'étendue de l'ensemble des jeux de données. Elle est désignée par le niveau de tuile 1.
Si les données sont trop volumineuses pour le traitement en mémoire, la tuile de niveau 1 est subdivisée en quatre tuiles égales. Ces quatre sous-tuiles sont appelées tuiles de niveau 2.
Selon la taille des données de chaque tuile, certaines tuiles sont encore subdivisées, contrairement à d'autres.
Outils utilisant des subdivisions
Les outils suivants de la boîte à outils Outils d'analyse appliquent une logique de subdivision lors du traitement de données volumineuses :
- Zone tampon (lors de l'utilisation de l'option de fusion)
- Découper
- Effacer
- Identité
- Intersecter
- Fractionner
- Différence symétrique
- Agréger
- Mettre à jour
Les outils suivants de la boîte à outils Gestion des données appliquent également une logique de subdivision lors du traitement de jeux de données volumineux :
- Fusionner
- Entité vers polygone
Echec d'un processus avec une erreur de mémoire insuffisante
L'approche de subdivision peut être inutile pour le traitement d'entités extrêmement grandes (comportant plusieurs millions de sommets). Le fractionnement et le réassemblement répété d'entités extrêmement grandes le long des limites de tuile est très coûteux en termes de mémoire et peut provoquer des erreurs de mémoire insuffisante si l'entité est trop grande. Cela dépend de l'espace de mémoire physique ou de mémoire RAM disponible sur l'ordinateur qui exécute le processus. Certaines grandes entités peuvent provoquer des erreurs de mémoire insuffisante sur une configuration d'ordinateur et pas sur une autre. L'erreur de mémoire insuffisante peut survenir de manière aléatoire sur une même machine, en fonction des ressources utilisées par d'autres applications. Les entités très grandes comportant de nombreux sommets peuvent correspondre par exemple aux bordures de route pour une ville entière ou à un polygone représentant un estuaire de rivière complexe.
L'erreur de mémoire insuffisante peut également se produire si une deuxième application ou un outil de géotraitement est exécuté pendant le traitement par un outil. Ce deuxième processus peut utiliser une partie de la mémoire physique libre que le processus de subdivision considérait disponible, obligeant le processus de subdivision à demander plus de mémoire physique que l'espace réellement disponible. Il est déconseillé d'effectuer d'autres opérations sur un ordinateur lors du traitement de jeux de données volumineux.
Une technique conseillée consiste à utiliser l'outil Dés pour diviser de grandes entités en entités plus réduites avant le traitement.
Format de données recommandé lors de l'utilisation de données volumineuses
La taille des géodatabases personnelles et des fichiers de formes est limitée à 2 gigaoctets (Go). Si la sortie d'un traitement dépasse cette taille, des échecs peuvent se produire. Les géodatabases d'entreprise et les géodatabase fichier ne sont pas soumises à cette limitation. Elles sont donc recommandées comme espace de travail en sortie lors du traitement de jeux de données très volumineux. Pour les géodatabases d'entreprise, consultez l'administrateur de base de données pour plus d'informations sur les règles de chargement de données. L'exécution d'opérations de chargement imprévu/non autorisé de volumes de données importants peut être restreinte.