下午将pg下的一个表导到人大金仓里。记录一下过程。
1、从pg导出
在人大金仓迁移工具里,没有看到支持pg,因此用不了这个迁移工具。首先进pg,选中源表,鼠标右键,export,导出为csv文件,带标题,utf8编码。
2、到人大金仓中导入
采用人大金仓的终端。
chenqu@chenqu-uos:~/projects/gzdd/cloud$ ksql -h 127.0.0.1 -U SYSTEM -W password TEST
ksql (V008R003C002B0290)
Type "help" for help.
TEST=# copy "system_menu" from '/home/chenqu/Downloads/temp/sys_menu.csv' ( format csv, HEADER );
COPY 228
TEST=#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这里有2个前提,一是目标表要存在,并且与源表结构一致;二是这个csv文件要放在人大进仓数所在的服务器,上面语句的路径,指的是服务器的路径。
实际上我导的时候,进不了服务器。但我本地有数据库,我用的是迂回策略,先导到本地库,然后再在数据库对象管理工具里面,从我本地库复制到目标库。
2021.06.29
这是另一条导入语句
TEST=# copy STATION from '/home/chenqu/projects/gzdd/temp/station.txt' DELIMITER ',' ENCODING 'GB18030';
- 1
数据文件从第三方接口获得,没有header。为了适配导入,按照数据文件的数据格式,新建了一张表接收。由于数据文件中没有ID列,在数据成功导入后再进行添加:
ALTER TABLE TATION ADD id SERIAL;
- 1
ID列虽然没有指定值,但系统自动添加了序列。
另外,该数据文件列之间的分隔符为逗号,空格代表换行。从copy的参数来看,没有找到有指定换行符的,只有先用其他文本编辑器,采取正则表达式,将空格替换为回车符号。