编辑的建议:随着Lingchuang集团的快速发展,为了满足实际的报告统计数据和决策 - 对十亿个数据水平的制定分析,Lilins Group选择了Flink + Doris的真实时间位置计划本文详细介绍了该解决方案的实际过程。
以下文章来自Chuangchuang Group的负责人,作者Su Hao
原始链接:https://mp.weixin.qq.com/s/qg_4nsfo5gxwe8_1oiwvsa
Advance Intelligence Group成立于2016年。它是由AI技术驱动的技术集团。保留消费者,企业和商人的生态系统。该集团包含两个主要的企业业务和消费者业务部分。业务业务包括Advance.ai和Ginee,包括银行,金融,金融科技,零售和电子商务客户,具有基于AI技术的数字身份验证,风险管理产品和风险管理产品和产品。;消费者业务Atome Financial包括亚洲领先的付费平台Atome和数字金融服务。
2021年9月,Linkin Group宣布完成超过4亿美元的D轮融资。融资完成后,Lingchuang集团的估值超过20亿美元,成为新加坡最大的独立技术初创公司之一。该业务涵盖了17个国家和地区,包括新加坡,印度尼西亚,中国,印度和越南,为150,000多个服务提供服务。商人和2000万消费者。
随着该集团业务的快速发展,为了满足实际的报告统计数据和十亿个数据量的决策分析,我们选择基于Apache Flink + Apache Doris构建系统解决方案。
Apache Doris的基本体系结构非常简单。只有两个角色:Fe(Frontnd)和Be(后端)。他们不依赖任何外部组件。它们对部署,操作和维护非常友好。架构图如下:
FE(前端)主要是Java语言。
主要功能责任:
FE有两个主要角色,一个是追随者和一个观察者。领导者是选举选择的特殊追随者。巡游者主要用于实现元数据的高可用性。在单个节点停机时间的情况下,元数据可以实时在线恢复,而不会影响整个服务。
Be(Bace)主要是C ++语言。
主要功能责任:
总体数据链接如下所示:
关于步骤1和步骤2的实践,文章“ Flink-CDC数据同步案例”中已经有解释。本文将详细解释步骤3。
由于业务数据通常伴随着更新之类的操作,删除,以维持真实时间仓库的数据粒径与业务库是一致的,因此Doris唯一模型(下面介绍了数据模型)表单语句如下:
可以看出,表结构中的两个字段是data_deal_datetime,data_status。
多丽丝(Doris)提供了积极提取Kafka数据的功能。配置如下:
导入语句:
max_batch_interval/max_batch_rows/max_batch_size:
如果DORIS例程负载遇到脏数据,则将导致任务被暂停,因此它需要监视及时并自动恢复失败任务的任务状态。并将错误消息发送到指定的LARK组。脚本如下:
现在,每1分钟进行一次在线配置的监视。如果任务被暂停,将自动恢复导入任务,但是导致任务故障的肮脏数据将被跳过。在这个时候。
在多丽丝内部表中,有三个主要数据模型,即汇总,唯一和重复。在引入数据模型之前,首先解释列:在多丽丝中,可以将列分为两类:键和值。透视图,密钥和值分别对应于尺寸和指标。
简而言之,骨料模型是类似于摩洛普的预聚合模型。通过预先定义密钥列和值列的聚合方法,按照数据介绍期间的密钥列的聚合(即值列的聚合方法),键列的相同数据已被汇总。也就是说,最终,表上仅保留相同的数据,并且根据相应的规则计算值。LET给出下面的示例。
表结构如下:
在表结构中,密钥列是user_id,channel,city_code和值列是last_visit_date,total_cost,并且它们的聚合方法分别替换和总和。
现在,将一批数据插入此表:
根据我们的理解,尽管我们已经在tmp_table_1中插入了3个数据,但这3个数据的关键是一致的,因此最终表中只有一个数据,last_visit_date的值应为“ 2022-03-0100 00 00 00 00 00:00:01“,总cost的值应为240.LET的验证:
可以看出,结果是由我们的期望引起的。
正如本结构中的真实时间位置一样,我们更关心如何确保主要钥匙的镜像,即如何获得主要钥匙雄辩的约束。,这里没有例子。
在某些多维分析方案中,数据既不具有主要密钥,也不是对聚合的需求。因此,重复的数据模型用于Manchuria。例如。
表结构如下:
插入数据:
由于数据是此时的重复模型,因此不会执行处理。查询应该能够找到3个数据
因为在构建表且无法修改时已经确定了数据模型。因此,选择合适的数据模型很重要。
聚合模型可以大大减少聚合查询过程中所需的数据和查询的数量和查询,这非常适合于使用固定模式报告场景。但是此模型对计数(*)QUERY.AT不友好(*)在同一时间,由于值列上的聚合方法是固定的,因此在执行其他类型的聚合查询时需要考虑语义正确性。
唯一的模型可以确保唯一的主密钥约束的主要键的唯一性约束,但不能用于使用Pre -Aggregation(例如汇总)带来的查询优势。
重复适用于任何维度的临时查询。尽管它也无法使用预投影特征,但它不受聚合模型的限制,这可以发挥存款模型的优势。
在启动了Flink + Doris建造的真实时间仓库之后,报告接口的相应速度得到了显着提高。10亿元人民币的TP95聚合查询响应速度为0.79秒,TP99为5.03秒。到目前为止,整个数字仓库系统已经运行了8个月以上。
欢迎更多的开源技术爱好者加入Apache Doris社区,以增加手并建立社区生态。
SelectDB是一家开源技术公司。它致力于为Apache Doris社区提供全日制工程师,产品经理和支持工程师的团队,以繁荣发展开源社区的生态,并为真实的时间分析数据库创建国际行业标准。Yunyuan Real的新一代-Time Warehouse SelectDB基于Apache Doris开发,该仓库在许多云上运行,为用户和客户提供开箱即用的能力。
相关链接:
SelectDB官方网站:
https://selectdb.com(我们即将到来)
Apache Doris官方网站:
http://doris.apache.org
Apache Doris Github:
https://github.com/apache/doris
Apache Doris开发人员电子邮件组:
dev@doris.apache.org
原始:https://juejin.cn/post/7112730588729049102