
# 添加IoTDB数据源
#### 操作场景
本章节指导用户在集群已启用Kerberos认证（安全模式）的HSConsole界面添加IoTDB类型的JDBC数据源。
#### 添加IoTDB数据源前提条件
- 数据源所在集群域名与HetuEngine集群域名不能相同。
- 数据源所在集群与HetuEngine集群节点网络互通。
- 已创建HetuEngine计算实例，可参考[创建HetuEngine计算实例](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1731.html)。
- 安全集群的IoTDB默认开启了SSL，开启了SSL后需上传"truststore.jks"文件，可参考[IoTDB客户端使用实践](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24158.html)获取该文件。
 
#### 约束与限制
本章节适用于MRS 3.6.0-LTS之前的版本。
#### 添加IoTDB数据源操作步骤
1. 使用HetuEngine管理员用户登录FusionInsight Manager，选择"集群 \> 服务 \> HetuEngine"，进入HetuEngine服务页面。
2. 在"概览"页签下的"基本信息"区域，单击"HSConsole WebUI"后的链接，进入HSConsole界面。
3. 选择"数据源"，单击"添加数据源"。在"添加数据源"页面填写参数。 
   1. 配置"基本配置"，填写数据源名称，"数据源类型"选择"JDBC \> IoTDB"。
   
   2. 配置"IoTDB配置"，参数配置请参考[表1]。
       表1IoTDB配置 
      | 参数           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 取值样例                                                            |
      |:---|:---|:---|
      | 驱动           | 默认为"iotdb"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | iotdb                                                           |
      | JDBC URL     | 连接IoTDB的JDBC URL地址。 格式为：jdbc:iotdb://*IoTDBServer业务IP1,IoTDBServer业务IP2* :*端口号*。 - IoTDBServer业务IP： 登录Manager，选择"集群 \> 服务 \> IoTDB \> 实例"，查看IoTDBServer的业务IP。   - 端口号： 登录Manager，选择"集群 \> 服务 \> IoTDB \> 配置"，搜索并查看"IOTDB_SERVER_RPC_PORT"的值，默认为"22260"。    | jdbc:iotdb://192.168.1.1,192.168.1.2:22260                      |
      | 用户名          | 连接IoTDB数据源的IoTDB用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 当IoTDB所在集群未启用Kerberos认证（普通模式）时，需使用IoTDB默认用户"root"。              |
      | 密码           | 连接IoTDB数据源的IoTDB用户密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 当IoTDB所在集群未启用Kerberos认证（普通模式）时，请咨询IoTDB所在集群的集群管理员获取用户"root"的密码。 |
      | 开启ssl        | IoTDB服务是否开启了SSL，安全集群默认开启。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 是                                                               |
      | truststore文件 | IoTDB开启SSL后需上传"truststore.jks"文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -                                                               |
         
      
   
   3. （可选）根据需求可添加自定义配置。
   
   4. 单击"确定"。
   
   
   
   
4. 登录集群客户端所在节点，执行以下命令，切换到客户端安装目录，例如安装目录为"/opt/client"，具体以实际替换。 
   ```
   cd /opt/client
   ```
   执行以下命令配置环境变量。
   ```
   source bigdata_env
   ```
   执行以下命令进行用户认证。（集群未启用Kerberos认证（普通模式）时跳过此步骤）
   ```
   kinit HetuEngine组件操作用户
   ```
   
   
5. 执行以下命令，登录数据源的catalog。 
   ```
   hetu-cli --catalog 数据源名称 --schema 数据库名
   ```
   例如执行以下命令：
   ```
   hetu-cli --catalog iotdb_1 --schema root.ln
   ```
   
   
6. 执行以下命令，可正常查看数据库表信息或不报错即表示连接成功。 
   ```
   show tables;
   ```
   
   
 
#### IoTDB数据类型映射
| IoTDB数据类型（data type） | HetuEngine数据类型（data type） |
|:---|:---|
| BOOLEAN              | BOOLEAN                   |
| INT32                | BIGINT                    |
| INT64                | BIGINT                    |
| FLOAT                | DOUBLE                    |
| DOUBLE               | DOUBLE                    |
| TEXT                 | VARCHAR                   |
   
#### IoTDB数据源功能增强
- IoTDB可为时间序列设置任意标签字段，HetuEngine侧查询可将IoTDB的这些标签字段与其他数据源进行融合查询。
- IoTDB数据库节点到时间序列中的任意节点，均可作为HetuEngine侧查询的表进行数据查询。
 
#### 添加IoTDB数据源约束
- 不支持IoTDB数据创建，只支持IoTDB数据查询。
- 使用HetuEngine进行查询的IoTDB用户至少需要配置根目录root下的读权限。
 
