Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
project-collie
project-collie
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • project-collieproject-collie
  • Wiki
    • Data_pump
    • Writers
  • file

Last edited by fanzx Dec 08, 2020
Page history
This is an old version of this page. You can view the most recent version or browse the history.

file

将数据保存到文件中

class参数配置为file.FileWriter

init 参数

配置参数 默认值 说明
path 输出文件的目录路径
overwrite False 是否覆盖写
max_size 125 限制单个文件的大小
scale m max_size的单位,支持['b', 'k', 'm', 'g', 't']
prefix split 文件前缀
output_form bson 文件格式,支持bson, json, csv
csv_sep output_form为csv时的字段分隔符
csv_cols None output_form 为csv时, 指定需要写的字段,并按指定的字段顺序写文件, 默认将json中的所有value写入
csv_dialect customize csv格式,支持 'mysql','excel', 'customize', 默认为自定义格式。
enclosed_sep output_form 为csv时, 是否将字段内容用指定的符号包起来,可设为双引号‘"’
escaped_sep output_form 为csv时, 将字段内容中的分隔符替换为指定的字符,如csv_sep='\t',escaped_sep='\t'时,将字段内容中的'\t' 替换为'\t'
is_none None output_form 为csv时,如果is_none is True, 会将None写为\N, 否则将None写为''
compress 不压缩 是否压缩文件,,如果需要压缩,可设为'gz','tar'
data_split False 是否根据data中的某一列值为文件夹名来存储数据,如果需要,设为True
data_key None 按照此列值为文件夹名来存储数据,与data_split参数一起使用,与data_split=True时,这是必填参数
date_split False 是否根据日期来存储数据,如果需要,设为True(当data_split,date_split同时启用时,切分效果同时生效,但是data_split优先切分,即先按字段切分再按日期切分)
data_key None 按照此数据中列值为日期单位存储数据,不填写的话,按照系统的时间来存储数据
custom_time_pattern None 按照给的正则表达式提供的格式确定数据最小时间切分单位,比如按照小时存存储,custom_time_pattern='%Y%m%d/%H'

设置保存文件的目录

  • path

控制单个文件的大小

  • max_size
  • scale

保存为CSV格式

与csv相关的参数

  • output_form
  • csv_dialect
  • csv_sep
  • csv_cols
  • enclosed_sep
  • escaped_sep
  • is_none

当csv_dialect设为excel或mysql时,csv_sep、enclosed_sep、escaped_sep、is_none参数设置将被忽略

为mysqlimport准备数据

将csv_dialect设为 mysql 生成的CSV文件可以使用mysqlimport导入到mysql中。

mysqlimport --verbose 
 --fields-terminated-by='\t' \
 --lines-terminated-by='\n' \
 --fields-enclosed-by='' \
 -h {host} -P {port} -u{user} -p{password} \
 --force \
 --columns="{fields}" \
 --local {database} {table}.csv

为excel准备数据

csv_dialect 设为excel生成的CSV文件,可以直接使用excel打开。

配置样例:

  stock_ic_clear:
    class: file.FileWriter
    init:
      path: "/data/disk3/data_lake/ic/clear"
      output_form: csv
      csv_sep: "\t"
      csv_cols: "company_id,clear_director,clear_members,create_time,update_time"
      is_none: True
      escaped_sep: "\\t"
output_form为csv时,插件内部已经将特殊字符、分割符等做了转义处理,所以不用担心错行、导入mysql中字段错乱问题。
自定义csv格式时,分隔符建议设为常用分隔符。字段分隔符推荐使用‘\t’,',',换行符推荐使用‘\n’,字段封闭符推荐使用‘"’,若不是为了将csv文件导入mysql表中,建议is_none使用默认值
Clone repository
  • README
  • data_pump
    • data_pump
    • filters
    • filters
      • bloom
    • readers
    • readers
      • file
      • kafka
      • mongodb
      • sql
    • writers
    • writers
      • file
  • dev_guide
  • dev_manual
  • Home
  • ops
    • ansible
View All Pages