跳转至

SQLite Writer

SQLiteWriter 插件实现了写入数据到 SQLite 数据库的功能。

示例

假定要写入的表如下:

create table addax_tbl 
(
col1 varchar(20) ,
col2 int(4),
col3 datetime,
col4 boolean,
col5 binary
);

这里使用一份从内存产生到 SQLite 的数据。

{
  "job": {
    "setting": {
      "speed": {
        "channel": 1,
        "bytes": -1
      }
    },
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "column": [
              {
                "value": "Addax",
                "type": "string"
              },
              {
                "value": 19880808,
                "type": "long"
              },
              {
                "value": "1988-08-08 08:08:08",
                "type": "date"
              },
              {
                "value": true,
                "type": "bool"
              },
              {
                "value": "test",
                "type": "bytes"
              }
            ],
            "sliceRecordCount": 1000
          }
        },
        "writer": {
          "name": "sqlitewriter",
          "parameter": {
            "writeMode": "insert",
            "column": [
              "*"
            ],
            "preSql": [
              "delete from @table"
            ],
            "connection": [
              {
                "jdbcUrl": "jdbc:sqlite://tmp/writer.sqlite3",
                "table": [
                  "addax_tbl"
                ]
              }
            ]
          }
        }
      }
    ]
  }
}

将上述配置文件保存为 job/stream2sqlite.json

执行采集命令

执行以下命令进行数据采集

bin/addax.sh job/stream2sqlite.json

参数说明

配置项 是否必须 类型 默认值 描述
jdbcUrl list 对端数据库的JDBC连接信息,jdbcUrl按照RDBMS官方规范
driver string 自定义驱动类名,解决兼容性问题,详见下面描述
table list 所选取的需要同步的表名,使用JSON数据格式,当配置为多张表时,用户自己需保证多张表是同一表结构
column list 所配置的表中需要同步的列名集合,详细描述见 rdbmswriter
session list Addax在获取连接时,执行session指定的SQL语句,修改当前connection session属性
preSql list 数据写入钱先执行的sql语句,例如清除旧数据,如果 Sql 中有你需要操作到的表名称,可用 @table 表示
postSql list 数据写入完成后执行的sql语句,例如加上某一个时间戳
writeMode string insert 数据写入表的方式, insert 表示采用 insert into , replace表示采用replace into方式 update 表示采用 ON DUPLICATE KEY UPDATE 语句
batchSize int 1024 定义了插件和数据库服务器端每次批量数据获取条数,调高该值可能导致 Addax 出现OOM或者目标数据库事务提交失败导致挂起

注: 因为 SQLite 连接无需账号密码,因此其他数据库写入插件需要配置的 username, password 在这里不需要。

类型转换

Addax 内部类型 SQLite 数据类型
Long integer
Double real
String varchar
Date datetime
Boolean bool
Bytes blob, binary
Back to top