支持MySQL协议
所有文档

          时序时空数据库 TSDB

          支持MySQL协议

          介绍

          TSDB现已正式支持Mysql协议,可为用户提供更加便捷的SQL使用体验。用户可通过控制台创建Mysql协议账号后,利用Mysql JDBC、以及支持Mysql JDBC的各类工具查询访问TSDB数据。

          Mysql账号管理

          创建账号

          使用Mysql协议连接TSDB数据库实例时需要提供Mysql协议账号信息(包括用户名、密码),用户可通过TSDB控制台创建Mysql协议账号。

          使用限制:

          • 仅允许主用户进行mysql账号管理相关操作
          • 子用户不能看到主用户创建的mysql账号
          • 每个主用户最多创建10个mysql协议账号
          • 登录TSDB控制台,点击「账户管理」后显示已创建的账户列表信息

          tsdb mysql-a.png

          • 点击「创建账号」,在弹出的编辑窗口中,「账号名称」、「账号密码」、「确认密码」分别填写用户自定义的Mysql用户名及密码,「授权信息」选择希望通过该账号访问到的TSDB实例名称。

          账号名称:8-16个字符,由字母和数字组成,创建后不可修改

          账号密码:8-16个字符,必须包含大小写字母和数据三种字符

          授权信息:支持选择多个TSDB实例进行关联

          tsdb mysql1.png

          • 创建后的账号显示在账户列表中。账号关联的TSDB数据库实例可通过点击「授权信息」>「查看」获得。

          20201027122845.png

          20201027123037.png

          编辑账号

          已创建的Mysql账号支持授权信息的修改、账号密码重置。

          授权信息编辑

          点击「账户列表」>「操作」>「编辑」进入编辑账号页面,可对授权信息进行添加和删除,调整完成后需保证输入的账号密码正确,点击确定后将保存本次调整内容。

          20201027123435.png

          image.png

          账号密码重置

          点击「账户列表」>「操作」>「重置密码」进入密码编辑弹窗,按照要求输入新密码,点击确定后需要通过发送手机验证码进行二次确认,确认手机号无误后点击「发送验证码」,将接收到的验证码正确输入,点击确定,完成账号密码的重置。

          FastStoneEditor1.png

          image.png

          20201027124156.png

          连接示例

          账号信息生成后,用户可利用Mysql Shell、Mysql JDBC、以及各种兼容Mysql协议的BI工具访问TSDB。

          MySQL Shell

          示例采用MySQL Shell 5.0版本连接TSDB,如下图: asd.png

          MySQL Connector/J

          示例采用MySQL Connector/J 5.1.26版本连接TSDB。

          • 在Maven的pom.xml文件中添加mysql-connector-java 5.1.26的依赖:
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.26</version>
          </dependency>
          • 使用Connector/J查询TSDB数据库实例中数据的示例代码:
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.Statement;
          
          public class MySQLDemo {
          
              // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
              private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
              private static final String DB_URL = "jdbc:mysql://10.70.**.**:8312/tsdbtest2";
          
              // 数据库的用户名与密码,需要根据自己的设置
              private static final String USER = "te******";
              private static final String PASS = "TE******";
          
              public static void main(String[] args) {
                  try {
                      // 注册 JDBC 驱动
                      Class.forName(JDBC_DRIVER);
                      String sql = "SELECT * FROM pm25 limit 1";
                      try (
                          // 打开链接
                          Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
                          // 实例化Statement对象
                          Statement stmt = conn.createStatement();
                          // 执行查询
                          ResultSet rs = stmt.executeQuery(sql);
                      ) {
                          // 展开结果集数据库
                          while(rs.next()){
                              // 通过字段检索
                              long timestamp  = rs.getLong("timestamp");
                              double value = rs.getDouble("value");
                              double latitude = rs.getDouble("latitude");
                              double longitude = rs.getDouble("longitude");
                              String city = rs.getString("city");
                              String zipCode = rs.getString("zip_code");
          
                              // 输出数据
                              System.out.println("输出结果:");
                              System.out.println("timestamp : " + timestamp);
                              System.out.println("value : " + value);
                              System.out.println("latitude : " + latitude);
                              System.out.println("longitude : " + longitude);
                              System.out.println("city : " + city);
                              System.out.println("zipCode : " + zipCode);
                          }
                      }
                  } catch (Exception e) {
                      // 处理异常
                      e.printStackTrace();
                  }
              }
          }
          • 示例代码返回的查询结果:
          timestamp : 1420000000000
          value : 60.0
          latitude : 31.48877
          longitude : 121.940402
          city : 上海
          zipCode : 200000

          Grafana

          示例采用Grafana 7.1.5版本连接TSDB。

          • 首先添加TSDB数据源。在添加数据源窗口种选择添加“Mysql”类型的数据源,并按照下图的指示完成数据库地址、数据库名以及账号密码信息的配置。当连接测试成功后,就可以像通过Grafana操作Mysql一样操作TSDB。

          image.png

          image.png

          • 添加可视化面板,选择创建的TSDB数据源,输入数据的SQL查询语句后即可显示图表。下图以TSDB中数据为示范数据为例,展示SQL查询语句及对应的显示效果。

          image.png

          tsdb grafana2.png

          ww.png

          TSDB支持SQL的相关内容请参考文档

          上一篇
          支持SQL查询
          下一篇
          对接hive-sql