PostGISでPostgres 9.6で作業しています。私はポリゴンがその郡のポリゴンの集合であることと、郡ごとに1つのポリゴンを含む新しいテーブルを作成したいと思いますPostgres:非常に大きなテーブルをグループ化し、結果を新しいテーブルに挿入するには?
Table "public.parcels"
Column | Type | Modifiers
--------------+-------------------------+------------------------------------------------------------------
ogc_fid | integer | not null default nextval('parcels_ogc_fid_seq'::regclass)
wkb_geometry | geometry(Polygon,4326) |
county | character varying |
:私は(30ギガバイト程度)非常に大きなテーブルがあります。私は2番目のテーブルに最初のテーブルから一度に1つの郡を挿入する方法を知っている
gid | integer | not null default nextval('newtable_gid_seq'::regclass)
the_geom | geometry(Polygon,4326) |
:
INSERT INTO by_county(the_geom) values
((SELECT ST_Union(wkb_geometry) FROM parcels where county='Warwick'));
しかし、どのように私は、プログラムのためにこれを行うことができ、次のように私は私の新しいテーブルを定義していますすべての郡?私の現在のアプローチはpsycopg2を使ってPythonスクリプトを書くことです。最初にDISTINCT
郡名を取得してから、上記のコマンドを各郡ごとに手動で実行します。しかし、手作業が少ないかどうかは疑問です。
これは大きなデータセットであり、16GBのRAMを搭載したマシンで作業しています。結局のところ、私のワン・コマンド・アット・タイム・アプローチが最善のものかもしれません。 ST_Union以来
ありがとうございます - 残念ながら私は 'SSL SYSCALL error:EOF detected。サーバーに接続できませんでした。リセットを試みました:失敗しました。 - 大きなクエリのために推測しますか? – Richard
これはリモートから行っていますか? SSHをdbマシンにインストールし、そこからクエリを実行します。 – e4c5
私は、リモートマシンにSSHdを持っているスクリーンセッションでそれをやっています。画面セッションを閉じてデータベースを確認しましたが、レコードは追加されませんでした。 – Richard