# TaCustomReader 插件
# 一、介绍
TaCustomReader 插件实现了 DataX 从 Ta 读取数据。在底层实现上,TaCustomReader 通过 JDBC 连接远程 TA 数据库,并执行相应的 sql 语句将数据从 TA 库中 SELECT 出来。
# 二、实现原理
简而言之,TaCustomReader 通过 JDBC 连接器连接到远程的 TA 数据库,并根据用户配置的信息生成查询 SELECT SQL 语句,然后发送到 TA 集群,并将该 SQL 执行返回结果使用 DataX 自定义的数据类型拼装为抽象的数据集,并传递给下游 Writer 处理。
# 三、功能说明
# 3.1 配置样例
配置一个从 TA 集群读书数据打印在控制台的作业:
{
  "job": {
    "setting": {
      "speed": {
        "channel": 1
      }
    },
    "content": [
      {
        "reader": {
          "name": "ta-custom-reader",
          "parameter": {
            "querySql": "select * from v_event_1 where \"$part_date\" = '2020-01-01'"
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "print": true,
            "encoding": "UTF-8"
          }
        }
      }
    ]
  }
}
# 3.2 参数说明
- server
- 描述:描述的是到对端 TA 数据库的连接信息,SERVER:PORT 形式。
 - 必选:否
 - 默认值:同步集群配置
 
 - querySql
- 描述:在有些业务场景下,用户可以通过该配置型来自定义筛选 SQL。当用户配置了这一项 之后,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表 join 后同步数据,使用select a,b from table_a join table_b on table_a.id = table_b.id
 - 必选:是
 - 默认值:无
 
 
# 3.3 类型转换
目前 TaCustomReader 支持大部分 Presto 类型,但也存在部分个别类型没有支持的情况,请注意检查 你的类型。
下面列出 TA-reader 针对 TA 集群使用的 presto 类型转换列表:
| DataX  内部类型 |  Presto  数据类型 | 
|---|---|
| Long |  TINYINT, SMALLINT, INTEGER, BIGINT | 
| Double |  REAL, DOUBLE, DECIMAL | 
| String |  VARCHAR, CHAR, VARBINARY, JSON | 
| Date |  DATE, TIME, TIMESTAMP | 
| Boolean |  BOOLEAN | 
请注意: 除上述罗列字段类型外,其他类型均不支持
