支持MySQL协议
所有文档
menu

时序时空数据库 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,连接Host信息填写TSDB实例的EndPoint地址+端口号3306(示例见:Grafana连接TSDB);通过Mysql协议支持的查询函数请参考SQL查询函数

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