一、数据导入导出场景划分
- gsql工具适用场景和使用方法
适用场景
文本格式对象定义的创建
使用方法
gsql -d db1 -p 16000 -U u1 -W Huawei@123 -f/data/table.sql
示例:
ALTER SESSION SET CURRENT_SCHEMA = PUBLIC;
ALTER TABLE "PUBLC".GA_COM_COLLECTION_ERROR_TABLEMODIFY MESSAGE VARCHAR(4000);
ALTER TABLE "PUBLIC".GA_COM_COLLECTION_ERROR_TABLE ADDCOLUMN FRRORCOUNTINT NUL DEEAULT O;
ALTER TABLE "PUBLIC".GA_COM_COLLECTION_ERROR_TABLE ADDCOLUMN PLUGINID VARCHAR (50)NULL;
ALTER TABLE "PUBLIC".GA_COM_COLLECTION_ERROR_TABLE ADDCOLUMN IS ALARM RAISED INT NULL DEFAULT O;
CREATE INDEX GA_COM_COLLECTION_ERROR_TABLE_IDX ON
"PUBLIC".GA_COM_COLLECTION_ERROR_TABLE(CLUSTERID,PLUGINID);
CREATE OR REPLACE FUNCTION GenerateSnapshotID()
RETURN BIGINT IS
SnapID BIGINT;
BEGIN
SELECT"PUBLIC".GA_COM_COLLECTION_SNAPSHOT_SEQ.nextval into
SnaplD from SYS_DUMMY;
RETURN SnapID;
END;
- copy使用场景和使用方法
copy是数据库服务端的命令,只能在服务端执行数据导入,\copy则可以在客户端执行命令。
适用场景
小数据量表以文本数据作为来源导入;
小数量表的导出,查询结果集导出;
使用方法
文本数据导入:
copy t1 from '/data/input/t1.txt'delimiter ',';
表数据导出:
copy t1 to '/data/input/t1 output.txt' delimiter ',';
查询结果集导出:
copy (select * from t1 where a2=1) to '/data/input/t1 output.txt'delimiter ',';
注:分布式场景中,copy from/to是从CN端进行数据的导入导出,与GDS方式相比性能较低。
数据文件示例(CSV)
1,AAAA,842334595,LKDHSGWIE04OKJNGOERI20ONG
2,BBBB,842339356,KBJASAKDGNIASKDGNOKRMKNGA
3,CCCC,840282591,JBIASKDG10JT3409JNLG0123L
4,DDDD,842871486,LKSD8498LJFG71LKLJASNDGDS
5,EEEE,8429897130,SD81KNA0LAKJG0O4L23NL1KN
6,FFFE,842334595,LLA0AKJN88ASJDGN6LK3LKLNA
7,GGGG,840148810,LKDHSGWIE04OKJNI20ONGLSDK
8,HHHH,846768299,YUIHBRIASASD8BDKHDBFAIS2L
9,IIII,847990809,YNBBV2VXZUODJNFAKS3498YBS
10,JJJJ,842334595,SDUGBAKSHD874TI1BGPO14J
11,KKKK,827592226,T9134F90AKLSAJOIKAJSDFFYA
12,LLLL,842334595,LKDHSGWIE04OKJNGOERIGLSDK
13,MMMM,842849111,YJASDHA690HASJ013B01B102
14,NNNN