如何实现数据流畅转换?火山引擎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了解更多

相关推荐
DB!!!1 分钟前
自学Kubernestes(k8s)Day1 -- 核心基础概念
云原生·容器·kubernetes
2301_8223636032 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
小义_39 分钟前
【RH134知识点问答题】第6章 管理 SELinux 安全性
linux·网络·云原生·rhel
Leo.yuan43 分钟前
经营分析会,该讲些什么?
大数据·数据库·数据分析
云飞扬1 小时前
浅谈数据访问层
数据库·bpm·数据库访问层
Amarantine、沐风倩✨2 小时前
一次线上性能事故的处理复盘:从 SQL 到扩容的工程化思路
java·数据库·sql·oracle
电商API&Tina2 小时前
乐天平台 (Rakuten) 数据采集指南
大数据·开发语言·数据库·oracle·json
l1t2 小时前
用SQL执行累计值汇总的几种方法
数据库·sql·postgresql·duckdb
踢足球09292 小时前
寒假打卡:2026-2-3
数据库
每次学一点2 小时前
【ZeroTier自研之路】planet的组成
服务器·网络·数据库