"); //-->
以下文章来源于DataFunTalk ,作者孙超
目前小红书对数据湖技术的探索主要分为三个方向,第一个方向是在小红书云原生架构下,对于大规模日志实时入湖的实践,第二个方向是业务数据的CDC实时入湖实践,第三个方向是对实时数据湖分析的探索。
01 日志数据入湖
1. 小红书数据平台架构
在进入主题之前先介绍一下小红书数据平台的基本架构。
总体来说,小红书数据平台与其他互联网公司大同小异,主要不同在于小红书的基础架构是“长”在多朵公有云之上的。在数据采集层,日志和RDBMS的数据源来自不同的公有云;在数据存储加工层,绝大多数数据会存储于AWS S3对象存储;同时,数仓体系也是围绕着S3来建设的,实时ETL链路基于Kafka、Flink,离线分析链路基于AWS EMR上的Spark、Hive、Presto等;在数据共享层,诸如Clickhouse、StarRocks、TiDB等OLAP引擎,为上层报表提供一些近实时的查询。以上就是小红书数据平台整体的架构组成。
2. APM日志数据入湖
接下来我们用APM(Application Performance Monitor)的例子来介绍Iceberg如何在当前架构体系下运转。
(1)使用Iceberg之前的APM链路
APM主要记录小红书APP前端和客户端性能相关的埋点日志,可以达到百万每秒的RPS。以前的离线链路是先将埋点数据发送到阿里云的Kafka,通过Flink作业落到阿里云的OSS对象存储,然后通过Distcp搬到AWS S3上,之后通过Add Partition落地到Hive表里,接下来下游的EMR集群会对落地的数据做一些离线的ETL作业调度和Adhoc的查询。整条链路中,数仓同学的痛点是Flink ETL作业上数据需要按业务分区动态写入,但是各点位分区之间的流量非常不均匀。这就涉及到动态写分区时候是否要加Keyby,如果加Keyby就会发生数据倾斜,不加Keyby每个写算子的Subtask都会为每个分区创建一个Writer,而分区Writer又至少创建一个文件,同时 Flink Checkpoint 又会放大这个写放大,最终导致小文件数爆炸。
小文件数多后会导致以下几个后果:
hive_prod.Iceberg_test.table
编辑:王菁
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
vxwokrs下静态图像压缩算法(上)
采用Mean-Shift和Camshift算法相结合的火焰视频图像跟踪设计
如何在低算力MCU平台上优雅的计算均值和方差
自动驾驶:新算法公平分配风险
无人机飞控的PID算法
目标跟踪算法在红外热成像跟踪技术上的应用
数字PID控制算法之一
计算机科学与技术反思录(2)
PID算法
求FSK信号的解调算法,主要是铁路上的移频信号!
[转帖]us/os就绪表的维护算法分析
代码示例|一文读懂压缩算法
利用元学习保持无人机飞行控制系统在正确的轨道上
数字PID控制及其改进算法的应用
抖音背后的算法推荐逻辑
嵌入式开发者都该了解的十大算法
基于LPC2138的血压测量算法开发平台电路图
面向算法硬件加速的FPGA实现方法
加密算法之MD5算法
简单实用的单片机CRC 快速算法
无线传感器网络低功耗分簇路由算法设计
基于算法的工程助手:AI重塑零件采购
CRC算法原理及C语言实现
SHIPT算法挤压了外包工人 如何对雇主进行审计
有关指纹算法