Suite

Connectez-vous à postgresql en utilisant ARCSDESQLExecute


J'essaie de me connecter à une base de données postgresql à l'aide d'ARCSDESQLExecute à partir d'ArcPy. Lorsque vous exécutez mon script en mode autonome (débogage à partir de pyscripter), cela fonctionne bien. Lors de l'exécution de mon script en tant qu'outil à partir d'ArcMap, cela fonctionne bien.

Je suis en mesure de publier l'outil en tant que GPTool et d'afficher le formulaire de test à partir de l'interface de repos. Lors de l'exécution de l'outil à partir de l'interface de repos, il échoue avec :

sde_conn = arcpy.ArcSDESQLExecute("localsrv", "5432", "", "myusername", "mypassword") Fichier "c:program filesarcgisserverarcpyarcpyarcobjectsmixins.py", ligne 893 , dans __init__ _BaseArcObject.__init__(self, *gp_fixargs((server, instance, database, user, password), True)) Fichier "c:program filesarcgisserverarcpyarcpyarcobjects\_base.py", ligne 47, dans __init__ pour arg dans args)) RuntimeError : Objet : Erreur de connexion Échec de l'opération Échec de l'exécution (MyGPTool). Échec de l'exécution

J'ai aussi essayé ceci :

sde_conn = arcpy.ArcSDESQLExecute("localsrv", "5432", "mydatabase", "myusername", "mypassword")

Lorsque j'essaie d'utiliser un fichier .sde pour arcpy.ArcSDESQLExecute, j'obtiens la même erreur. Lorsque vous essayez de vous connecter à un serveur MSSQL, il ne plante pas, seule la connexion au serveur postgresql échoue.

J'ai essayé de le publier sur deux serveurs arcgis différents, même comportement. Versions du serveur Arcgis testées : 10.2 et 10.1.1


Desktop est une application 32 bits, les bibliothèques clientes 32 bits sont donc requises lors de la connexion à la base de données.

ArcGIS Server est en 64 bits. Les bibliothèques client 64 bits doivent être installées pour que le service fonctionne. Le lien d'aide particulier pour les bibliothèques clientes Postgres peut être trouvé ici


Comment se connecter à PostgreSQL de manière stable

Maintenant, j'installe PostgreSQL 13 sur un serveur cloud distant et expose le port 5432 au réseau public. J'ajoute une liste blanche dans le fichier de configuration PostgreSQL pg_hba.conf comme ceci :

qui 127.113.122.x est mon adresse IP publique de mon réseau, mais le problème est que l'adresse IP change toujours lorsque je redémarre le routeur ou pour une autre raison. Lorsque l'adresse IP a changé, je dois me connecter au serveur distant et modifier le fichier de configuration PostgreSQL, supprimer l'ancienne adresse IP et ajouter une nouvelle adresse IP. Cela me rend fou, je dois changer l'adresse IP de la configuration PostgreSQL encore et encore, existe-t-il un moyen de connecter PostgreSQL de manière stable? à la fois sécurisé et facile à connecter.


1 réponse 1

. max_connection défini sur 100 . superuser_reserved_connections est défini sur 3. Cela signifie-t-il que j'ai effectivement 97 connexions ?

. limites de connexion de rôle ? À l'heure actuelle, ils sont tous à -1 (illimité) mais mon conseil est qu'ils doivent être définis.

"Conseils" de qui, exactement?
Si quelqu'un vous dit que vous doit faire quelque chose, alors vous espérez qu'ils ont au moins certains idée de comment de le faire et devrait être en mesure de raconter vous ceci.

Bien sûr, la première chose à faire est de verrouiller votre Test Postgres 12 et voyez ce qui casse. Faire des changements comme celui-ci directement dans la production serait de la folie.


Comment effectuer une recherche en texte intégral à l'échelle de la base de données dans PostgreSQL ?

J'ai une base de données PostgreSQL avec environ 500 tables. Chaque table a une colonne d'ID unique nommée id et une colonne d'ID utilisateur nommée user_id . Je souhaite effectuer une recherche en texte intégral de toutes les colonnes varchar dans toutes ces tables pour un utilisateur particulier. Je le fais aujourd'hui avec ElasticSearch mais j'aimerais simplifier mon architecture. Je comprends que je peux ajouter des colonnes de recherche en texte intégral à toutes les tables avec des éléments tels que des colonnes générées stockées, puis ajouter des index pour une recherche rapide en texte intégral :

Cependant, je ne sais pas comment faire des recherches croisées efficacement. Peut-être une vue sur toutes les colonnes textsearchable_index_col ? J'aimerais que le résultat soit quelque chose comme le nom de la table et l'ID de la ligne correspondante. Par exemple:

Si cela compte, j'utilise Ruby on Rails comme client avec ActiveRecord. J'utilise une base de données PostgreSQL 13 gérée chez Digital Ocean, je ne pourrai donc pas installer de plugins psql personnalisés.


Ressources du Centre national de données géophysiques

Un webinaire de formation en direct, “Resources of the National Geophysical Data Center,” sera offert le mercredi 23 avril 2014.

Heure de début : 14 h heure de l'Est
Durée : 60 minutes
Intervenant : Dan Kowal, administrateur de données au National Geophysical Data Center
Résumé : Dan fournira un aperçu de l'une des trois archives de données de la NOAA spécialisées dans la gestion des données scientifiques des données géophysiques couvrant la surface du soleil jusqu'au fond du fond marin. Il donnera un aperçu des types de services disponibles à partir du Data Center.
Objectifs d'apprentissage : les participants découvriront l'étendue des disciplines de données couvertes par le NGDC et les outils d'accès disponibles pour interroger et récupérer des données.

L'inscription est obligatoire. Les places sont limitées selon le principe du premier arrivé, premier servi. Lors de l'inscription, un e-mail de confirmation d'inscription inclura les instructions pour rejoindre le webinaire.

Les confirmations d'inscription au webinaire seront envoyées à partir de [email protected] Pour assurer la livraison des confirmations d'inscription, les personnes inscrites doivent configurer des filtres de courrier indésirable ou de courrier indésirable pour autoriser les messages provenant de cette adresse e-mail.

FDLP News & Events est un service du Federal Depository Library Program.


Comment être efficace en tant que professionnel SIG (partie 1)

Il y a toujours eu un grand intérêt pour savoir comment rester efficace quel que soit le type de travail que vous faites. Il existe des tonnes de blogs sur l'efficacité personnelle, de nombreux livres sur le sujet de la réalisation des tâches et des listes de logiciels utiles qui peuvent vous faire gagner du temps. Ma pensée était de résumer ici ce que j'ai appris jusqu'à présent sur le fait de rester efficace en tant que professionnel des SIG afin de le rendre plus pertinent pour toutes les personnes impliquées dans l'industrie des SIG. Il y aura plusieurs posts à ce sujet.

1. Familiarisez-vous avec les produits SIG avec lesquels vous travaillez.
Quel que soit le logiciel SIG que vous utilisez, vous passerez la majeure partie de votre journée à utiliser une ou deux applications spécifiques, produisant une carte, convertissant des ensembles de données ou résolvant des problèmes géographiques. Il est donc primordial de se familiariser avec le logiciel. L'une des premières choses que je fais lorsque j'apprends une nouvelle application est de parcourir le menu du haut et de vérifier quelles sont les options qui s'offrent à moi. Je déteste travailler avec une application que je passe le plus clair de mon temps sans comprendre à quoi servent les paramètres et les options disponibles dans les menus.

Peut-être que vous découvrirez un outil sympa qui vous ferait gagner du temps. Ou il pourrait y avoir une option pour la personnalisation, afin que vous puissiez interagir beaucoup plus avec l'application en changeant la couleur d'arrière-plan ou la disposition des barres d'outils.

2. Pensez toujours à comment vous pouvez faire les choses plus rapidement.
Il est toujours tentant de simplement faire avancer les choses et de les oublier. Cette envie est difficile à battre. Peut-être avez-vous besoin d'exécuter un outil de traitement de données en passant par quelques menus. Si vous le faites plusieurs fois par jour, cela se traduira par une demi-minute par jour qui se traduira par 15 minutes en un mois. Prenez ici d'autres choses que vous faites qui pourraient être faites plus rapidement. Vous obtiendrez une heure entière dans un mois. Vous pourriez le dépenser pour quelque chose de précieux plutôt que de cliquer sur les menus, n'est-ce pas ?

Commençons par les raccourcis du système d'exploitation. La plupart d'entre vous sont sous Windows, alors apprenez-en bien. Parfois, vous n'aurez tout simplement pas de souris et vous devrez démarrer un explorateur Windows avec juste un clavier. Appuyer sur les touches est bien plus rapide que de déplacer le curseur de la souris.

Apprenez ensuite les raccourcis du logiciel SIG. Si vous modifiez beaucoup de données géographiques, découvrez les raccourcis clavier pouvant être utilisés lors de la mise à jour (ArcGIS). Apprenez également des raccourcis pour vous déplacer dans l'application en attribuant des touches de raccourci. Vous serez étonné de la rapidité avec laquelle vous utiliserez l'application. Recherchez dans la documentation du logiciel ArcGIS les raccourcis déjà intégrés.

3. Maîtrisez la dactylographie.
Vous devriez pouvoir taper rapidement (toucher la saisie) sans regarder votre clavier. Si vous êtes courageux, pourquoi ne pas vous procurer un clavier Dvorak et apprendre à taper dessus. La recherche montre que la mise en page Dvorak est plus sûre et plus agréable à utiliser. J'ai reçu le mien de TypeMatrix et je l'aime bien, même s'il était douloureux d'accepter de taper très lentement en premier. Il faut généralement environ un mois pour passer complètement à Dvorak.

Si vous exécutez de nombreux programmes Windows, pourquoi ne pas leur ajouter des raccourcis Windows ? Windows est capable de créer des raccourcis pour presque tout, d'un programme installé à un élément du panneau de configuration.

Toutes ces choses prennent du temps à s'installer au départ, mais cela en vaut la peine à long terme. Pensez simplement à cela comme à un investissement qui portera ses fruits assez rapidement.

Plus de conseils seront publiés bientôt!

Évaluer ce:


ArcREST : package Python pour l'administration d'ArcGIS Server et d'ArcGIS Online/Portal

ArcREST est un excellent ensemble d'outils que j'ai trouvé il y a quelque temps. Il s'adresse à toute personne qui administre ArcGIS Online, ArcGIS Portal ou ArcGIS Server. En bref, il s'agit d'un wrapper Python pour l'API REST Esri. J'ai dû écrire de nombreux scripts Python qui m'ont permis de mettre à jour les propriétés des services ArcGIS Server par lots, mais maintenant je n'ai plus besoin d'écrire quelque chose comme ça. C'est parce que maintenant je peux faire tout ce que j'ai fait tout seul en utilisant ArcREST. Si vous êtes un administrateur d'ArcGIS Online / Portal, vous devriez certainement jeter un œil à ce module car il peut vous faire gagner beaucoup de temps et vous n'aurez pas besoin de créer vos propres scripts pour gérer le contenu d'ArcGIS Online et les paramètres d'organisation avec les techniques de scénarisation.

Ce package Python est créé par l'équipe Esri Solutions et est disponible en accès public sur GitHub. Vous pouvez télécharger le code source, éventuellement installer le package, puis l'utiliser sur votre ordinateur local comme n'importe quel package Python. Si vous ne souhaitez pas installer le package, vous pouvez simplement ajouter le chemin des dossiers arcrest et arcresthelper au chemin Python en ajoutant ceci dans votre fichier Python :

importer le système
sys.path.append(r”chemin vers le dossier arcrest”) #C:GISTools

A condition que vous ayez un dossier nommé arcrest dans l'exemple Outils dossier, lorsque vous exécutez le fichier Python, il pourra importer le package arcrest et accéder à ses modules.

Pour avoir un aperçu de ce package Python, jetez un œil à cette excellente vidéo DevSummit 2015 où les développeurs d'ArcREST en ont parlé.

Même s'il ne s'agit pas d'une implémentation complète de l'API REST Esri, elle en couvre la majeure partie et les développeurs Esri mettent à jour le code pour inclure les dernières modifications apportées à l'API REST. C'est une bonne idée de cloner le référentiel et d'extraire les modifications de temps en temps pour obtenir le dernier code si vous l'utilisez quotidiennement.

Au début, je me sentais un peu triste que tout le code Python que j'ai écrit pour administrer ArcGIS Server ne soit plus utilisé, mais en même temps, je suis tellement content qu'ArcREST ait été développé. C'est un excellent logiciel qui vous permettra de démarrer en un rien de temps et d'accéder à toutes vos ressources serveur/en ligne avec Python.

Caveat: il a des dépendances sur arcpy package qui est utilisé pour convertir les ensembles de fonctionnalités en JSON et inversement, mais à part cela, vous devriez pouvoir exécuter les outils sur une machine sans aucun logiciel ArcGIS installé.

Évaluer ce:


Exécution de fonctions R dans la base de données PostgreSQL

J'essaie d'intégrer les modèles de prévision programmés R dans PostgreSQL à l'aide de l'extension PL/R décrite dans http://www.joeconway.com/plr/. Mais l'extension ne peut pas être installée sur le PostgreSQL optimisé par Amazon RDS dans l'entreprise. Est-ce que quelqu'un connaît des alternatives pour que les codes R s'exécutent dans PostgreSQL s'exécutant sur RDS par Amazon ? Ou d'autres techniques pour exécuter une analyse R avancée dans la base de données ?

Soit dit en passant, je connaissais la méthode pour me connecter à la base de données à partir de l'environnement R à l'aide du package "RPostgreSQL" et réécrire les prévisions dans la base de données. J'ai essayé cette approche et cela fonctionne bien. Cependant, cette approche n'est pas mon intention puisqu'elle implique toujours une plateforme supplémentaire (R) pour y effectuer l'analyse. Je recherche des solutions pour que le modèle de prévision soit exécuté directement dans la base de données. Merci d'avance pour toute suggestion.