更新时间:2024-08-03 GMT+08:00

IoTDB Session样例程序

功能简介

通过Session连接方式,执行IoTDB SQL语句。

代码样例

下面代码片段仅为演示,具体代码参见“com.huawei.bigdata.SessionExample”。

其中在Session对象的参数里,设置IoTDBServer所在的节点IP、端口、用户名和密码。

  • 待连接的IoTDBServer所在的节点IP地址,可通过登录FusionInsight Manage界面,选择“集群 > 服务 > IoTDB > 实例”查看。
  • RPC端口可通过登录FusionInsight Manager,选择“集群 > 服务 > IoTDB > 配置 > 全部配置”,搜索参数“IOTDB_SERVER_RPC_PORT”获得。
  • 普通模式下,初始安装后IoTDB有一个默认用户:root,密码请参见用户账号一览表章节获取。该用户为管理员用户,固定拥有所有权限,无法被赋予,无法被撤销权限,也无法被删除。
  • 需在本地环境变量中设置环境变量认证用户名和认证用户密码,建议密文存放,使用时解密,确保安全。其中:
    • 认证用户名为访问IoTDB的用户名。
    • 认证用户密码为访问IoTDB的用户密码。
  private static final String IOTDB_SSL_ENABLE = "true";//该值可登录FusionInsight Manager,选择“集群 > 服务 > IoTDB > 配置”,在搜索框中搜索“SSL”,查看“SSL_ENABLE”参数值获取。
public static void main(String[] args)
      throws IoTDBConnectionException, StatementExecutionException {
    // set iotdb_ssl_enable
    System.setProperty("iotdb_ssl_enable", IOTDB_SSL_ENABLE);
    if ("true".equals(IOTDB_SSL_ENABLE)) {  
      // set truststore.jks path  
      System.setProperty("iotdb_ssl_truststore", "truststore文件路径");
    }
    session = new Session(nodeUrls, "认证用户名", "认证用户密码");
    session.open(false);

    // set session fetchSize
    session.setFetchSize(10000);

    try {
      session.setStorageGroup("root.sg1");
    } catch (StatementExecutionException e) {
      if (e.getStatusCode() != TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode()) {
        throw e;
      }
    }

    createTimeseries();
    createMultiTimeseries();
    insertRecord();
    insertTablet();
    insertTablets();
    insertRecords();
    nonQuery();
    query();
    queryWithTimeout();
    rawDataQuery();
    queryByIterator();
    deleteData();
    deleteTimeseries();
    setTimeout();

    sessionEnableRedirect = new Session(nodeUrls, "认证用户名", "认证用户密码");
    sessionEnableRedirect.setEnableQueryRedirection(true);
    sessionEnableRedirect.open(false);

    // set session fetchSize
    sessionEnableRedirect.setFetchSize(10000);

    insertRecord4Redirect();
    query4Redirect();
    sessionEnableRedirect.close();
    session.close();
  }