我的数据格式如下:
<a> <b> <c>> NULL NULL
<d> <e> <f<> '1999-10-10', '2000-10-10'
<g<> <h> <i>> '300-12-12 BC', '300-01-01 BC'
<m> <l> <k<,>j> NULL NULL
<g> <k> "o,l" NULL NULL
这里a,b,c,d,e,f,g,h,i,j,k,l,m可以包含任何字符,例如它们可能包含',/,$,#,*,&amp;,^,%,;,:,},{,],[,space,&gt;,&lt;等
我尝试使用逗号将这些数据导入postgres以分隔四列(通过创建.csv文件)。但是,这种方法不正确
third column contains the value (<k<,>j>) and "o,'" with a comma.
我的数据中存在的模式是第1列和第2列包含尖括号内的数据(&lt;&gt;)。第三列包含引号内或尖括号内的数据。第四和第五列包含NULL或日期。
我是否可以通过某种方式有效地将此数据导入postgres,因为我有大约3 Tera Byte的数据。我是postgres的新手,所以请帮忙
答案 0 :(得分:4)
您的数据真是一团糟。它超出了导入实用程序COPY命令的处理能力。
如果您选择解析输入并使用SQL插入,则必须在应用程序/脚本语言中编写一些代码。
如果您的数据量巨大,使用应用程序语言将允许您以“块”(例如每10000行)提交数据,从而避免吹出最大提交日志大小,这意味着您可以在上一次工作中恢复该过程指出你的程序是否在某个程度上消失了(它保存了在输入文件中到达的记录位置)。
至于推荐一种语言,我会期待周围的人看看他们有哪些经验。我不想推荐一个,因为这是个人选择,但我会说你选择适合自己的东西。