Mehr

Verbinden Sie sich mit postgresql mit ARCSDESQLExecute

Verbinden Sie sich mit postgresql mit ARCSDESQLExecute


Ich versuche, mit ARCSDESQLExecute von ArcPy eine Verbindung zu einer Postgresql-Datenbank herzustellen. Wenn mein Skript als eigenständiges ausgeführt wird (Debugging von Pyscripter), funktioniert es gut. Wenn mein Skript als Werkzeug von ArcMap ausgeführt wird, funktioniert es einwandfrei.

Ich bin in der Lage, das Tool als GPTool zu veröffentlichen und das Testformular von der restlichen Oberfläche aus anzuzeigen. Wenn das Tool über die Rest-Schnittstelle ausgeführt wird, schlägt es fehl mit:

sde_conn = arcpy.ArcSDESQLExecute("localsrv", "5432", "", "myusername", "mypassword") Datei "c:program filesarcgisserverarcpyarcpyarcobjectsmixins.py", Zeile 893 , in __init__ _BaseArcObject.__init__(self, *gp_fixargs((server, instance, database, user, password), True)) Datei "c:program filesarcgisserverarcpyarcpyarcobjects\_base.py", Zeile 47, in __init__ für arg in args)) RuntimeError: Objekt: Verbindungsfehler Operation Failed Ausführung fehlgeschlagen (MyGPTool). Konnte nicht ausgeführt werden

Das habe ich auch probiert:

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

Wenn ich versuche, eine .sde-Datei für arcpy.ArcSDESQLExecute zu verwenden, erhalte ich die gleiche Fehlermeldung. Beim Versuch, eine Verbindung zu einem MSSQL-Server herzustellen, stürzt er nicht ab, nur die Verbindung zum Postgresql-Server schlägt fehl.

Ich habe versucht, es auf zwei verschiedenen Arcgis-Servern zu veröffentlichen, gleiches Verhalten. Getestete Arcgis-Serverversionen: 10.2 und 10.1.1


Desktop ist eine 32-Bit-Anwendung, daher sind 32-Bit-Client-Bibliotheken erforderlich, wenn eine Verbindung zur Datenbank hergestellt wird.

ArcGIS-Server ist 64-Bit. Die 64-Bit-Client-Bibliotheken müssen installiert sein, damit der Dienst funktioniert. Den speziellen Hilfe-Link für Postgres-Client-Bibliotheken finden Sie hier


So stellen Sie eine stabile Verbindung zu PostgreSQL her

Jetzt installiere ich PostgreSQL 13 auf einem Remote-Cloud-Server und stelle den 5432-Port dem öffentlichen Netzwerk zur Verfügung. Ich füge eine Whitelist in der PostgreSQL-Konfigurationsdatei pg_hba.conf wie folgt hinzu:

was 127.113.122.x ist meine öffentliche IP-Adresse meines Netzwerks, aber das Problem ist, dass sich die IP-Adresse immer ändert, wenn ich den Router neu starte oder aus anderen Gründen. Wenn sich die IP geändert hat, muss ich mich beim Remote-Server anmelden und die PostgreSQL-Konfigurationsdatei ändern und die alte IP entfernen und eine neue IP hinzufügen. Es macht mich verrückt, ich muss die IP der PostgreSQL-Konfiguration immer wieder ändern. Gibt es eine Möglichkeit, PostgreSQL stabil zu verbinden? sowohl sicher als auch einfach zu verbinden.


1 Antwort 1

. max_connection auf 100 gesetzt. superuser_reserved_connections ist auf 3 gesetzt. Bedeutet das, dass ich effektiv 97 Verbindungen habe?

. Grenzen der Rollenverbindung? Im Moment sind sie alle -1 (unbegrenzt), aber meine Anleitung ist, dass sie eingestellt werden müssen.

"Anleitung" von dem, exakt?
Wenn dir jemand sagt, dass du muss etwas tun, dann würdest du hoffen, dass sie es zumindest haben manche Idee von wie dazu und sollte in der Lage sein erzählen Du das.

Als erstes musst du natürlich deine Prüfen Postgres 12-Instanz und sehen Sie, was kaputt geht. Solche Änderungen direkt in der Produktion vorzunehmen, wäre Wahnsinn.


Wie führe ich eine datenbankweite Volltextsuche in PostgreSQL durch?

Ich habe eine PostgreSQL-Datenbank mit etwa 500 Tabellen. Jede Tabelle hat eine eindeutige ID-Spalte namens id und eine Benutzer-ID-Spalte namens user_id . Ich möchte eine Volltextsuche aller varchar-Spalten in all diesen Tabellen für einen bestimmten Benutzer durchführen. Ich mache dies heute mit ElasticSearch, aber ich möchte meine Architektur vereinfachen. Ich verstehe, dass ich allen Tabellen Volltextsuchspalten mit Dingen wie gespeicherten generierten Spalten hinzufügen und dann Indizes für eine schnelle Volltextsuche hinzufügen kann:

Ich bin jedoch nicht damit vertraut, wie man tabellenübergreifende Suchen effizient durchführt. Vielleicht eine Ansicht über alle textsearchable_index_col-Spalten? Ich möchte, dass das Ergebnis so etwas wie der Tabellenname und die ID der übereinstimmenden Zeile ist. Beispielsweise:

Wenn es darauf ankommt, verwende ich Ruby on Rails als Client mit ActiveRecord. Ich verwende eine verwaltete PostgreSQL 13-Datenbank bei Digital Ocean, sodass ich keine benutzerdefinierten psql-Plugins installieren kann.


Ressourcen des National Geophysical Data Center

Am Mittwoch, den 23. April 2014, wird ein Live-Trainings-Webinar “Resources of the National Geophysical Data Center” angeboten.

Startzeit: 14:00 Uhr Osterzeit
Dauer: 60 Minuten
Sprecher: Dan Kowal, Datenadministrator beim National Geophysical Data Center
Zusammenfassung: Dan wird einen Hintergrund zu einem der drei Datenarchive der NOAA liefern, das sich auf die wissenschaftliche Datenverwaltung geophysikalischer Daten spezialisiert hat, die sich von der Sonnenoberfläche bis zum Meeresboden erstrecken. Er wird einen Überblick über die Arten von Diensten geben, die im Rechenzentrum verfügbar sind.
Lernziele: Die Teilnehmer lernen die Bandbreite der von NGDC abgedeckten Datendisziplinen und die verfügbaren Zugriffstools zum Abfragen und Abrufen von Daten kennen.

Eine Registrierung ist erforderlich. Der Platz ist nach dem First-Come-First-Served-Prinzip begrenzt. Bei der Registrierung erhalten Sie eine E-Mail-Registrierungsbestätigung mit Anweisungen zur Teilnahme am Webinar.

Anmeldebestätigungen für das Webinar werden von [email protected] gesendet. Um die Zustellung von Registrierungsbestätigungen sicherzustellen, sollten Registranten Junk-Mail oder Spam-Filter so konfigurieren, dass Nachrichten von dieser E-Mail-Adresse zugelassen werden.

FDLP News & Events ist ein Service des Federal Depository Library Program.


Wie man als GIS-Profi effizient ist (Teil 1)

Es war schon immer ein großes Interesse daran, effektiv zu bleiben, unabhängig davon, welche Art von Arbeit Sie ausüben. Es gibt Unmengen von Blogs über persönliche Effektivität, viele Bücher über das Erledigen von Aufgaben und Listen mit nützlichen Softwareprogrammen, die eine großartige Zeitersparnis darstellen können. Mein Gedanke war, hier zusammenzufassen, was ich bisher gelernt habe, um als GIS-Profi effizient zu bleiben, um es für alle Beteiligten in der GIS-Branche relevanter zu machen. Dazu wird es mehrere Beiträge geben.

1. Lernen Sie die GIS-Produkte kennen, mit denen Sie arbeiten.
Unabhängig davon, welche GIS-Software Sie verwenden, verbringen Sie den größten Teil Ihres Tages damit, eine oder zwei bestimmte Anwendungen zu betreiben, eine Karte zu erstellen, Datensätze zu konvertieren oder geografische Probleme zu lösen. Daher ist es von entscheidender Bedeutung, mit der Software vertraut zu sein. Eines der ersten Dinge, die ich mache, wenn ich eine neue Anwendung lerne, ist, durch das Hauptmenü zu gehen und zu prüfen, welche Optionen mir zur Verfügung stehen. Ich hasse es, mit einer Anwendung zu arbeiten, die ich die meiste Zeit damit verbringe, ohne den Zweck der in den Menüs verfügbaren Einstellungen und Optionen zu verstehen.

Vielleicht finden Sie ein cooles Tool, das Ihnen etwas Zeit spart. Oder es könnte eine Option für die Anpassung geben, sodass Sie die Interaktion mit der Anwendung viel mehr genießen können, indem Sie die Hintergrundfarbe oder das Layout der Symbolleisten ändern.

2. Denken Sie immer daran, wie Sie Dinge schneller erledigen können.
Es ist immer verlockend, Dinge einfach zu erledigen und sie zu vergessen. Dieser Drang ist kaum zu überbieten. Vielleicht müssen Sie ein Datenverarbeitungstool ausführen, indem Sie ein paar Menüs durchgehen. Wenn Sie dies mehrmals täglich tun, ergibt dies eine halbe Minute pro Tag, was 15 Minuten in einem Monat ergibt. Nehmen Sie hier andere Dinge, die Sie tun, die schneller erledigt werden könnten. Sie erhalten in einem Monat eine ganze Stunde. Sie könnten es für etwas Wertvolles ausgeben, anstatt sich durch die Menüs zu klicken, oder?

Beginnen wir mit den Verknüpfungen des Betriebssystems. Die meisten von Ihnen arbeiten mit Windows, also lernen Sie es gut kennen. Manchmal haben Sie einfach keine Maus und müssen einen Windows-Explorer nur mit einer Tastatur starten. Das Drücken der Tasten ist viel schneller als das Bewegen des Mauszeigers.

Dann lernen Sie die Verknüpfungen der GIS-Software kennen. Wenn Sie häufig geographische Daten bearbeiten, lernen Sie Tastenkombinationen, die während der Bearbeitung verwendet werden können (ArcGIS), lernen Sie Tastenkombinationen kennen, um sich in der Anwendung zurechtzufinden, indem Sie Tastenkombinationen zuweisen. Sie werden staunen, wie viel schneller Sie die Anwendung bedienen werden. Suchen Sie in der Dokumentation zur ArcGIS-Software nach den bereits eingebetteten Verknüpfungen.

3. Meistern Sie die Berührungseingabe.
Sie sollten in der Lage sein, schnell zu tippen (Touch-Typing), ohne auf Ihre Tastatur zu schauen. Wenn Sie mutig sind, holen Sie sich eine Dvorak-Tastatur und lernen Sie, darauf zu tippen. Die Forschung zeigt einige Beweise dafür, dass das Dvorak-Layout sicherer und angenehmer zu arbeiten ist. Ich habe meins von TypeMatrix und es gefällt mir sehr gut, auch wenn es schmerzhaft war, zuerst wirklich langsam zu tippen. Es dauert normalerweise ungefähr einen Monat, um vollständig auf Dvorak umzustellen.

Wenn Sie viele Windows-Programme ausführen, fügen Sie ihnen Windows-Verknüpfungen hinzu. Windows ist in der Lage, Verknüpfungen für fast alles zu erstellen, von einem installierten Programm bis hin zu einem Element der Systemsteuerung.

All diese Dinge brauchen anfangs Zeit für die Einrichtung, aber es lohnt sich auf lange Sicht. Stellen Sie sich das nur als Investition vor, die sich schon bald auszahlen wird.

Weitere Tipps werden in Kürze veröffentlicht!

Bewerten Sie dies:


ArcREST: Python-Paket zur Verwaltung von ArcGIS Server und ArcGIS Online/Portal

ArcREST ist ein großartiges Toolset, das ich vor einiger Zeit gefunden habe. Es richtet sich an jeden, der ArcGIS Online, ArcGIS Portal oder ArcGIS Server verwaltet. Kurz gesagt, es ist ein Python-Wrapper für die Esri REST API. Ich musste viele Python-Skripts schreiben, mit denen ich die Eigenschaften von ArcGIS Server-Services im Batch aktualisieren konnte, aber jetzt muss ich nichts dergleichen mehr schreiben. Dies liegt daran, dass ich jetzt alles, was ich getan habe, allein mit ArcREST tun kann. Wenn Sie ein ArcGIS Online-/Portal-Administrator sind, sollten Sie sich dieses Modul unbedingt ansehen, da es Ihnen viel Zeit sparen kann und Sie keine eigenen Skripte zum Verwalten der ArcGIS Online-Inhalts- und Organisationseinstellungen mit erstellen müssen die Skripttechniken.

Dieses Python-Paket wurde vom Esri Solutions-Team verfasst und ist auf GitHub öffentlich zugänglich. Sie können den Quellcode herunterladen, optional das Paket installieren und es dann wie jedes Python-Paket auf Ihrem lokalen Computer verwenden. Wenn Sie das Paket nicht installieren möchten, können Sie einfach den Pfad zu den Ordnern arcrest und arcresthelper zum Python-Pfad hinzufügen, indem Sie dies in Ihre Python-Datei einfügen:

Importsystem
sys.path.append(r”path to arcrest folder”) #C:GISTools

Vorausgesetzt, Sie haben einen Ordner namens Bogenruhe im Beispiel Werkzeuge Ordner, wenn Sie die Python-Datei ausführen, kann sie das arcrest-Paket importieren und auf seine Module zugreifen.

Um einen Überblick über dieses Python-Paket zu erhalten, sehen Sie sich dieses hervorragende DevSummit 2015-Video an, in dem Entwickler von ArcREST darüber gesprochen haben.

Auch wenn dies keine vollständige Implementierung der Esri REST API ist, deckt sie das meiste davon ab und Esri Entwickler aktualisieren den Code, um die neuesten Änderungen in der REST API aufzunehmen. Es ist eine gute Idee, das Repository zu klonen und die Änderungen hin und wieder abzurufen, um den neuesten Code zu erhalten, wenn Sie ihn täglich verwenden.

Zuerst war ich etwas traurig, dass der gesamte Python-Code, den ich zur Verwaltung von ArcGIS Server geschrieben habe, nicht mehr verwendet wird, aber gleichzeitig bin ich so froh, dass ArcREST entwickelt wurde. Es ist eine großartige Software, mit der Sie in kürzester Zeit loslegen und mit Python auf alle Ihre Server-/Online-Ressourcen zugreifen können.

Vorbehalt: es hat einige Abhängigkeiten von arcpy Paket, das zum Konvertieren von Feature-Sets in JSON und zurück verwendet wird, aber abgesehen davon sollten Sie die Werkzeuge auf einem Computer ausführen können, auf dem überhaupt keine ArcGIS-Software installiert ist.

Bewerten Sie dies:


Ausführen von R-Funktionen in der PostgreSQL-Datenbank

Ich versuche, die R-programmierten Prognosemodelle in PostgreSQL zu integrieren, indem ich die in http://www.joeconway.com/plr/ beschriebene PL/R-Erweiterung verwende. Die Erweiterung kann jedoch nicht auf dem PostgreSQL powered by Amazon RDS im Unternehmen installiert werden. Kennt jemand Alternativen für die Ausführung von R-Codes in PostgreSQL, die auf RDS von Amazon ausgeführt werden? Oder irgendwelche anderen Techniken, um eine erweiterte R-Analyse innerhalb der Datenbank durchzuführen?

Übrigens kannte ich die Methode, um mit dem Paket "RPostgreSQL" eine Verbindung zur Datenbank aus der R-Umgebung herzustellen und die Vorhersagen zurück in die Datenbank zu schreiben. Ich habe diesen Ansatz ausprobiert und er funktioniert gut. Dieser Ansatz ist jedoch nicht meine Absicht, da es noch eine zusätzliche Plattform (R) gibt, um dort die Analyse durchzuführen. Ich suche nach Lösungen, um das Prognosemodell direkt in der Datenbank ausführen zu lassen. Danke für alle Vorschläge im Voraus.


Schau das Video: PostgreSQL: How to Connect to Databases. Course. 2019