写点什么

如何实现数据流畅转换?火山引擎 ByteHouse 推出 ELT 能力

  • 2023-09-11
    北京
  • 本文字数:1150 字

    阅读完需:约 4 分钟

如何实现数据流畅转换?火山引擎ByteHouse推出ELT能力

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群


在数据分析场景中,企业使用的数据通常具备来源多样化的特点,如支付交易记录、用户行为等,且数据格式各异,有的为行式存储结构,有的为列式存储结构。这就要求企业数仓具备一定的数据转换能力。

传统方式是采用 Extract-Transform-Load (ETL)来将业务数据转换为适合数仓的数据模型,然而,这依赖于独立于数仓外的 ETL 系统,导致维护成本较高。但随着云计算时代的到来,云数据仓库具备更强扩展性和计算能力,也要求改变传统的 ELT 流程。

火山引擎 ByteHouse 是一款基于开源 ClickHouse 推出的云原生数据仓库,为用户提供极速分析体验,能够支撑实时数据分析和海量数据离线分析,同时还具备便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性。凭借其强大的计算能力,火山引擎 ByteHouse 目前已全面支持 Extract-Load-Transform (ELT)的能力,让用户免于维护多套异构系统,产品易用性实现飞跃。

通过 ByteHouse 的 ELT 能力,用户只需将数据导入,用自定义 SQL 语句在 ByteHouse 内部进行数据转换,无需依赖独立的 ETL 系统及资源。具体来说,ByteHouse 主要通过以下三个能力实现 ELT 能力:

首先,长任务管理。ByteHouse 的查询时间为秒级,一旦查询中出故障,系统会直接返回错误并重试。在 ETL 场景下,如果一个任务已经执行 50 分钟才发生故障,重试意味着浪费了前 50 分钟的资源,影响任务推进。在 ByteHouse 中,SQL 查询会被转化为一系列的算子,研发团队则通过提升算子的容错能力,来应对长时间查询下的系统故障问题,即当某个算子无法获得足够的内存时,系统允许该算子将一部分数据缓存在磁盘上,保证在资源紧张的情况下仍能够完成工作。

其次,异步提交能力。面对大量长耗时的 ETL 任务时,传统的同步执行方式需要客户端等待服务端返回,容易出现超时问题,影响后续任务执行,而 ByteHouse 提供的异步提交能力,通过客户端的间歇性轮训来获得用户任务的最终状态,由此保障任务在规定时间内完成。

最后,查询队列。当面临大量离线加工请求时,系统会出现超载。ByteHouse 为此提供了查询队列能力,允许用户从队列大小、总 CPU 占用率、总内存占用率三个维度定义一个队列。

具体来说,当用户向某队列提交查询时,ByteHouse 可以通过组件监听各个队列中的查询指标,如果队列未达到上限,则会将查询入队,否则拒绝。除此之外,ByteHouse 还会检查队列的资源利用率,当空闲资源高过某阈值时,自动将等待中的查询出队。利用查询队列,用户在编排 ETL 任务时无需担心底层资源过载,让开发更加便捷。

长任务管理、异步提交和查询队列是火山引擎 ByteHouse ELT 的核心能力。未来,ByteHouse 也会进一步迭代,支持转换函数、长任务容错、优先级队列等更丰富 ELT 功能,为用户提供更极致、更便捷的使用体验。


点击跳转火山引擎ByteHouse了解更多

发布于: 刚刚阅读数: 4
用户头像

小助手微信号:Bytedance-data 2021-12-29 加入

字节跳动数据平台团队,赋能字节跳动各业务线,对内支持字节绝大多数业务线,对外发布了火山引擎品牌下的数据智能产品,服务行业企业客户。关注微信公众号:字节跳动数据平台(ID:byte-dataplatform)了解更多

评论

发布
暂无评论
如何实现数据流畅转换?火山引擎ByteHouse推出ELT能力_数据库_字节跳动数据平台_InfoQ写作社区