本方案中基于 Databend 实现一个数据快速汇聚及实时去重,实现一份数据多种工作负载,把原来数据共享的推模式变成:增量订阅模式 + 抽取推送两种模式。从而让有后台开发经验或会 SQL 的人,也可以在 Databend 上实现海量数据平台的建设。
基本概念
实时数据汇聚平台通常用于实时收集、整合和处理多个数据源的数据。 主要应用于:主数据平台建设,省级数据交易所基础数据汇聚等。在该平台建设中我们借助于 Databend 实现数据的高速摄入,治理,查询及对外服务等。
Databend 基于对象存储和 k8s 架构下开发的云原生数据平台,该产品使用 Rust 开发,注重平台的性能和安全性,以 SQL 为交互语言,支持海量存储和计算的数据平台。

- Databend engine 内置微分区技术,让用户不用关注分区;
- 表级默认每个字段建立 min/max, bloom index 索引,让用户无需关注索引;
- 支持 cluster key,按某个列或组合列排序存储数据(linear cluster key, hilbert cluster key);
- 支持 fulltext index、聚合索引、like 加速,支持多种查询模式;
- 轻量化元数据设计,元数据服务无后顾之忧;
- 集群能力轻松扩展。
平台目标
- 实现数据的实时汇入,保留原始数据到一张表中 (ODS 层);
- 支持对 ODS 层的数据进行增量订阅及后续处理;
- 支持去重数据实时合并+更新到目标表中;
- 支持数据按条件抽取;
- 支持表级以 SQL 的方式获取增量及实现增量订阅能力;
- 支持 SQL 方式在平台做 SQL 治理;
- 支持完整的权限隔离;
- 支持租户和用户实现底层数据共享(非授权和跨库访问),需要的数据可以在当前库看到;
- 实现一份数据全平台共享;
- 实现一份数据多种工作负载;
平台架构及说明
在数据汇聚平台中需要考虑每个系统的边界,如何切分功能:如何保证数据异常的情况下实现数据的一致性; 如何做到各个组件的高可用实现等等问题。

在基于 Databend 的数据汇聚平台,数据汇聚通常以 S3 作为中转,接收到的数据以 json 格式写入到 S3 中,Databend 支持面向 S3 的数据加载,在 Databend 中将 ETL 变成了 ELT。 另外一种边界是前端的数据摄入工具把数据写入 Kafka 中,Databend 从 Kafka 中获取订阅的数据。
下面部分把数据汇聚平台的一些工作细化一下,供各位参考。
2.1 高速写入
在数据汇聚平台,数据接入可以分为两类:从数据接入网关到 Databend 和 从 Kafka 中到 Databend 两种形式。 数据接入网关是一种海量的模式,可以应付每秒近千万的数据写入,从 kafka 到 Databend 可以用于每秒在百万以内的数据数据量接入。 其实两者有相通之处,可以共同切换,需要在实际落地中评估一下成本。
从数据接入网关到 Databend
数据平台通常需要面对海量的数据汇聚,可能同时需要上百张表或是上千张表的数据接入任务。整体架构如下:

- 数据源产生数据上传到数据接入网关,数据接入网关把数据按某种频度或是行数写到对象存储指定的 bucket 下对应的位置
- Databend 中通

最低0.47元/天 解锁文章
1166

被折叠的 条评论
为什么被折叠?



