零代码也能针对 TB 量级数据实现秒级指标分析

本文作者:汤雪

背景介绍

当使用一个较小的数据集进行分析时,指标分析往往运行良好,能在用户可接受的阈值内提供响应。然而,随着数据集规模的增长,响应时间往往会受到相当大的影响,大多数应用甚至无法支撑海量数据。数据仓库解决方案可以解决大数据量的问题,但海量数据分析的低延迟查询响应也存在挑战。

Kyligence Zen 提供了指标缓存的能力,来解决这个问题。简单来说,指标缓存是将源数据按照指标维度提前聚合生成一个物理模型,查询时,后台查询引擎自动匹配算好的模型数据,从而达到加速的效果。这种简单而强大的优化方式,可以将数据集大小减少几个数据级,并且如果多指标的查询模式相似,系统会匹配相同的模型提供查询。当然对于业务用户而言,您完全可以跳过上面几句,只需界面开启智能缓存,就能享受极致的查询体验,上手门槛近乎于零。

功能详情

在 Kyligence Zen 中,选择基础指标卡片进入缓存页面,即可进行添加指标缓存。指标缓存有两种类型:增量和全量。如果指标源数据是按日期增量更新或者指标数据量较大时,建议选择增量模式,分批加载。选择后,系统自动在后台创建模型,生成一个 Segment,显示起始日期及状态。当状态更新至 Ready 时,重新查询指标会感受性能被加速。对于用到基础指标的衍生和复合指标,可以复用指标缓存的计算结果,在此基础上后计算,也可以提高性能。

零代码也能针对 TB 量级数据实现秒级指标分析_第1张图片

如果源数据变更时,也可刷新已经计算好的 Segment,获取最新数据。当指标逻辑修改时,历史缓存会被自动清空,再次添加缓存时,系统会重新推进新的模型,保证指标数据和逻辑一致。

零代码也能针对 TB 量级数据实现秒级指标分析_第2张图片

技术原理

用户在 Kyligence Zen 接入指标表(如 S3)后,后台会将表信息注册入指标目录,这里仅是元数据,并不会将源数据加载至 Kyligence Zen 中。接下来,用户在界面定义指标,指标目录会记录这些信息。若数据量较小,用户可直接查询指标,这时,指标查询引擎会基于指标目录的指标语义,将指标查询 SQL 翻译成源表可执行的 SQL,获取查询结果。

若数据量较大,可在界面启动指标缓存,后台的 Kyligence AI 增强引擎会基于指标目录的指标 SQL 自动推荐指标模型和索引,并生成预计算任务,将源数据按指标维度聚合,拉取到 Zen 的模型中存储。这里,值得提的是,我们是基于 SQL Pattern 做模型推荐,如果两个指标 SQL 高度相似,比如仅是筛选条件不同,或者仅是新增了一个关联维度,那么 Kyligence AI 引擎会将其匹配到一个模型中或优化现有模型,可以有效降低计算成本。对复合和衍生指标来说,查询时,通过指标查询引擎会识别出里面用到的基础指标,如果有添加指标缓存,Zen 会自动匹配计算好的模型数据,在此基础上做衍生和复合的二次计算,从而能提高查询性能,不需要重复计算。

Kyligence Zen 会记录指标的使用情况,对于不常使用的低频指标,系统会推荐(用户可以在系统中下线删除)后台的模型也会同步更新清理,进一步提高资源的利用率,降低成本。

零代码也能针对 TB 量级数据实现秒级指标分析_第3张图片

产品优势

市场上也有通过 OLAP 技术结合指标宽表的方案解决海量数据指标分析问题,尽管解决了性能问题,但实践下来存在一些新的挑战:

  1. 当用户需要使用相似度很高的指标时,比如基础指标相同,仅仅是限定条件不同的几个衍生指标,使用其他方案会造成宽表的重复开发,造成严重的成本浪费
  2. 临时指标产生的宽表无法及时追踪、清理
  3. 指标开发流程仍需要较多的人工操作,需求响应时间长

目前 Kyligence Zen 指标缓存能力除了可以在海量数据场景下提高低延迟、高并发的查询体验,也可以很好地解决上面这几个挑战:

  1. Kyligence AI 增强引擎智能识别相似指标,推荐相同模型或优化现有模型,避免重复浪费
  2. 指标用量和指标缓存元数据统一,自动生成优化建议,可及时追踪、清理
  3. 整个指标计算 API 自动化,对用户屏蔽了技术复杂性,支持批量操作,有效提高数据开发效能

 免费试用

以上是关于指标缓存的能力介绍,稍微我们也将推出一系列的博客介绍 Kyligence Zen 智能缓存功能在真实场景下的应用,敬请期待!

Kyligence Zen 正在免费试用中,欢迎前往 Kyligence Zen 官网体验一站式云端指标中台。

你可能感兴趣的:(云上指标中台,Kyligence,免费试用,大数据,指标中台,指标管理,数据分析,加速查询)