数据导入
udw提供了丰富的数据导入方式和工具:
- 用postgresql的insert和copy方式导入数据到udw
- 用外部表的方式,把文件并行的导入到udw
- 创建hdfs的外部表,把hdfs中的数据到udw
- 通过sqoop把hdfs中的数据导入到udw
- 用mysql2udw把mysql中的数据导入到udw
- 创建ufile的外部表、把ufile中数据导入到udw
在导入大量的数据的时候我们建议不要使用insert一条条的导入数据、强烈建议使用copy、udwfile导入数据。
insert加载数据
我们可以通过insert插入数据到udw,语法如下所示:
INSERT INTO 表名 [ ( 字段 [, …] ) ] { DEFAULT VALUES | VALUES ( { 表达式
DEFAULT } [, …] ) |
每次插入一条的效率会比较低、我们建议一次插入多条(2000-5000条)数据。如果要加载的数据量比较大的话、强烈建议使用copy方式加载或者我们下面介绍的几种方式加载。如果您的数据已经在udw中,也可以通过insert into table1 select * from table2这种方式加载数据。
copy加载数据
我们可以用copy快速加载文件数据到udw。具体语法如下:
cat /data/test.dat | psql -h hostIP -U UserName -d DB -c "COPY employee from STDIN with CSV DELIMITER '|';"
hostIP:udw访问id
UserName :访问数据的用户名
DB:数据库名称
employee:表名
外部表并行加载数据
外部表并行加载数据是利用http协议实现的一个文件服务器,用于创建udw的外部文件表。使用外部表并行加载数据可以让udw的每个子节点并行的加载数据、大大的加快数据导入udw的速度。在加载数据的时候我们可以先创建一个外部表,然后通过INSERT INTO \