本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
VARIABLE_COLUMN_LOG_PARSE
VARIABLE_COLUMN_LOG_PARSE( <character-expression>, <columns>, <delimiter-string> [ , <escape-string>, <quote-string> ] ) <columns> := <number of columns> | <list of columns> <number of columns> := <numeric value expression> <list of columns> := '<column description>[, ...]' <column description> := <identifier> TYPE <data type> [ NOT NULL ] <delimiter string> := <character-expression> <escape-string> := <character-expression> <quote-string> := '<begin quote character> [ <end quote character> ]'
VARIABLE_COLUMN_LOG_PARSE 将一个输入字符串(其第一个参数 <character-expression>)拆分为由分隔符或分隔符字符串分隔的多个字段。因此,它处理逗号分隔的值或制表符分隔的值。它可以与之组合FIXED_COLUMN_LOG_PARSE来处理诸如 maillog 之类的东西,其中一些字段是固定长度的,而另一些字段是可变长度的。
注意
不支持解析二进制文件。
参数 <escape-string> 和 <quote-string> 是可选的。指定 <escape-string> 可让字段的值包含嵌入式分隔符。举一个简单的例子,如果 <delimiter-string> 指定了一个逗号,<escape-string> 指定了一个反斜杠,则输入“a,b”将拆分为两个字段“a”和“b”,但输入“a\,b”将生成一个字段“a,b”。
由于 Amazon Kinesis Data Analytics 支持表达式和文字,制表符也可以是分隔符,使用 unicode 转义符指定,例如 u&'\ 0009',它是一个仅由制表符组成的字符串。
指定 <quote-string> 是隐藏嵌入式分隔符的另一种方法。<quote-string> 应为单字符或双字符表达式:第一个字符用作 <begin quote character> 字符;第二个字符(如果有)用作 <end quote character> 字符。如果只提供一个字符,则将其用作带引号的字符串的开头和结尾。如果输入包含一个带引号的字符串(即,包含在指定为 <quote-string> 的字符中的字符串),该字符串将出现在一个字段中,即使它包含一个分隔符。
请注意,<begin quote character> 和 <end quote character> 是单字符,而且可以不同。<begin quote character> 可用于开始和结束带引号的字符串,或者 <begin quote character> 可以开始带引号的字符串而 <end quote character> 用于结束带引号的字符串。
当列 <list of columns> 的列表作为第二个参数 <columns> 提供时,类型 DATE、TIME 和 TIMESTAMP 的列规范 (<column description>) 支持允许用户指定确切的时间部分布局的格式参数。解析器使用 Java 类 java.lang。 SimpleDateFormat
"name" TYPE TIMESTAMP 'dd/MMM/yyyy:HH:mm:ss'
默认情况下,输出列被命名为 COLUMN1、COLUMN2、COLUMN3 等,每列都是 SQL 数据类型 VARCHAR (1024)。