MAPREDUCE服务 MRS-LOAD DATA:注意事项

时间:2024-04-10 09:06:36

注意事项

以下是可以在加载数据时使用的配置选项:

  • DELIMITER:可以在加载命令中提供分隔符和引号字符。默认值为,

    OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"')

    可使用'DELIMITER'='\t'来表示用制表符tab对CSV数据进行分隔。

    OPTIONS('DELIMITER'='\t')

    CarbonData也支持\001和\017作为分隔符。

    对于CSV数据,分隔符为单引号(')时,单引号必须在双引号(" ")内。例如:'DELIMITER'= "'"。

  • QUOTECHAR:可以在加载命令中提供分隔符和引号字符。默认值为"

    OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"')

  • COMMENTCHAR:可以在加载命令中提供注释字符。在加载操作期间,如果在行的开头遇到注释字符,那么该行将被视为注释,并且不会被加载。默认值为#。

    OPTIONS('COMMENTCHAR'='#')

  • FILEHEADER:如果源文件中没有表头,可在LOAD DATA命令中提供表头。

    OPTIONS('FILEHEADER'='column1,column2')

  • 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_LOGGER_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解析器解析的最大列数。

    OPTIONS('MAXCOLUMNS'='400')

    表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具有足够的内存,否则,数据加载会由于内存不足的错误而失败。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1438.html