Guide d'utilisation et de référence


Géocodeurs

La présente section décrit le processus de géocodage et explique comment exécuter un géocodeur en traitement par lots à partir du Centre de contrôle.

Présentation du géocodage

Comme indiqué précédemment, DB2 Extension Spatiale utilise une fonction appelée géocodeur pour convertir les données d'adresse en données spatiales et placer celles-ci dans des colonnes de table. La présente section explique les principales différences existant entre les géocodeurs et leurs sources de données. Elle décrit également les deux modes d'exécution possibles d'un géocodeur, ainsi que les facteurs à prendre en considération si vous envisagez d'utiliser ce type de fonction.

Avec Extension Spatiale, vous pouvez :

Le géocodeur par défaut convertit les adresses existant aux États-Unis en données spatiales de type ST_Point. Si vous voulez stocker d'autres types de données spatiales, vous pouvez vous connecter à un géocodeur qui permet de les générer. Si vous avez besoin de données spatiales représentant des lieux situés hors des États-Unis ou sans adresse (zones agricoles, etc.), vous pouvez vous connecter à un géocodeur spécifique.

Pour qu'un géocodeur complémentaire puisse être utilisé, il doit avoir été préalablement enregistré par des utilisateurs ou des fournisseurs à l'aide de la procédure mémorisée db2gse.gse_register_gc. Il est impossible de l'enregistrer à partir du Centre de contrôle. Pour des informations spécifiques sur cette procédure, reportez-vous à la section db2gse.gse_register_gc, et au Procédures mémorisées, pour des informations d'ordre général sur l'utilisation des procédures mémorisées de Extension Spatiale.

Un géocodeur fonctionne selon deux modes différents :

Lorsque vous envisagez d'utiliser un géocodeur, tenez compte des facteurs suivants :

  1. Lorsque vous utilisez le Centre de contrôle, vous ouvrez normalement la fenêtre Création d'une couche spatiale avant la fenêtre Exécution d'un géocodeur. Cela signifie que, via Extension Spatiale, vous pouvez configurer des déclencheurs associés au géocodage incrémentiel avant d'avoir lancé le processus de géocodage en traitement par lots. Il est donc possible que le traitement incrémentiel intervienne avant le traitement par lots. Lors du traitement par lots de toutes les données source, le géocodeur est alors amené à traiter des données qu'il a déjà géocodé en mode incrémentiel. Si cette redondance n'entraîne pas de doublons (en effet, lorsque des données spatiales sont générées deux fois, les données obtenues la première fois sont remplacées par celles générées en dernier), elle peut cependant provoquer une dégradation des performances. Pour éviter ceci, vous pouvez différer la définition des déclencheurs afin qu'elle n'intervienne qu'à l'issue du processus de géocodage en traitement par lots.
  2. Si les déclencheurs sont déjà définis lorsque vous vous apprêtez à géocoder les données source en traitement par lots, nous vous recommandons de les désactiver jusqu'à ce que cette opération soit terminée. Vous pouvez le faire à partir de la fenêtre Exécution d'un géocodeur ou d'un programme d'application en le codant pour qu'il appelle la procédure mémorisée db2gse.gse_disable_autogc. Dans le premier cas, Extension Spatiale réactive automatiquement les déclencheurs à l'issue du géocodage, dans le second, vous pouvez les réactiver en appelant la procédure mémorisée db2gse.gse_enable_autogc.
  3. Si vous souhaitez exécuter un géocodeur en traitement par lots pour peupler une colonne spatiale dotée d'un index, désactivez ou supprimez d'abord l'index. En effet, si l'index est toujours opérationnel pendant l'exécution du géocodeur, on constate une importante dégradation des performances. Si vous utilisez le Centre de contrôle, vous pouvez désactiver l'index à partir de la fenêtre Exécution d'un géocodeur. Extension Spatiale réactive automatiquement l'index à l'issue du géocodage. Si vous recourez à un programme d'application, vous pouvez supprimer l'index à l'aide de l'instruction SQL DROP. Dans ce cas, veillez à noter les paramètres de l'index afin de pouvoir recréer celui-ci une fois le géocodage en traitement par lots achevé.
  4. Lorsque le géocodeur lit un enregistrement de données source, il tente de trouver un enregistrement correspondant dans les données de référence. Cette correspondance doit atteindre un certain degré d'exactitude (appelé précision) pour que le géocodeur traite l'enregistrement. Ainsi, une précision de 85 signifie que la correspondance entre l'enregistrement source et les données de référence doit être d'au moins 85 % pour que l'enregistrement source soit traité.

    Vous spécifiez la précision voulue, mais vous serez éventuellement amené à la modifier. Par exemple, supposons que la précision soit de 100. Si de nombreux enregistrements source contiennent des adresses plus récentes que les données de référence, il sera impossible d'obtenir un niveau de correspondance de 100 % entre ces enregistrements et les données de référence. Par conséquent, le géocodeur rejettera les enregistrements source. En règle générale, si un géocodeur génère des données spatiales qui paraissent insuffisantes ou très imprécises, vous parviendrez éventuellement à résoudre ce problème en modifiant la précision et en relançant le géocodeur.

Il existe plusieurs manières de contrôler le nombre ou la plage d'enregistrements qu'un géocodeur traite avant l'émission d'une demande de validation :

Méthode 1

Le géocodeur traite les données d'adresse d'un nombre déterminé d'enregistrements entre deux demandes de validation. Cette méthode vous permet de gérer avec précision la taille des unités d'oeuvre. Toutefois, elle consomme beaucoup plus de temps système que les autres méthodes présentées ici.

Pour utiliser cette méthode, commencez par indiquer le nombre d'enregistrements devant être traités avant chaque validation. Si vous utilisez le Centre de contrôle, vous pouvez définir ce nombre à l'aide du sélecteur Portée de validation à partir de la fenêtre Exécution d'un géocodeur. Si vous écrivez un programme d'application, affectez ce nombre au paramètre commitScope de la procédure mémorisée db2gse.gse_run_gc.

Méthode 2

Le géocodeur traite les données d'adresse de tous les enregistrements d'une table entre deux demandes de validation. Avec cette méthode, le géocodeur traite les enregistrements comme il le ferait en mode de traitement par lots, consommant beaucoup moins de temps système par enregistrement qu'avec la méthode 1. Toutefois, cette méthode vous offre moins de contrôle sur la taille de l'unité d'oeuvre que la méthode 1. Par conséquent, vous ne pouvez pas contrôler combien de verrous doivent être maintenus et combien de postes de journal doivent être écrits pendant l'exécution du géocodeur. En outre, si le géocodeur rencontre une erreur qui nécessite une annulation, vous devrez relancer son exécution et traiter à nouveau tous les enregistrements. Le coût en ressources résultant risque d'être élevé si la table est très volumineuse et si l'erreur et l'annulation se produisent après le traitement de la plupart des enregistrements.

Pour utiliser cette méthode, commencez par régler le sélecteur Portée de validation sur la valeur zéro dans la fenêtre Exécution d'un géocodeur du Centre de contrôle. Si vous écrivez un programme d'application, affectez la valeur zéro au paramètre commitScope de la procédure mémorisée db2gse.gse_run_gc.

Méthode 3

Le géocodeur traite les données d'adresse d'un sous-ensemble des enregistrements de la table entre deux demandes de validation. Il peut ensuite géocoder les données d'adresse d'un second sous-ensemble et, si nécessaire, d'un troisième, d'un quatrième, etc. Avec cette méthode, le géocodeur traite les enregistrements de chaque sous-ensemble comme il le ferait en mode de traitement par lots, consommant beaucoup moins de temps système par enregistrement qu'avec la méthode 1. Toutefois, cette méthode, comme la méthode 2, ne vous permet pas de contrôler directement la taille de l'unité d'oeuvre. En outre, elle nécessite le paramétrage et l'exécution du géocodeur plusieurs fois, une pour chaque sous-ensemble d'enregistrements.

Pour définir un sous-ensemble d'enregistrements à partir du Centre de contrôle, procédez comme suit :

Pour définir un sous-ensemble d'enregistrements dans un programme d'application, codez la procédure mémorisée db2gse.gse_run_gc de la manière suivante :


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]