阿里云存储 > 正文

使用jdbc统计和可视化日志

简介: 简介 mysql作为非常流行的关系型数据库,很多软件支持通过mysql传输协议和sql语法获取mysql数据。用户只需要对sql语法熟悉,即可完成对接。日志服务提供了mysql协议查询和分析日志数据。
+关注继续查看

简介

mysql作为非常流行的关系型数据库,很多软件支持通过mysql传输协议和sql语法获取mysql数据。用户只需要对sql语法熟悉,即可完成对接。日志服务提供了mysql协议查询和分析日志数据。用户可以使用标准mysql客户端连接到日志服务,使用标准的sql语法计算和分析日志。支持mysql传输协议的客户端包括,mysql client,jdbc, Python MySQLdb。例如,我们使用tableau,通过mysql协议连接日志服务,读取日志数据。有两种场景使用jdbc:

  1. 使用可视化类工具,例如dataV, Tableau, Kibana来通过mysql协议连接日志服务。
  2. 使用java的jdbc,python的MySQLdb等库在程序中访问日志服务,在程序中处理查询结果。

本文将介绍如何使用mysql协议和sql语法来计算日志。

数据样例

以共享单车日志为例,日志内容包括用户年龄,电量使用量,车辆id,性别,操作延时,纬度,锁类型,经度,操作类型,操作结果,开锁方式。数据保存在project:trip_demo的logstore:ebike中。在控制台给logstore的每一列开启索引和分析功能 。project所在地域是cn-hangzhou

Time :10-12 14:26:44
__source__:  11.164.232.105  
__topic__:  v1  
age:  55  
battery:  118497.673842  
bikeid:  36  
gender:  male  
latency:  17  
latitude:  30.2931185245  
lock_type:  smart_lock  
longitude:  120.052840484  
op:  unlock  
op_result:  ok  
open_lock:  bluetooth  
userid:  292  

JDBC统计

首先创建一个maven项目,在pom依赖中添加jdbc依赖。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>

新建一个java类,在代码中使用jdbc进行查询:

/**
 * Created by mayunlei on 2017/6/19.
 */
import com.mysql.jdbc.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.Statement;
/**
 * Created by mayunlei on 2017/6/15.
 */
public class jdbc {
    public static void main(String args[]){

         //在这里修改成你的配置
        final String endpoint = "cn-hangzhou-intranet.sls.aliyuncs.com";//日志服务内网或VPC域名
        final String port = "10005"; //日志服务mysql 协议端口
        final String project = "trip-demo";
        final String logstore = "ebike";
        final String accessKeyId = "";
        final String accessKey = "";

        Connection conn = null;
        Statement stmt = null;
        try {
            //步骤1 : 加载jdbc驱动
            Class.forName("com.mysql.jdbc.Driver");

            //步骤2 : 创建一个链接
            conn = DriverManager.getConnection("jdbc:mysql://"+endpoint+":"+port+"/"+project,accessKeyId,accessKey);

            //步骤3 : 创建statement
            stmt = conn.createStatement();

            //步骤4 : 定义查询语句,查询2017年10月11日全天日志中满足条件op = "unlock"的日志条数,操作平均延时
            String sql = "select count(1) as pv,avg(latency) as avg_latency from "+logstore+"  " +
                    "where     __date__  >=  '2017-10-11 00:00:00'   " +
                    "     and  __date__  <   '2017-10-12 00:00:00'" +
                    " and     op ='unlock'";

            //步骤5 : 执行查询条件
            ResultSet rs = stmt.executeQuery(sql);

            //步骤5 : 提取查询结果
            while(rs.next()){
                //Retrieve by column name

                System.out.print("pv:");
                //获取结果中的pv
                System.out.print(rs.getLong("pv"));
                System.out.print(" ; avg_latency:");
                //获取结果中的avg_latency
                System.out.println(rs.getDouble("avg_latency"));
                System.out.println();
            }
            rs.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

使用DavaV连接展示日志服务

可视化大屏DataV提供数据的展示功能,可以对接日志服务读取日志数据,或展示日志计算结果。

1. 创建数据源

数据源可以选择mysql for RDS或者简单日志服务,根据自己的需求选择对应的方式,这里以mysql协议为例,展示如何接入。

如图所示,选择对应的地域,网络选择内网,用户名和密码填写accesskey ,可以是主账号的accessKey,也可以是有权限读取日志服务的子帐号accessKey。端口输入10005,数据库输入project名称。

image.png

2. 创建视图

image.png

视图中选择好业务的模板,然后点击大屏中的任何一个视图,右侧点击修改数据,修改视图的数据源。

image

如图,数据源选择上文创建的数据库,输入查询的SQL,在上边的字段映射中,输入查询结果和视图字段的映射关系。

3. 预览视图并发布

image.png

点击预览,可以查看预览效果:

image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL性能监控全掌握,快来get关键指标及采集方法!
数据库中间件监控实战,MySQL中哪些指标比较关键以及如何采集这些指标了。帮助提早发现问题,提升数据库可用性。
115 0
日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
32 0
网站流量日志分析--统计分析--hive 级联求和问题案例|学习笔记
快速学习网站流量日志分析--统计分析--hive 级联求和问题案例
45 0
网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA|学习笔记
快速学习网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA
91 0
网站流量日志分析--统计分析--漏斗模型转化分析 &hive 级联求和问题|学习笔记
快速学习网站流量日志分析--统计分析--漏斗模型转化分析 &hive 级联求和问题
69 0
网站流量日志分析--统计分析--基础指标统计分析(vv、ip)|学习笔记
快速学习网站流量日志分析--统计分析--基础指标统计分析(vv、ip)
119 0
网站流量日志分析--统计分析--多维统计分析--了解其他维度分析|学习笔记
快速学习网站流量日志分析--统计分析--多维统计分析--了解其他维度分析
54 0
【笔记】用户指南—诊断与优化—SQL审计与分析—日志报表
PolarDB-X 支持SQL审计与分析功能,依托日志服务,提供了运营中心、性能中心、安全中心等开箱即用的报表,方便您快速查看了解PolarDB-X数据库的执行状况、性能指标、潜在安全问题等情况。
61 0
用户指南—诊断与优化—SQL审计与分析—日志报表
PolarDB-X 支持SQL审计与分析功能,依托日志服务,提供了运营中心、性能中心、安全中心等开箱即用的报表,方便您快速查看了解PolarDB-X数据库的执行状况、性能指标、潜在安全问题等情况。
56 0
让SQL优化器更准确!AnalyticDB PG版发布统计信息自动收集功能
本次发布的 Auto Analyze 功能解决了在 ADB PG 实例使用过程中,由于未能及时执行 ANALYZE 收集统计信息导致了 CBO 优化器生成计划退化进而导致业务分析变慢的问题。
808 0
阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。
热门文章
热门讨论
+关注
云雷
日志计算驱动业务增长 让天下没有难分析的日志
文章
问答
视频
相关电子书
更多
零基础实现Flume收集网站日志数据到MaxCompute
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载