# CassandraReader 插件文档 ___ ## 1 快速介绍 CassandraReader插件实现了从Cassandra读取数据。在底层实现上,CassandraReader通过datastax的java driver连接Cassandra实例,并执行相应的cql语句将数据从cassandra中SELECT出来。 ## 2 实现原理 简而言之,CassandraReader通过java driver连接到Cassandra实例,并根据用户配置的信息生成查询SELECT CQL语句,然后发送到Cassandra,并将该CQL执行返回结果使用DataX自定义的数据类型拼装为抽象的数据集,并传递给下游Writer处理。 对于用户配置Table、Column的信息,CassandraReader将其拼接为CQL语句发送到Cassandra。 ## 3 功能说明 ### 3.1 配置样例 * 配置一个从Cassandra同步抽取数据到本地的作业: ``` { "job": { "setting": { "speed": { "channel": 3 } }, "content": [ { "reader": { "name": "cassandrareader", "parameter": { "host": "localhost", "port": 9042, "useSSL": false, "keyspace": "test", "table": "datax_src", "column": [ "textCol", "blobCol", "writetime(blobCol)", "boolCol", "smallintCol", "tinyintCol", "intCol", "bigintCol", "varintCol", "floatCol", "doubleCol", "decimalCol", "dateCol", "timeCol", "timeStampCol", "uuidCol", "inetCol", "durationCol", "listCol", "mapCol", "setCol" "tupleCol" "udtCol", ] } }, "writer": { "name": "streamwriter", "parameter": { "print":true } } } ] } } ``` ### 3.2 参数说明 * **host** * 描述:Cassandra连接点的域名或ip,多个node之间用逗号分隔。
* 必选:是
* 默认值:无
* **port** * 描述:Cassandra端口。
* 必选:是
* 默认值:9042
* **username** * 描述:数据源的用户名
* 必选:否
* 默认值:无
* **password** * 描述:数据源指定用户名的密码
* 必选:否
* 默认值:无
* **useSSL** * 描述:是否使用SSL连接。
* 必选:否
* 默认值:false
* **keyspace** * 描述:需要同步的表所在的keyspace。
* 必选:是
* 默认值:无
* **table** * 描述:所选取的需要同步的表。
* 必选:是
* 默认值:无
* **column** * 描述:所配置的表中需要同步的列集合。
其中的元素可以指定列的名称或writetime(column_name),后一种形式会读取column_name列的时间戳而不是数据。 * 必选:是
* 默认值:无
* **where** * 描述:数据筛选条件的cql表达式,例如:
``` "where":"textcol='a'" ``` * 必选:否
* 默认值:无
* **allowFiltering** * 描述:是否在服务端过滤数据。参考cassandra文档中ALLOW FILTERING关键字的相关描述。
* 必选:否
* 默认值:无
* **consistancyLevel** * 描述:数据一致性级别。可选ONE|QUORUM|LOCAL_QUORUM|EACH_QUORUM|ALL|ANY|TWO|THREE|LOCAL_ONE
* 必选:否
* 默认值:LOCAL_QUORUM
### 3.3 类型转换 目前CassandraReader支持除counter和Custom类型之外的所有类型。 下面列出CassandraReader针对Cassandra类型转换列表: | DataX 内部类型| 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类型。 ## 4 性能报告 略 ## 5 约束限制 ### 5.1 主备同步数据恢复问题 略 ## 6 FAQ