Cassandra Writer¶
Cassandra Writer 插件用于向 Cassandra 写入数据。
配置样例¶
配置一个从内存产生到 Cassandra 导入的作业:
{
"job": {
"setting": {
"speed": {
"channel": 5,
"bytes": -1
}
},
"content": {
"reader": {
"name": "streamreader",
"parameter": {
"column": [
{
"value": "name",
"type": "string"
},
{
"value": "false",
"type": "bool"
},
{
"value": "1988-08-08 08:08:08",
"type": "date"
},
{
"value": "addr",
"type": "bytes"
},
{
"value": 1.234,
"type": "double"
},
{
"value": 12345678,
"type": "long"
},
{
"value": 2.345,
"type": "double"
},
{
"value": 3456789,
"type": "long"
},
{
"value": "4a0ef8c0-4d97-11d0-db82-ebecdb03ffa5",
"type": "string"
},
{
"value": "value",
"type": "bytes"
},
{
"value": "-838383838,37377373,-383883838,27272772,393993939,-38383883,83883838,-1350403181,817650816,1630642337,251398784,-622020148",
"type": "string"
}
],
"sliceRecordCount": 10000000
}
},
"writer": {
"name": "cassandrawriter",
"parameter": {
"host": "localhost",
"port": 9042,
"useSSL": false,
"keyspace": "stresscql",
"table": "dst",
"batchSize": 10,
"column": [
"name",
"choice",
"date",
"address",
"dbl",
"lval",
"fval",
"ival",
"uid",
"value",
"listval"
]
}
}
}
}
}
参数说明¶
配置项 | 是否必须 | 数据类型 | 默认值 | 描述 |
---|---|---|---|---|
host | 是 | string | 无 | 连接点的域名或 ip,多个 node 之间用逗号分隔 |
port | 是 | int | 9042 | Cassandra 端口 |
username | 否 | string | 无 | 数据源的用户名 |
password | 否 | string | 无 | 数据源指定用户名的密码 |
useSSL | 否 | boolean | false | 是否使用 SSL 连接 |
connectionsPerHost | 否 | int | 8 | 客户端连接池配置:与服务器每个节点建多少个连接 |
maxPendingPerConnection | 否 | int | 128 | 客户端连接池配置:每个连接最大请求数 |
keyspace | 是 | string | 无 | 需要同步的表所在的 keyspace |
table | 是 | string | 无 | 所选取的需要同步的表 |
column | 是 | list | 无 | 所配置的表中需要同步的列集合 |
consistancyLevel | 否 | string | LOCAL_QUORUM |
数据一致性级别, |
batchSize | 否 | int | 1 | 一次批量提交(UNLOGGED BATCH)的记录数大小(条数) |
column¶
内容可以是列的名称或 writetime()
。如果将列名配置为 writetime()
,会将这一列的内容作为时间戳
consistancyLevel¶
可选 ONE, QUORUM, LOCAL_QUORUM, EACH_QUORUM, ALL, ANY, TWO, THREE, LOCAL_ONE
类型转换¶
Addax 内部类型 | Cassandra 数据类型 |
---|---|
Long | int, tinyint, smallint,varint,bigint,time |
Double | float, double, decimal |
String | ascii,varchar, text,uuid,timeuuid,duration,list,map,set,tuple,udt,inet |
Date | date, timestamp |
Boolean | bool |
Bytes | blob |
请注意:
目前不支持 counter
类型和 custom
类型。
约束限制¶
batchSize¶
- 不能超过 65535
- batch 中的内容大小受到服务器端
batch_size_fail_threshold_in_kb
的限制。 - 如果 batch 中的内容超过了
batch_size_warn_threshold_in_kb
的限制,会打出 warn 日志,但并不影响写入,忽略即可。 - 如果批量提交失败,会把这个批量的所有内容重新逐条写入一遍。