DataV 使用时间轴实现实时动态查询数据库、sls 等数据源

简介: DataV 使用时间轴实现实时动态查询数据库、sls 等数据源

SLS 配置

DataV 可以使用日志服务作为组件的数据源,数据源配置:
sls1

查询参数如下:

{
  "projectName": "xxx",
  "logStoreName": "xxx",
  "from":150000000,  
  "to": 1514164461, 
  "topic": "",
  "query": "select count(*) as c",
  "line": 1000,
  "offset": 0
}

参数说明:
projectName: 日志服务的 project 名
logStoreName: 日志服务的 logStore 名
query: 日志服务 GetLogs接口的 query 查询,详细见文档:
https://help.aliyun.com/document_detail/29029.html
from 和 to 是以秒计算的起止时间
其余的参数和 GetLogs接口的参数含义相同

产生动态回调

由于 sls 的查询里需要指定起止时间,是以秒为单位的时间戳,如果我们需要实现的查询时间段是动态的,比如最近一天,那么这个 from 和 to 就需要动态产生。

在 DataV 里,动态参数的产生使用回调 id 实现,但是多数的组件的回调 id 的产生需要联动,也就是需要人工操作,如果希望能够实时地不断地产生回调 id,需要使用时间轴组件+过滤器。

时间轴可以设置定时产生回调 id,而回调 id 的值会在时间轴的数据里轮播。我们可以通过设置时间轴的数据自动更新和配置过滤器,从而让时间轴的数据动态生成,然后通过时间轴定时产生回调 id 的功能,提供这个动态的数据给其他的组件使用。
流程如下:
时间轴数据自动更新 -> 过滤器 -> 定时产生回调 id -> 其他组件使用回调 id(数据库、sls 等)

首先产生 sls查询的 from字段:
准备时间轴的数据,由于我们需要的是最近一天的 from,不需要额外的信息,所以数据使用静态数据即可:
sls2

设置自动更新,时间根据自己的需求来确定。
设置了自动更新之后,数据会每隔一段时间自动更新。由于我们的数据是静态数据,实际上每次自动更新的数据并没有发生变化,我们设置自动更新,只是为了执行过滤器,在过滤器里面产生当前时间前一天的时间戳。
过滤器编辑:

return [{
  from: Math.round((Date.now() - 24*60*60*1000)/1000)
}];

sls3
过滤器产生的时间轴数据:
sls4

这样,时间轴就会每一秒产生一个新的数据,里面有一个字段是 from,就是一天前的以秒计算的时间戳,如果你想要产生其他的数据,就在过滤器里计算就可以了,也可以对数据源的数据进行加工、格式转换。由于这里是产生时间戳,实际上对数据源查询的数据并没有使用。

接下来就要将时间轴的数据作为回调设置:

sls5
sls7
sls6

使用回调 id

现在,我们已经有了一个动态的 from 回调 id,这个值就是一天前的时间戳,我们可以再 sls 的查询中使用:

{
  "projectName": "xxx",
  "logStoreName": "xxx",
  "from":":from",  
  "to": 1515567884, 
  "topic": "",
  "query": "select count(*) as c",
  "line": 1000,
  "offset": 0
}

也可以在 sql 中使用:

select :from as a

之后只有再加一个时间轴来产生 to 回调,值为当前的时间戳,name 动态的 sls 查询就是:

{
  "projectName": "xxx",
  "logStoreName": "xxx",
  "from":":from",  
  "to":":to", 
  "topic": "",
  "query": "select count(*) as c",
  "line": 1000,
  "offset": 0
}

总结

时间轴组件的左右就是定期地产生一个回调的值,典型应用就是轮播一系列的数据。比如轮播2010年-2017年的数据。现在我们利用其定期产生回调的特性,在过滤器里面算出一个我们需要的值(本文里是需要的 from、to),就实现了定期产生一个动态的回调值的效果,来让需要动态参数的查询,比如 sls、sql 等可以使用动态的参数作为查询条件。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
SQL 存储 弹性计算
玩转Tablestore:使用Grafana快速展示时序数据
Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,可以通过将采集的数据查询然后可视化的展示,实现报警通知;Grafana拥有丰富的数据源,官方支持以下数据源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,MySQ
1644 0
|
4月前
|
数据采集 DataWorks 安全
dataworks数据地图如何获取全部血缘关系?
dataworks数据地图如何获取全部血缘关系?
88 0
|
6月前
|
DataWorks 监控 定位技术
DataWorks数据地图存在数据延迟的情况下
DataWorks数据地图存在数据延迟的情况下
38 3
|
7月前
|
JSON Prometheus 监控
一键部署Prometheus,并预置仪表盘和数据源
一键部署Prometheus + Grafana + cAdvisor + node-exporter,搭建主机或容器监控。利用grafana的provisioning方式,通过配置的方式预置仪表盘和数据源。
209 1
|
9月前
|
数据可视化 前端开发
漏刻有时数据可视化大屏常见问题(13):翻牌器自动刷新数据前后端执行的解决方案
漏刻有时数据可视化大屏常见问题(13):翻牌器自动刷新数据前后端执行的解决方案
87 0
|
存储 数据采集 弹性计算
SLS 初体验:采集、加工、查询分析及可视化(二)| 学习笔记
快速学习 SLS 初体验:采集、加工、查询分析及可视化。
186 0
SLS 初体验:采集、加工、查询分析及可视化(二)| 学习笔记
|
存储 运维 监控
SLS 初体验:采集、加工、查询分析及可视化(一)| 学习笔记
快速学习 SLS 初体验:采集、加工、查询分析及可视化。
303 0
SLS 初体验:采集、加工、查询分析及可视化(一)| 学习笔记
|
SQL 分布式计算 关系型数据库
在SmartBI中使用ClickHouse数据源进行透视分析
在使用SmartBI进行数据分析时,通过MPP高速缓存库可以大大加快计算速度,提高工作效率。我司SmartBI MPP高速缓存库的底层技术为ClickHouse。ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的数据库管理系统,与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++。
900 0
在SmartBI中使用ClickHouse数据源进行透视分析
|
SQL 弹性计算 监控
日志服务(SLS)初体验:采集、加工、查询分析及可视化
日志服务(SLS)是阿里集团自研的一站式日志平台,它包含数据实时采集、数据加工、智能查询分析以及数据分发四大基础功能,用户无需开发就能能够开箱即用地使用它来提升运维、运营效率,建立 DT 时代海量日志处理能力。 为了让大家对日志服务有更直观的感受,本文将带着大家体验一下这些基础功能,以最常见的 Linux Syslog 作为对象,看看如何简单快速地实现对它的采集、加工、查询分析以及可视化。
1323 0
|
分布式计算 DataWorks 关系型数据库
DataWorks百问百答11:数据地图中数据组织和查找有哪几种方式?
DataWorks百问百答11:数据地图中数据组织和查找有哪几种方式?
2137 0