1

我有以下格式的数据:

<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 可以包含任何字符,例如它们可以包含 ',/,$,#,*,&,^, %,;,:,},{,],[, 空格,>,< 等

我尝试将这些数据导入到 postgres 中,使用逗号分隔四列(通过创建 .csv 文件)。但是,这种方法是不正确的,因为

      third column contains the value (<k<,>j>) and "o,'" with a comma.

我的数据中存在的模式是第 1 列和第 2 列包含尖括号 (<>) 内的数据。第三列包含引号内或尖括号内的数据。第四列和第五列包含 NULL 或日期。

有什么方法可以有效地将这些数据导入到 postgres 中,因为我有大约 3 Tera Byte 的数据。我是 postgres 的新手,所以请帮忙

4

1 回答 1

4

你的数据真是一团糟。它超出了导入实用程序 COPY 命令的处理能力。

如果您选择使用 SQL 解析输入和插入,则必须使用应用程序/脚本语言编写一些代码。


如果您的数据很大,使用应用程序语言可以让您以“块”的形式提交数据,例如每 10000 行,这样可以避免超出最大提交日志大小,并且意味着您可以在最后一个工作点恢复进程,如果您程序中途死亡(并将其记录位置保存在输入文件中)。

至于推荐一门语言,我会看看你周围的人,看看他们对哪一门有经验。我不想推荐一个,因为这是个人选择,但我会说选择对你来说实用的任何东西。

于 2013-09-27T23:19:39.303 回答