火山引擎Dataleap治理实践:如何降低数仓建设成本

这篇具有很好参考价值的文章主要介绍了火山引擎Dataleap治理实践:如何降低数仓建设成本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

存储与计算资源是数仓建设的基础,也是数仓建设中的重要成本支出。而随着数仓建设规模逐渐扩大、时间跨度逐渐拉长,将不可避免的出现数据表、任务、字段的冗余。为了减轻资源负担,降低数仓维护成本,需要对数仓建设成本进行治理与优化。

技术路线

针对数仓建设成本治理的粒度从大到小可以分为:数据表、数据任务、数据表字段。从粗到细的治理优化思路如下:

  1. 当发现低频使用的数据表时,下线对应数据表的同时也删除对应数据任务;
  2. 当数据任务资源浪费严重,针对任务进行对应的代码与资源优化;
  3. 当发现一张表中个别字段使用使用频率很低,停止相关字段的计算与存储。

根据以上的优化思路,首先要解决如何定位低频使用数据表、高资源浪费率任务、低频使用字段的问题,在此基础上,针对不同的场景通过不同的手段进行优化。
火山引擎Dataleap治理实践:如何降低数仓建设成本

技术方案

低频使用数据表优化方案
定位低频使用数据表
火山引擎Dataleap提供了Hive表的资源治理功能,包括Hive表的存储与访问次数等基本信息查询,用户可以根据该功能直接定位低频使用数据表并进行优化。
火山引擎Dataleap治理实践:如何降低数仓建设成本
但是以上的优化存在以下缺陷:

  1. 使用Hive表的直接查询次数无法准确衡量用户对于数据的实际使用次数:为了保障查询速度,数据一般会由Hive表导入到ClickHouse等查询速度较快的介质中,而不会直接查询Hive表。因此,一张Hive表的直接访问次数一般是由下游的日常数据任务产生,而不是真正的用户查询。
  2. 缺少了对数据表生产过程中计算资源的统计:数据表在生产的过程中,除了占用存储资源,计算资源是不可或缺的一部分:存在经过复杂计算过程后,产出很小数据量的数据表。因此,当希望对成本进行快速优化时需要瞄准高成本的数据表时,只着眼于数据表占用的存储资源是不够全面的。
  • Hive表成本分析看板
    为了解决以上两个问题,火山引擎Dataleap研发人员进行了Hive表成本分析看板的开发建设:
  1. 首先,对数据表进行血缘关系的梳理,从上(Hive表)至下(ClickHouse)建立数据表血缘关系树
  2. 进一步将所有叶子节点的访问次数累加到相应根节点上,作为该根节点的使用次数(直接访问+间接访问)
  3. 再统计数据表计算资源,关联数据表存储资源,获得该数据表的总生产成本
  4. 最后关联数据表的总生产成本与总使用次数,评价该数据表实际的ROI
    火山引擎Dataleap治理实践:如何降低数仓建设成本
    优化手段与思路
  5. 优化手段
    针对数据表的优化手段有:
    ① 下线数据表及对应任务
    在火山引擎Dataleap下线相关任务,并删除对应数据表。
    ② 缩减数据表TTL
    根据「表分区查询热度分布图」在火山引擎Dataleap修改对应数据表TTL对应数据表。

火山引擎Dataleap治理实践:如何降低数仓建设成本
③ 对历史数据进行温存配置
在火山引擎Dataleap配置历史数据温存天数。

  1. 优化思路
    基于「Hive表成本分析看板」,根据不同的使用成本与使用次数阈值(如数据表的生产成本1000元/月,使用次数100次/月)将看板分为四个象限,其中各个象限的数据表的含义及推荐的优化手段为:
    火山引擎Dataleap治理实践:如何降低数仓建设成本
    根据优化收益进行治理的顺序为:第二象限>第三象限>第一象限>第四象限。

低资源利用率任务优化方案
定位低资源利用率任务数据任务
计算资源分为CPU资源和内存资源,可以利用火山引擎Dataleap进行高浪费任务的定位与探查。
火山引擎Dataleap治理实践:如何降低数仓建设成本火山引擎Dataleap治理实践:如何降低数仓建设成本
「任务资源使用监控」

优化手段与思路

  • 对于新增任务
    基于大数据研发治理套件火山引擎DataLeap,在新建数据任务与数据表时,要求需求方提供数据的服务时限,设置数据任务的寿命。当寿命到期,会提醒相关负责人确认是否可下线当前数据任务。

火山引擎Dataleap治理实践:如何降低数仓建设成本
火山引擎Dataleap治理实践:如何降低数仓建设成本

  • 对于历史任务
    目前离线数据任务的主要计算引擎为Apache Spark。

低频使用字段优化方案

相比于数据表与任务,针对数据表中的低频使用的字段进行优化是一种更加细粒度的方式。
定位低频使用字段
在离线数仓建设中,原始日志一般会从消息队列中直接不加处理的存储到原始数据层,再通过明细数据层对原始日志进行字段清洗与解析。在实践中,火山引擎DataLeap研发人员发现处于明细数据层中的原始埋点明细表由于数据量巨大(单表PB量级):在某些数据库中,仅三张表格就占据了所在数据库75%的存储大小,个别数据表的字段平均存储大小约为150TB。因此,为了更加高效地完成数据表字段优化,研发人员从埋点明细表的埋点字段入手。
和Hive数据表类似,埋点字段也具有以下特点:

  1. 埋点字段一般也不会对外直接提供查询,而是以清洗后的维度和指标的形式对外使用
  2. 衡量一个埋点字段的ROI具有也两个方面:使用次数与生产成本(存储+计算成本)。
    因此,首先也需要构建埋点的血缘关系树来统计其使用次数,再以存储+计算资源消耗来衡量其生产成本,最终才能准确地评价埋点的价值。
    为了解决以上两个问题,研发人员进行了埋点成本分析看板的开发建设:
  3. 首先,以原始埋点明细表的埋点字段为根节点,从上(埋点明细Hive表)至下(服务层提供维度、指标查询的ClickHouse表)建立埋点字段的血缘关系树
  4. 进一步将所有叶子节点的维度、指标字段的访问次数累加到相应根节点埋点字段上,作为该根节点埋点字段的使用次数
  5. 再统计埋点明细数据表的计算资源与存储资源,获得该埋点字段的的平均生产成本
  6. 最后关联埋点字段的总生产成本与总使用次数,评价该埋点字段的实际的ROI

火山引擎Dataleap治理实践:如何降低数仓建设成本
优化手段与思路文章来源地址https://www.toymoban.com/news/detail-514322.html

  1. 优化手段
    ① 停止解析和存储埋点字段
    为了减少明细数据层字段的的计算与存储成本,可以直接对一些低频使用埋点停止解析与存储。
    但是低频字段并不等于不使用字段,即如果要下线低频使用字段,需要保证用户在偶尔使用时仍然可以获取。虽然使用频次不同,但是同一张表中的埋点字段不能分别设置不同的存储方式或者TTL,只能选择存储或者不存储。
    因此,对于低频使用埋点,结合用户的实际使用情况与开发维护成本,可以通过搭建采样链路、从原始数据层临时获取等方式满足偶尔的少量使用场景,从而可以减少明细数据层的字段解析与存储。
    ② 拆解埋点字段中常用的部分
    还有一些被高频使用的埋点常常以复杂的url、json的格式上报存储。而实际在下游的使用过程中只会解析获取部分属性提供服务。因此,基于准确的获取下游的使用方式,将大字段拆解为小字段,不解析存储不使用的部分。
  2. 优化思路
    配合「埋点成本分析看板」,根据不同的使用成本与使用次数阈值将看板分为四个象限,其中各个象限的数据表的含义及推荐的优化手段为:
    火山引擎Dataleap治理实践:如何降低数仓建设成本
    根据优化收益进行治理的顺序为:第二象限>第三象限>第一象限>第四象限。
    总结
    基于数据成本分析看板,结合以上技术方案,如果是累计下线20+张数据表及对应任务,优化10+高成本任务,停止200+数据埋点解析,结合数据表温存与TTL缩减,初步测算能节省数仓总成本的36%费用。
    在梳理了数据表、字段的血缘树的基础上,建立了Hive表成本分析看板、任务成本分析看板、埋点成本分析看板等看板,结合大数据研发治理套件火山引擎DataLeap对数仓建设过程中的数据表、数据任务、埋点字段的成本的进行了由粗到细的梳理与优化,提升了现有资源的承载能力,降低了建设成本。

到了这里,关于火山引擎Dataleap治理实践:如何降低数仓建设成本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 火山引擎 DataLeap 构建Data Catalog系统的实践(二):技术与产品概览

      元数据的接入 元数据接入支持T+1和近实时两种方式 上游系统:包括各类存储系统(比如Hive、 Clickhouse等)和业务系统(比如数据开发平台、数据质量平台等) 中间层: ETL Bridge:T+1方式运行,通常是从外部系统拉取最新元数据,与当前Catalog系统的元数据做对比,并更新差

    2024年02月15日
    浏览(34)
  • 数据剖析更灵活、更快捷,火山引擎 DataLeap 动态探查全面升级

    更多技术交流、求职机会,欢迎关注 字节跳动数据平台微信公众号,回复【1】进入官方交流群 近期,火山引擎 DataLeap 上线“动态探查”能力,为用户提供全局数据视角、完善的抽样策略,提高数据探查的灵活度以及响应速率。 传统的数据探查是基于库表的全量探查,由后

    2024年02月03日
    浏览(35)
  • 构建满足流批数据质量监控用火山引擎DataLeap

    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 面对今日头条、抖音等不同产品线的复杂数据质量场景,火山引擎 DataLeap 数据质量平台如何满足多样的需求?本文将介绍我们在弥合大数据场景下数据质量校验与计算消耗资源大、

    2024年02月05日
    浏览(39)
  • 开发调试更便捷!火山引擎 DataLeap 提供 Notebook 交互式开发体验

    更多技术交流、求职机会,欢迎关注 字节跳动数据平台微信公众号,回复【1】进入官方交流群 Notebook 是一种支持 REPL 模式的开发环境。 所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook 通常使得探索性的开发和

    2024年02月12日
    浏览(25)
  • 火山引擎 Iceberg 数据湖的应用与实践

    在云原生计算时代,云存储使得海量数据能以低成本进行存储,但是这也给如何访问、管理和使用这些云上的数据提出了挑战。而 Iceberg 作为一种云原生的表格式,可以很好地应对这些挑战。本文将介绍火山引擎在云原生计算产品上使用 Iceberg 的实践,和大家分享高效查询、

    2024年02月09日
    浏览(25)
  • 湖仓一体架构在火山引擎 LAS 的探索与实践

    动手点关注 干货不迷路 火山引擎湖仓一体分析服务 LAS(Lakehouse Analytics Service),是面向湖仓一体架构的 Serverless 数据处理分析服务,提供字节跳动最佳实践的一站式 EB 级海量数据存储计算和交互分析能力,兼容 Spark、Presto 生态,帮助企业轻松构建智能实时湖仓。 LAS 服务是

    2024年02月06日
    浏览(29)
  • 网易NDH基于Impala的高性能SQL引擎建设实践

    导读:本文将从四个方面来进行介绍。首先是分析在网易NDH中使用 Impala 过程遇到的一些痛点;第二个部分是基于这些痛点问题,我们提出了建设高性能SQL引擎的方案,以及这些方案是基于什么原则来创建的;第三个是基于这些原则,我们做了哪些的优化实践的尝试;最后会

    2024年02月09日
    浏览(33)
  • 数仓建模—数仓建设概论

    2024年02月06日
    浏览(32)
  • 数据仓库建设实践——如何通过数据仓库建设提升效率并确保数据质量

    作者:禅与计算机程序设计艺术 随着互联网经济的快速发展,全球消费者对汽车的需求越来越旺盛。在全球范围内,公共汽车运营商(PSA)正在竞争激烈,包括美国的Tesla、上海的东风、中国的福特等。全球公共汽车市场规模每年呈现爆炸性增长态势。其中,美国曾经的领先地

    2024年02月11日
    浏览(54)
  • 【数仓建设系列之五】数仓选型架构概览

    【数仓建设系列之五】实时数仓选型架构概览 离线数仓(Offline Data Warehouse)和实时数仓(Real-time Data Warehouse)是数仓领域两种常见的数据存储和处理架构,它们在数据处理的方式、目标和时间性上有所不同,本文将重点介绍目前主流实时数仓架构设计。 一、离线和实时数仓

    2024年02月08日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包