简介

一直以来,日志服务提供了 以restfull API方式写入、查询日志数据,管理自己的项目及日志库。现在日志服务新增提供了mysql 接口,用户可以使用jdbc连接到日志服务,通过标准的sql语法进行查询和计算。

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等库在程序中访问日志服务,在程序中处理查询结果。

使用方法

数据模型映射

日志服务数据模型 SQL数据模型
project database
logstore table
accesskeyId user
accessKey password

支持的region

目前仅支持经典网络内网访问和VPC网络访问。各个地域的地址参考文档。地址为内网域名和VPC域名,端口为10005。

帐号和权限

访问jdbc接口,必须使用主账号的ak或者子帐号的ak,子帐号必须是project owner的子帐号,同时子帐号具有project级别的读权限。

查询注意事项

在 where条件中必须包含__date__或__time__来限制查询的时间范围。__date__是timestamp类型 __time__是bigint类型。
例如

__date__  >  '2017-08-07 00:00:00' and  __date__ < '2017-08-08 00:00:00' 
__time__ > 1502691923  and __time__ < 1502692923

上述两种条件必须出现一个。

支持的filter语法

  1. 字符串搜索:key = "value" ,查询的是分词之后的结果。
  2. 字符串模糊搜索: key = "valu*" , 查询的是分词之后模糊匹配的结果。
  3. 数值比较: num_field > 1, 支持的比较运算符包括> >= = < <=。
  4. 逻辑运算: and or not。例如 a = "x" and b ="y" 或 a = "x" and not b ="y"
  5. 如果使用全文索引搜索,需要使用特殊的key __line__ ,例如 __line__ ="abc"

支持的计算

支持的计算语法参见文档

在程序中使用

开发者可以在任何一个支持mysql connector的程序中使用mysql语法连接日志服务。例如使用jdbc或者python MySQLdb。

使用样例

import com.mysql.jdbc.*;import java.sql.*;
import java.sql.Connection;
import java.sql.ResultSetMetaData;
import java.sql.Statement;public class testjdbc {public static void main(String args[]){Connection conn = null;Statement stmt = null;try {//STEP 2: Register JDBC driverClass.forName("com.mysql.jdbc.Driver");//STEP 3: Open a connectionSystem.out.println("Connecting to a selected database...");conn = DriverManager.getConnection("jdbc:mysql://cn-shanghai-intranet.sls.aliyuncs.com:10005/shproject1","accessid","accesskey");System.out.println("Connected database successfully...");//STEP 4: Execute a querySystem.out.println("Creating statement...");stmt = conn.createStatement();String sql = "SELECT method,min(latency,10)  as c,max(latency,10) from sls_operation_log " +"where  __time__>=1500975424 and __time__ < 1501035044  and __time__ < 1501035044 " +"    and latency > 0  and latency < 6142629 and  not  (  method='Postlogstorelogs' or method='GetLogtailConfig') group by method " ;sql = "select count(1) ,max(latency),avg(latency), histogram(method),histogram(source),histogram(status),histogram(clientip),histogram(__source__) from  test10 where     __date__  >       '2017-07-20 00:00:00'   " +" and  __date__ <     '2017-08-02 00:00:00'" +" and     __line__='abc#def' and latency < 100000 and (method = 'getlogstorelogS' or method='Get**' and method <> 'GetCursorOrData' )";sql = "select count(1) from  sls_operation_log where     __date__  >       '2017-08-07 00:00:00'   " +" and  __date__ <     '2017-08-08 00:00:00' limit 100";ResultSet rs = stmt.executeQuery(sql);//STEP 5: Extract data from result setwhile(rs.next()){//Retrieve by column nameResultSetMetaData data = rs.getMetaData();System.out.println(data.getColumnCount());for(int i = 0;i < data.getColumnCount();++i) {String name = data.getColumnName(i+1);System.out.print(name+":");System.out.print(rs.getObject(name));}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();}}}}
}

使用mysql client连接

使用DavaV连接展示日志服务

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

1. 创建数据源

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

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

2. 创建视图

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

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

3. 预览视图并发布

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

使用jdbc访问日志服务分析和可视化日志相关推荐

  1. ELK日志服务使用-kafka传输日志(bbotte.com)

    本文转载于 http://bbotte.com/  ELK日志服务使用-kafka传输日志 对于日志传输,rsyslog或者logstash也就够用了,一般的redis,kafka,主要是作为缓冲或序 ...

  2. 10.11杭州Clouder lab 十分钟搭建共享应用 2:如何通过日志服务实现用户的日志收集与分析...

    场景描述 共享电动车企业使用函数服务搭建服务端.在函数服务中开启日志,把程序日志写到日志服务,同时在函数代码中使用SDK把运营日志写入到日志服务,使用日志服务进行日志分析. 在日志服务中,用户可以: ...

  3. 容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志

    目前,容器服务Windows Kubernetes支持将业务容器产生的stdout输出.日志文件同步到阿里云日志服务(SLS)进行统一管理. 支撑组件安装 在Windows Kubernetes集群安 ...

  4. Kibana:分析及可视化日志文件

    留坑 候补 转载于:https://www.cnblogs.com/slowcity/p/10162029.html

  5. 阿里云日志服务grafana可视化探索

    一.背景 网站前端启用了阿里云的负载均衡,各类日志很方便的接入阿里云的日志服务,目前对于日志服务后台提供的可视化不甚满意,故探索grafana对其可视化. 二.目的 1.根据nginx日志(slb)来 ...

  6. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  7. 日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

    对于大部分开发者而言,经常会面临这样一种场景:"我知道日志数据很宝贵,但今天没有明确需求,能否有一种成本很低的方案先把日志备份起来,不占用空间.有一天有明确需求时,能够快速.方便分析日志&q ...

  8. aliyun 日志服务(Log Service,Log)是针对日志场景的一站式服务

    日志服务(Log Service,Log)是针对日志场景的一站式服务,在阿里巴巴集团内部被广泛使用.用户无需开发就能快捷完成日志生命周期中采集.消费.投递以及查询功能. 日志服务当前提供如下功能 日志 ...

  9. 日志服务(SLS)集成 Spark 流计算实战

    前言 日志服务作为一站式的日志的采集与分析平台,提供了各种用户场景的日志采集能力,通过日志服务提供的各种与·与SDK,采集客户端(Logtail),Producer,用户可以非常容易的把各种数据源中的 ...

  10. 日志服务与SIEM(如Splunk)集成方案实战

    背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规.审计.与其他相关日志能够导入到您的安全运维中心(SOC)中. 名词解释 LOG( ...

最新文章

  1. MOD函数语法和参数
  2. Appium base knowledge
  3. 最优化——线性规划中最大规划和最小规划之间的转换
  4. python 常量_大疆机甲大师Python开发: 两只老虎
  5. boost::mpi模块实现一个简单的点类,我们可以构建、添加、比较和 连载
  6. UINavigationController
  7. (七)python3 只需3小时带你轻松入门——List与dict
  8. 【HAOI2015】按位或【Min-Max容斥】【FWT】
  9. Python @property装饰器的用法,判断函数参数整形、字符串、取值范围
  10. python模拟登录webspare_全面解读python web 程序的9种部署方式
  11. mq补偿机制java代码_RocketMQ源码分析之消息消费机制-消费端消息负载均衡机制与重新分布 - Java 技术驿站-Java 技术驿站...
  12. 面向对象程序设计中“超类”和“子类”概念的来历
  13. webpack2 项目
  14. python可迭代对象相关的内建函数_python之函数闭包、可迭代对象和迭代器
  15. 2013年最新十大xp系统下载排行榜-无极系统下载站
  16. Python语言程序设计基础_实验四_函数(一)_答案_通识教育必修课程_上海师范大学
  17. 小米9开发版已开启Android,小米9 MIUI安卓10开发版已开始推送,建议大家不要去升级...
  18. 计算机组老师颁奖词,学生表彰颁奖词与学生计算机室管理制度合集.doc
  19. sqlite优化简单分析
  20. 摄像头各参数的意义_手机摄像头的一些主要参数表达了什么意思?

热门文章

  1. FastReport动态打印图片
  2. 程序员们必看,不要让光环效应毁了你辛辛苦苦做的软件
  3. Verilog学习(1)--centos虚拟机安装
  4. UVALive 2326 Moving Tables(贪心+不相交区间问题)
  5. LeetCode Number of Atoms
  6. 为什么我练的字没有神
  7. 使用webdriver获取网页token值
  8. 20172321 2017-2018-2 《程序设计与数据结构》实验五报告
  9. Python实例之自动轨迹绘制(文件和tutle库的应用)
  10. 亚马逊计划在空中建无人机配送中心