大规模集群的加载使用限制

支持ftp/http/hdfs多种协议。

定长加载模式
当使用定长加载模式时,必须指定FIELDS DEFINER的值。
文本加载模式
当使用文本加载模式时,NULL_VALUE的默认值为'N'。
当使用文本加载方式时,行分隔符默认为'n'。
当使用文本加载方式时,如果某列数据可能包含了行分隔符,则需要在SQL中输入'HAVING LINES SEPARATOR'子句,同时需要输入'ENCLOSED BY'指定字段包围符。

使用LOAD DATA INFILE数据加载,数据能否对命名管道(Named Pipe)加载?

8611版本集群加载工具load data infile目前不支持本地文件的加载,数据文件可以放在任意通用的ftp、http、hadoop服务器上。目前数据来源只能是文件方式存放,不支持命名管道,因为linux下命名管道不支持远程,并且不能预先获取文件大小。

使用新建数据库用户加载数据需要的最小权限是什么?

对于随机分布表、复制表、nocopies表的加载需要file权限,加载表的insert权限,gbase.table_distribution的select权限;
对于哈希分布表,除了需要上述权限外,还需要gbase.nodedatamap的select权限。

加载随机分布表、复制表、nocopies表用户权限示例:
gbase> show grants for u1;
+--------------------------------------------------------------------------------------------------+
| Grants for u1@%                                              |
+--------------------------------------------------------------------------------------------------+
| GRANT FILE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD 
'*556BEF296211C2AF58F53DA3EDDD0A3371B6ECD5' |
| GRANT INSERT ON "db1"."t1" TO 'u1'@'%'                          |
| GRANT SELECT ON "gbase"."table_distribution" TO 'u1'@'%'            |
+--------------------------------------------------------------------------------------------------+
3 rows in set (Elapsed: 00:00:00.00)
加载哈希分布表用户权限示例:
gbase> show grants for u1;
+--------------------------------------------------------------------------------------------------+
| Grants for u1@%                                              |
+--------------------------------------------------------------------------------------------------+
| GRANT FILE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD 
'*556BEF296211C2AF58F53DA3EDDD0A3371B6ECD5' |
| GRANT INSERT ON "db1"."t2" TO 'u1'@'%'                          |
| GRANT SELECT ON "gbase"."table_distribution" TO 'u1'@'%'            |
| GRANT SELECT ON "gbase"."nodedatamap" TO 'u1'@'%'               |
+--------------------------------------------------------------------------------------------------+
4 rows in set (Elapsed: 00:00:00.00)