数据湖探索 DLI-OBS输出流:关键字

时间:2023-11-10 09:20:51

关键字

表1 关键字说明

参数

是否必选

说明

type

输出通道类型,“obs”表示输出到对象存储服务。

region

对象存储服务所在区域。

ak

访问密钥ID(Access Key ID)。访问密钥获取方式请参见我的凭证

sk

Secret Access Key,与访问密钥ID结合使用的密钥。访问密钥获取方式请参见我的凭证

encode

编码方式。当前支持csv/json/orc/avro/avro_merge/parquet格式。

field_delimiter

属性分隔符。

仅当编码方式为csv时需要配置,若不配置,默认分隔符为逗号。

row_delimiter

行分隔符。当编码格式为csv、json时需要设置。

json_config

当编码格式为json时,用户可以通过该参数来指定json字段和流定义字段的映射关系,格式为“field1=data_json.field1;field2=data_json.field2”。

obs_dir

文件存储目录。格式为{桶名}/{目录名}, 如obs-a1/dir1/subdir。当编码格式为csv(append为false)、json(append为false)、avro_merge、parquet时,支持参数化。

file_prefix

输出文件名前缀。生成的文件会以file_prefix.x的方式命名,如file_prefix.1、 file_prefix.2,若没有设置,默认文件前缀为temp。

rolling_size

单个文件最大允许大小。

说明:
  • rolling_size和rolling_interval必须至少配一样或者都配置。
  • 当文件大小超过设置size后,会生成新文件。
  • 支持的单位包括KB/MB/GB,若没写单位,表示单位为字节数。
  • 当编码格式为orc时不需要设置。

rolling_interval

数据保存到对应目录的时间模式。

说明:
  • rolling_size和rolling_interval必须至少配一样或者都配置。
  • 设置后数据会按照输出时间输出到相应时间目录下。
  • 支持的格式为yyyy/MM/dd/HH/mm, 最小单位只到分钟,大小写敏感。例如配置为yyyy/MM/dd/HH, 则数据会写入对应小时这个时间点所产生的目录下,比如2018-09-10 16时产生的数据就会写到{obs_dir}/2018-09-10_16目录下。
  • 当rolling_size和rolling_interval都配置时,表示每个时间所对应的目录下,单个文件超过设置大小时,另起新文件。

quote

修饰符,仅当编码格式为csv时可配置,配置后会在每个属性前后各加上修饰符,建议使用不可见字符配置,如"\u0007"。

array_bracket

数组括号,仅当编码格式为csv时可配置, 可选值为"()", "{}", "[]", 例如配置了"{}", 则数组输出格式为{a1,a2}。

append

值为true或者false,默认为true。

当OBS不支持append模式,且编码格式为csv和json时,可将该参数设置为false。Append为false时需要设置max_record_num_per_file和dump_interval。

max_record_num_per_file

文件最大记录数,当编码格式为csv(append为false)、json(append为false)、orc、avro、avro_merge和parquet时需配置,表明一个文件最多存储记录数,当达到最大值,则另起新文件。

dump_interval

触发周期, 当编码格式为orc或者配置了DIS通知提醒时需进行配置。

  • 在orc编码方式中,该配置表示周期到达时,即使文件记录数未达到最大个数配置,也将文件上传到OBS上。
  • 在DIS通知提醒功能中,该配置表示每周期往DIS发送一个通知提醒,表明该目录已写完。

dis_notice_channel

OBS目录完成通知通道。表示每周期往DIS通道中发送一条记录,该记录内容为OBS目录路径,表明该目录已书写完毕。

encoded_data

当编码格式为json(append为false)、avro_merge和parquet时,可通过配置该参数指定真正需要编码的数据,格式为${field_name},表示直接将该流字段的内容作为一个完整的记录进行编码。

support.huaweicloud.com/sqlref-flink-dli/dli_08_0242.html