1 data reliablility for data lakes

企业数据湖面临数据脏乱、实时分析与历史数据挖掘冲突等问题。本文介绍通过Lambda架构、数据验证、重处理及事务支持等手段提高数据湖可靠性,确保数据一致性与质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

data reliablility for data lakes

现状

  • 企业拥有大量各种各样的数据:客户数据,视频数据,点击流,邮件,传感器数据等等 --- 企业的数据湖(data lake)
  • 在数据湖中的数据太脏,无法直接用来做数据分析

案例

  • 数据存在kafka中,需要同时实现两个目标,一个是实时分析,一个是数据挖掘报表
  • 实时分析可以通过spark 实现
  • 但是kafka只能存一周左右数据,不适合做历史数据分析如数据挖掘
  • 实现步骤
    • 第一步 -- 采用lambda架构:数据流(kafka) , batch layer (data lake) , speed layer(spark streaming), server layer
    • 第二步 -- validation ,数据清洗过滤验证
    • 第三步 -- reprocessing , 失败可重复执行
    • 第四步 -- 更新与合并 ,

data lakes 在数据可靠性上的挑战

  • 任务执行失败,导致数据在错误的状态,需要全部回滚
  • 缺乏执行质量,容易创建不一致和无用的数据
  • 缺少事务,无法混合添加和读取,批处理 -- TODO

解决方案

  • 数据源(kafka,kinesis,spark) ---> raw ingestion --> filtered,cleaned,augmented -->bussiness-level aggregates-->两种处理(实时的流分析,离线的AI和报告)
    • 原始数据-->清洗过滤-->业务聚合 所有步骤实现ACID事务
    • 原始数据基本很少处理,与原始一致
    • 支持年级别的数据存储
    • 当商业逻辑发送变化时,容易重新计算

dalta lake中的table = 一组结果行为集合

  • 更新元数据 -- 名称,schema, 分区等
  • 添加文件
  • 删除文件
  • 设置事务 -- 记录一组独立的事务id
  • 修改协议 -- 升级版本
  • 结果产物:
    • 元数据,一组文件,一组事务id,版本号

日志文件结构 000000.json

  • 所有表的变化(添加,修改,删除)都被有序的,原子的保存,称为commits

总结

  • 强调使用管道处理,直接使用数据源,可以适应业务变化,调整部分或全部处理步骤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值