2017-01-08 18 views
0

Linux上でPostgresから大量のデータをPython経由で読み込もうとしています。 SQLの錬金術は許容できないほど遅いです。 turbodbc https://github.com/blue-yonder/turbodbcは速いと評価していますが、LinuxのAFAIKではなく、WindowsのODBCソースが必要です。 (PostgresのFTPサイトはODBC用の.dllしか持っていませんが)Linux/Postgresとの互換性を主張しています。LinuxでPythonからturbodbcを使ってPostgresにアクセスする

LinuxでPostgresにturbodbcやその他のODBC経由でアクセスするにはどうすればよいですか?

+0

私は、最もよく使われるPython PostgreSQLアダプタ[psycopg2](http://initd.org/psycopg/)を使うことをお勧めします。リンクされたサイトにインストールする方法の指示に従ってください。 – janikarh

+0

問題は、psycopg2が型やフィールドの情報を持たないタプルのリストを返すため、numpyに行く前に手動でフィールド名を再構築する必要があるということです。 – SRobertJames

+0

LinuxでODBCを使用したことはありませんが、リストに 'odbc-postgresql'パッケージがあります... – Abelisto

答えて

0

turbodbcはPostgreSQLとLinuxで動作します。これには、パッケージunixodbcodbc-postgresqlがインストールされている必要があります。 PostgreSQLの仕様に従ってデータソースを設定する必要があります。

ここでの1つの問題は、驚くほど速くはないということです。 Turbodbcは基本的に一括操作を利用してODBCドライバと通信する効率的な方法です。しかし、PostgreSQL自体のために自由に利用できるODBCドライバはかなり遅いです。これに関して多くのturbodbcが行うことはできません。

私はpsycopg2またはasyncpgを推奨します(後者はPython 3.5が必要ですが、実際は非常に高速です)。

関連する問題