Dieser Artikel ist der vierte Tag von PostgreSQL Adventskalender 2015. Der dritte Tag war kasa_zip.
Das Gebiet der Datenanalyse war in den letzten Jahren sehr beschäftigt. Spark / Hadoop kann für große Maßstäbe erforderlich sein, RDBMS ist jedoch für einige Maßstäbe ausreichend. Insbesondere PostgreSQL bietet reichlich JSON-Unterstützung, sodass eine mittelgroße Analyseplattform ausreichen würde.
Organisieren wir also die Treibermodule für die Verbindung zu PostgreSQL aus jeder Sprache.
Der PostgerSQL-JDBC-Treiber wird bereitgestellt. Verwenden wir ihn also. download
Wählen Sie bei der Auswahl des zu verwendenden JDBC-Treibers basierend auf der JDK-Version der Ausführungsumgebung. Für JDK 1.8 ist beispielsweise ein JDBC42-Treiber erforderlich. Verwenden Sie daher einen der 9.4 Build 1202-1206. Das Kommunikationsprotokoll von PostgreSQL ist weil es in 7.4 oder höher üblich ist, und selbst wenn Sie den Treiber von 9.4 verwenden, können Sie eine Verbindung zu PostgreSQL von 7.4 oder höher herstellen. Es gibt kein Problem. Sie sollten den neuesten Treiber verwenden, der das von Ihnen verwendete JDK unterstützt.
Da der JDBC-Treiber für PostgreSQL Pure Java ist, benötigt er kein libpq und arbeitet unabhängig. Daher sollte nur der heruntergeladene Treiber zum CLASSPATH hinzugefügt werden.
Im Fall von Python ist es in PostgreSQL-Wiki organisiert.
Wie Sie in der Tabelle sehen können, bietet Python mehrere Treiber. Hören Sie den Namen oft in den folgenden drei Bereichen?
In Bezug auf die Anzahl der DLs ist pyscopg2 überwältigend. Tatsächlich wurde es häufig verwendet und ist einfach zu verwenden, da es mit beiden Python 2/3-Serien kompatibel ist. Da psycopg2 jedoch von ** libpq ** abhängt, ist ein Paket wie postgresql-devel erforderlich.
Auf der anderen Seite sind pg8000 und py-postgresql in Pure Python implementiert, sodass libpq nicht erforderlich ist. In dieser Hinsicht sind die Einführungskosten niedrig, aber ** pg8000 ** unterstützt ** nur die Python2-Serie ** </ del> ** py-postgresql ** unterstützt ** nur die Python3-Serie ** Bitte beachte, dass.
Wenn es sich um ein einfaches Tool handelt, ist der PurePython-Treiber einfacher, aber unter Berücksichtigung der Stabilität usw. scheint die Verwendung von ** psycopg2 ** sicher zu sein.
Nebenbei bemerkt, im postgres-toolkit, veröffentlicht von @snaga, [PsqlWrapper.py](https: // github. Es ist eine Bibliothek implementiert, die die Standardausgabe in einer benutzerfreundlichen Form analysiert und zurückgibt, während SQL über psql unter dem Namen com / uptimejp / postgres-toolkit / blob / Develop / lib / PsqlWrapper.py ausgegeben wird. Wenn Sie ein leichtes Tool erstellen möchten, das persönlich mit PostgreSQL funktioniert, ist eine solche Implementierung möglicherweise eine Option.
Bei der Verbindung mit PostgreSQL mit Node.js wird häufig node-postgres verwendet. Dies ist eine Implementierung von Pure Javascript, sodass Sie es unten installieren können.
$ npm install pg
Darüber hinaus hat Node-Postgres auch ** pg-native **, das libpq verwendet, aber in vielen Fällen scheint es, dass es von ** pg ** verwendet wird. node-postgres gibt das Erfassungsergebnis im JSON-Format zurück.
[
{
"empno": "7369",
"ename": "SMITH",
"job": "CLERK",
"mgr": "7902",
"hiredate": "1980-12-17T00:00:00.000Z",
"sal": "800.00",
"comm": null,
"deptno": "20"
},
{
"empno": "7499",
"ename": "ALLEN",
"job": "SALESMAN",
"mgr": "7698",
"hiredate": "1981-02-20T00:00:00.000Z",
"sal": "1600.00",
"comm": "300.00",
"deptno": "30"
}
]
Das Format ist recht intuitiv, aber der JSON-Typ und der in 9.1 und höher hinzugefügte JSONB-Typ lauten ebenfalls wie folgt. Es wird als JSON zurückgegeben.
sample_db=# create table json_test(json_col json);
CREATE TABLE
sample_db=# insert into json_test values('{"A":{"B":[1,2,3]}}'::json);
INSERT 0 1
sample_db=# insert into json_test values('{"C":{"D":[4,5]}}'::json);
INSERT 0 1
[
{
"json_col": {
"A": {
"B": [
1,
2,
3
]
}
}
},
{
"json_col": {
"C": {
"D": [
4,
5
]
}
}
}
]
Wenn es um Node.js geht, ist das Backend oft MongoDB, aber PostgreSQL ist auch gut für Node.js geeignet.
Sie können auch über .NET eine Verbindung zu PostgreSQL herstellen, indem Sie Npgsql verwenden. Sie können über Nuget herunterladen. Npgsql ist Pure C #, daher ist libpq nicht erforderlich. Das ist schön, weil es manchmal etwas umständlich ist, PostgreSQL in einer Windows-Umgebung vorzubereiten.
Da es mit ADO.NET kompatibel ist, können Sie ADO.NET ohne zu zögern verwenden, wenn Sie es mit anderen DBs verwendet haben.
Übrigens scheint Mono zu funktionieren, aber ich habe es nicht versucht ...
Da PostgreSQL-Funktion für PHP vorbereitet ist, werden Sie diese verwenden. Beachten Sie, dass PHP mit der Option ** —with-pgsql ** kompiliert werden muss, um es zu verwenden. Bei Verwendung über PDO ist außerdem ** —with-pdo-pgsql ** erforderlich. Da dies von libpq abhängt, muss ein Paket wie postgresql-devel separat installiert werden.
Sie können überprüfen, ob PostgreSQL über PostgreSQL-Funktionen oder PDO mit PHP verwendet werden kann, das bereits mit <? Php phpinfo ()?>
Eingeführt wurde.
Sie können die Kompilierungsoptionen auch in ** php-config ** überprüfen.
Ausführungsbeispiel
$ ./php-config --configure-options
--prefix=/home/sample/apps/php ...--with-pgsql=/home/sample/posgrehome --with-pdo-pgsql=/home/sample/posgrehome
Es scheint, dass Ruby häufig das Modul ruby-pg verwendet. Dies scheint auch eine Implementierung zu sein, die libpq verwendet. Sie müssen daher ein Paket wie postgresql-devel separat installieren.
gem install pg
Wenn Sie PostgreSQL aus dem Quellcode erstellen, installieren Sie es außerdem in einem anderen Verzeichnis als gewöhnlich. Bei der Installation von ruby-pg wird es moosig. Geben Sie in diesem Fall den Pfad zu ** pg_config ** wie folgt an. (Es ist auch im Handbuch geschrieben)
gem install pg -- --with-pg-config=<path to pg_config>
Grob gesagt habe ich die Geschichte der Verwendung von PostgreSQL aus verschiedenen Sprachen zusammengefasst. Es gibt einen vollständigen Satz von Treibern für die wichtigsten Sprachen. Wenn Sie PostgreSQL noch nicht verwendet haben, probieren Sie es einfach aus.
Die Person, die für den PostgreSQL-Adventskalender 2015, Tag 5, verantwortlich ist, ist nuko_yokohama.
Recommended Posts