hstore 문서는 한 번에 한 행씩 hstore에 "insert"를 사용하는 것에 대해서만 설명합니다. 어쨌든 수백 킬로바이트 행 의 일괄 업로드를 수행 할 수 있습니까? 메가 바이트 또는 기가비트로 postgres hstore가 될 수 있습니다.많은 양의 데이터를 Postgres Hstore로로드
복사 명령은 CSV 파일 열
누군가가 예를 게시 할 수 업로드 만 작동하는 것 같다? 바람직하게는 파이썬/psycopg
hstore 문서는 한 번에 한 행씩 hstore에 "insert"를 사용하는 것에 대해서만 설명합니다. 어쨌든 수백 킬로바이트 행 의 일괄 업로드를 수행 할 수 있습니까? 메가 바이트 또는 기가비트로 postgres hstore가 될 수 있습니다.많은 양의 데이터를 Postgres Hstore로로드
복사 명령은 CSV 파일 열
누군가가 예를 게시 할 수 업로드 만 작동하는 것 같다? 바람직하게는 파이썬/psycopg
삽입 모두 작동 및 복사 솔루션은 나
create table b(h hstore);
insert into b(h) VALUES ('a=>1,b=>2'::hstore), ('c=>2,d=>3'::hstore);
select * from b;
h
--------------------
"a"=>"1", "b"=>"2"
"c"=>"2", "d"=>"3"
(2 rows)
$ cat > /tmp/t.tsv
a=>1,b=>2
c=>2,d=>3
^d
copy b(h) from '/tmp/t.tsv';
select * from b;
h
--------------------
"a"=>"1", "b"=>"2"
"c"=>"2", "d"=>"3"
"a"=>"1", "b"=>"2"
"c"=>"2", "d"=>"3"
(4 rows)
위의 답을 자연적인 방법으로 작동하는 것처럼 당신이 열을 포함하여 여러 열에서 복사하려고하면 그 불완전 보인다 마찬가지로
$ cat test
1,a=>1,b=>2,a
2,c=>3,d=>4,b
3,e=>5,f=>6,c
create table b(a int4, h hstore, c varchar(10));
CREATE TABLE;
copy b(a,h,c) from 'test' CSV;
ERROR: extra data after last expected column
CONTEXT: COPY b, line 1: "1,a=>1,b=>2,a"
:
copy b(a,h,c) from 'test' DELIMITER ',';
ERROR: extra data after last expected column
CONTEXT: COPY b, line 1: "1,a=>1,b=>2,a"
쉼표 구분 기호 hstore 유형 및 사용, 복사처럼 혼동됩니다
이것은 CSV로 가져 와서 현장을 인용하여,하지만 고정 될 수 hstore로 가져올 수 : 만 그렇게 요구되는 CSV로 가져 오기, CSV 형식으로 허용 인용
$ cat test
1,"a=>1,b=>2",a
2,"c=>3,d=>4",b
3,"e=>5,f=>6",c
copy b(a,h,c) from 'test' CSV;
COPY 3
select h from b;
h
--------------------
"a"=>"1", "b"=>"2"
"c"=>"3", "d"=>"4"
"e"=>"5", "f"=>"6"
(3 rows)
,하지만 당신은 할 수 명시 적으로 필드 구분 기호와 인용 문자를 COPY에 대한 DELIMITER 및 QUOTE 인수를 사용하여 ','및 ' "'이외의 값으로 설정하십시오.
copy binary 명령으로 확실히 수행 할 수 있습니다.
이 작업을 수행 할 수있는 파이썬 lib에 대해 알지 못하지만 열 인코딩을 이해하는 데 도움이되는 루비가 있습니다.