DataV是阿里云的可视化产品,能帮助您通过图形化的界面轻松搭建专业水准的可视化应用,丰富表现日志分析数据。本文档介绍如何通过日志服务对接DataV进行大屏数据展示。
前提条件
背景信息
实时大屏广泛应用于大型在线促销活动。实时大屏基于流式计算架构,该架构包含以下模块:
数据采集:将来自各源头数据实时采集。
中间存储:利用类Kafka Queue进行生产系统和消费系统解耦。
实时计算:数据处理关键环节,订阅实时数据,通过计算规则对窗口中数据进行运算。
结果存储:计算结果数据存入SQL和NoSQL。
可视化:通过API调用结果数据进行展示。
在阿里集团内,有大量成熟的产品可以完成此类工作,一般可供选型的产品如下:
日志服务支持通过日志服务查询分析API直接对接DataV进行大屏数据展示。
功能特点
计算方式根据数据量、实时性和业务需求会分为以下两种。
实时计算(流计算):固定的计算+变化的数据
离线计算(数据仓库+离线计算):变化的计算+固定的数据
在对实时性有要求的日志分析场景中,日志服务为您提供实时索引LogHub中数据机制,可通过LogSearch/Analytics直接进行查询分析。LogSearch/Analytics具有以下优势:
快速:一秒内查询(5个条件),可处理10亿级数据。一秒内分析(5个维度聚合+GroupBy),可聚合亿级别数据,无需等待和预计算结果。
实时:99.9%情况下可做到日志产生1秒内反馈到大屏。
动态:无论修改统计方法还是补数据,支持实时刷新显示结果,无需等待重新计算。
LogSearch/Analytics具有以下限制:
数据量:单次计算数据量限制为百亿行,当超过百亿行,需要限定时间段。
计算灵活度:计算限于SQL92语法,不支持自定义UDF。
添加日志服务SLS数据源操作步骤
登录DataV控制台。
在工作台页面,单击数据准备 > 数据源,进入数据源页面,单击新建数据源。
从类型列表中,选择简单日志服务SLS。
填写简单日志服务SLS相关信息。
参数
说明
自定义数据源名称
数据源的显示名称,您可以自由命名。
AppKey
拥有目标SLS访问权限的账号的AccessKey ID。
AppSecret
拥有目标SLS访问权限的账号的AccessKey Secret。
EndPoint
填写SLS服务的EndPoint。请参见日志服务入口文档,根据您SLS服务的网络类型和所在区域进行填写。
例如VPC网络下,上海区域的EndPoint 填写为https://cn-shanghai-intranet.log.aliyuncs.com。
信息填写完成后,单击确定,完成数据源的添加。
新添加的数据源会自动显示在数据源列表中。
使用日志服务SLS数据源操作步骤
登录DataV控制台。
在工作台页面中,将鼠标移动至需要编辑的数据看板上,单击编辑。
重要如果您的工作台页面内还没有创建任何数据看板,请参见使用模板创建PC端看板,创建一个数据看板。
在画布编辑页面,单击画布中的某一组件。
如果画布中还没有组件,请先添加组件,详情请参见组件画布操作。
在画布右侧的组件配置面板中选择数据源。
在设置数据源模块中,选择数据源类型为简单日志服务SLS。
在选择已有数据源列表中选择配置完成的日志服务数据源。
在下方查询编辑框中输入查询参数 。
支持以JSON对象为查询参数进行查询。 可填写的查询参数为:
{ "projectName": "test", "logStoreName": "access-log", "topic": "test", "from": 1509897600, "to": 1509984000, "query": "" , "line": 100, "offset": 0 }
说明其中query参数的查询语法请参见查询语法。
单击查看数据返回结果,查看数据返回结果。
案例:调整不同统计口径下的云栖大会网站访问实时大屏
云栖大会期间有一个临时需求,需要您统计大会网站的全国各地访问量以在实时大屏上显示。此前您已配置采集全量日志数据,并且在日志服务中打开了查询分析,所以只要输入查询分析Query即可。在此过程中,需求是不断调整的,如下所列:
原始需求:在云栖大会的第一天,您需要统计UV(当日点击用户数量)。
您要查询所有访问日志中nginx的forward字段的数据(该字段记录访问用户的一个或多个IP,每条日志一个forward字段),通过
approx_distinct(forward)
计算去重后的IP地址数量,获取从云栖大会首日零时到当前时刻的点击UV数,可以使用如下语句。* | select approx_distinct(forward) as uv
需求第一次调整:云栖大会的第二天,需求调整为您需要统计yunqi.aliyun.com这个域名下的用户访问量数据。
您可以增加一个过滤条件host进行实时查询,使用如下语句。
host:yunqi.aliyun.com | select approx_distinct(forward) as uv
需求第二次调整:在统计过程中,您发现Nginx访问日志forward字段存在多个IP,您默认只要第一个IP。
使用如下语句。
host:yunqi.aliyun.com | select approx_distinct(split_part(forward,',',1)) as uv
需求第三次调整:云栖大会的第三天,需求被加上限制条件,您需要剔除通过UC浏览器访问并点击该浏览器广告而来的用户访问量,统计非UC浏览器广告导流、不重复IP的全国各地用户访问量。
此时您可以加上一个过滤条件not,使用如下语句。
host:yunqi.aliyun.com not URL:uc-iflow | select approx_distinct(split_part(forward,',',1)) as uv