跳转至

DBF Writer

DbfWriter 提供了向本地文件写入类dbf格式的一个或者多个表文件。

配置样例

{
  "job": {
    "setting": {
      "speed": {
        "bytes": -1,
        "channel": 1
      }
    },
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "column": [
              {
                "value": "Addax",
                "type": "string"
              },
              {
                "value": 19880808,
                "type": "long"
              },
              {
                "value": "1989-06-04 00:00:00",
                "type": "date"
              },
              {
                "value": true,
                "type": "bool"
              },
              {
                "value": "中文测试",
                "type": "string"
              }
            ],
            "sliceRecordCount": 10
          }
        },
        "writer": {
          "name": "dbfwriter",
          "parameter": {
            "column": [
              {
                "name": "col1",
                "type": "char",
                "length": 100
              },
              {
                "name": "col2",
                "type": "numeric",
                "length": 18,
                "scale": 0
              },
              {
                "name": "col3",
                "type": "date"
              },
              {
                "name": "col4",
                "type": "logical"
              },
              {
                "name": "col5",
                "type": "char",
                "length": 100
              }
            ],
            "fileName": "test.dbf",
            "path": "/tmp/out",
            "writeMode": "truncate",
            "encoding": "GBK"
          }
        }
      }
    ]
  }
}

参数说明

配置项 是否必须 默认值 描述
path DBF文件目录,注意这里是文件夹,不是文件
column 类型默认为String 所配置的表中需要同步的列集合, 是 {type: value}{type: index} 的集合
fileName DbfFileWriter写入的文件名
writeMode DbfFileWriter写入前数据清理处理模式,支持 truncate, append, nonConflict 三种模式,详见如下
encoding UTF-8 DBF文件编码,比如 GBK, UTF-8
nullFormat \N 定义哪个字符串可以表示为null,
dateFormat 日期类型的数据序列化到文件中时的格式,例如 "dateFormat": "yyyy-MM-dd"

writeMode

写入前数据清理处理模式:

  • truncate: 写入前清理目录下 fileName 前缀的所有文件。
  • append: 写入前不做任何处理,直接使用 filename 写入,并保证文件名不冲突。
  • nonConflict: 如果目录下有 fileName 前缀的文件,直接报错。

类型转换

当前该插件支持写入的类型以及对应关系如下:

XBase Type XBase Symbol Java Type used in JavaDBF
Character C java.lang.String
Numeric N java.math.BigDecimal
Floating Point F java.math.BigDecimal
Logical L java.lang.Boolean
Date D java.util.Date

其中:

  • numeric 是指本地文件中使用数字类型表示形式,例如 19901219 ,整形小数位数为 0
  • logical 是指本地文件文本中使用Boolean的表示形式,例如 truefalse
  • Date 是指本地文件文本中使用Date表示形式,例如 2014-12-31,Date 是JAVA语言的 Date 类型。
Back to top