? Starwift(ClickHouse)是京东云上的一款云原生数据仓库,为用户带来极速分析体验,能够支撑实时数据分析和海量数据离线分析。便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性,助力客户数字化转型。实时指标加工是从离线指标加工需求演变而来。业务场景对离线加工的时效性的要求已经升级为指标加工分析实时性的增强。
?
? 实时指标加工首先要求指标加工的时效性能够保障,指标的加工的时效性是指从数据源到数据计算,再到数据的落地可查,整个过程都是完全实时的,并且保证时延最低。其次,在准确性方面,无论有多复杂的数据处理链路,实时指标的加工不会因为节点抖动或其他问题而导致数据重复或丢失。最后从投入的角度来看,如何保障后续的指标开发/加工/运维成本可控等诸多因素 。
面对实时指标的加工要求,选择了Starwift作为实时指标加工的载体。实时指标开发要求时效延迟低、数据准确高、开发运维成本低,这些与Starwift的特性高度匹配,因此整个指标的加工链路的实现使用了Starwift作为指标计算的载体。整体实现加工通过Flink+Starwift(物化视图)方案进行实时指标加工Starwift中的物化视图具有以下优势:
具体的实时指标加工链路如下:
数据源:首先,数据从各种源流入,如 Kafka、数据库、API 等。
数据采集:使用 Flink 流处理框架,实时捕获并处理来自数据源的数据流。Flink 可以高效地处理大量实时数据,并进行实时分析、聚合等操作。
数据清洗与转换:在 Flink 中,可以进行数据清洗、转换和预处理,确保数据的质量和准确性。
数据存储:经过处理的数据可以存储在 Starwift 中。Starwift 是一个高性能的列式数据库管理系统,非常适合实时分析和查询。
物化视图:在 Starwift 中,可以使用物化视图来存储预先计算的结果。物化视图可以加速查询性能,并提高数据处理的效率。
查询与报表:通过 Starwift 的查询引擎,用户可以快速查询和检索实时数据,生成各种报表和分析结果。
例如有如下广告栏位统计需求场景:用户ID
,url
,access_time
,channel
等四个字段分别记录了用户信息/访问URL/访问时间/访问频道等字段信息,现需要按照天统计每个URL的曝光次数。
按照上述需求场景,首先第一步需要通过Flink程序实时采集点击的明细数据入starwift将数据写入stg(贴源层),按照业务需求,仅仅是统计当天的URL统计指标数据,因此贴源层的数据时效性一般可以设置148小/1周的数据,一周后数据会自动清除,减少对存储节点的磁盘消耗。
按照上述章节描述,我们需要在Starwift中创建一张明细表,数据通过flink加工数据直接写到贴源层,由于贴源层的数据存储时间有时常限制,所以可以构建一个TTL表
create table if not exists stg.stg_user_channel_click(
user_id UInt8,
url String,
channel String