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

相关推荐
tatasix34 分钟前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。1 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了1 小时前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度1 小时前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
gma9992 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️2 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
苏-言3 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring