MAPREDUCE服务 MRS-LOAD DATA:注意事项
注意事项
以下是可以在加载数据时使用的配置选项:
- DELIMITER:可以在加载命令中提供分隔符和引号字符。默认值为,。
OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"')
可使用'DELIMITER'='\t'来表示用制表符tab对 CS V数据进行分隔。
OPTIONS('DELIMITER'='\t')
CarbonData也支持\001和\017作为分隔符。
对于CSV数据,分隔符为单引号(')时,单引号必须在双引号(" ")内。例如:'DELIMITER'= "'"。
- QUOTECHAR:可以在加载命令中提供分隔符和引号字符。默认值为"。
OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"')
- COMMENTCHAR:可以在加载命令中提供注释字符。在加载操作期间,如果在行的开头遇到注释字符,那么该行将被视为注释,并且不会被加载。默认值为#。
- FILEHEADER:如果源文件中没有表头,可在LOAD DATA命令中提供表头。
- ESCAPECHAR:如果用户想在CSV上对Escape字符进行严格验证,可以提供Escape字符。默认值为\。
OPTIONS('ESCAPECHAR'='\')
如果在CSV数据中输入ESCAPECHAR,该ESCAPECHAR必须在双引号(" ")内。例如:"a\b"。
- Bad Records处理:
为了使数据处理应用程序为用户增值,不可避免地需要对数据进行某种程度的集成。在大多数情况下,数据质量问题源于生成源数据的上游(主要)系统。
有两种完全不同的方式处理Bad Data:
- 按照原始数据加载所有数据,之后进行除错处理。
- 在进入数据源的过程中,可以清理或擦除Bad Data,或者在发现Bad Data时让数据加载失败。
有多个选项可用于在CarbonData数据加载过程中清除源数据。对于CarbonData数据中的Bad Records管理,请参见表2。
表2 Bad Records Logger 配置项
默认值
描述
BAD_RECORDS_ LOG GER_ENABLE
false
如果设置为true,则将创建Bad Records日志文件,其中包含Bad Records的详细信息。
BAD_RECORDS_ACTION
FAIL
以下为Bad Records的四种操作类型:
- FORCE:通过将Bad Records存储为NULL来自动校正数据。
- REDIRECT:无法加载Bad Records,并将其写入BAD_RECORD_PATH下的CSV文件中,默认不开启该类型,如需使用该类型,需要设置参数carbon.enable.badrecord.action.redirect为true。
- IGNORE:既不加载Bad Records也不将其写入CSV文件。
- FAIL:如果发现存在Bad Records,数据加载将会失败。
说明:
在加载数据时,如果所有记录都是Bad Records,则参数BAD_RECORDS_ACTION将不起作用,加载数据操作将会失败。
IS_EMPTY_DATA_BAD_RECORD
false
如果设置为“false”,则空(""或''或,,)数据将不被视为Bad Records,如果设置为“true”,则空数据将被视为Bad Records。
BAD_RECORD_PATH
-
指定存储Bad Records的HDFS路径。默认值为Null。 如果启用了Bad Records日志记录或者Bad Records操作重定向,则该路径必须由用户进行配置。
示例:
LOAD DATA INPATH 'filepath.csv' INTO TABLE tablename OPTIONS('BAD_RECORDS_LOGGER_ENABLE'='true', 'BAD_RECORD_PATH'='hdfs://hacluster/tmp/carbon', 'BAD_RECORDS_ACTION'='REDIRECT', 'IS_EMPTY_DATA_BAD_RECORD'='false');
使用“REDIRECT”选项,CarbonData会将所有的Bad Records添加到单独的CSV文件中,但是该文件内容不能用于后续的数据加载,因为其内容可能无法与源记录完全匹配。用户必须清理原始源记录以便于进一步的数据提取。该选项的目的只是让用户知道哪些记录被视为Bad Records。
- MAXCOLUMNS:该可选参数指定了在一行中,由CSV解析器解析的最大列数。
表3 MAXCOLUMNS 可选参数名称
默认值
最大值
MAXCOLUMNS
2000
20000
表4 MAXCOLUMNS可选参数的行为图 MAXCOLUMNS值
在文件Header选项中的列数
考虑的最终值
在加载项中未指定
5
2000
在加载项中未指定
6000
6000
40
7
文件header列数与MAXCOLUMNS值,两者中的最大值
22000
40
20000
60
在加载项中未指定
CSV文件第一行的列数与MAXCOLUMNS值,两者中的最大值
对于设置MAXCOLUMNS Option的最大值,要求executor具有足够的内存,否则,数据加载会由于内存不足的错误而失败。
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- MapReduce服务_什么是Kafka_如何使用Kafka
- 免费企业邮箱注册流程及注意事项有哪些
- MapReduce服务_什么是ClickHouse_如何使用ClickHouse
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_什么是Hive_如何使用Hive