写点什么

完整的数仓能力,ByConity 1.0 版本发布!

  • 2024-09-06
    北京
  • 本文字数:1864 字

    阅读完需:约 6 分钟

完整的数仓能力,ByConity 1.0 版本发布!

2024 年 8 月,ByConity 1.0 正式发布,翻开了 ByConity 新的一页。1.0 版本有哪些不同,以及 1.x 版本会重点迭代哪些能力,下面为大家一一解读。

完整的数据仓库能力 


从 ByConity 开源之初,我们一直将产品定位为开源云原生数据仓库。区别于传统 OLAP 产品,ByConity 采用存算分离的云原生架构,通过这种架构获得了弹性和降低资源浪费的优势,但与此同时也在一定程度上提高了产品的复杂度。定位为云原生数据仓库,是希望能够承担更多类型、更复杂的分析任务负载,无论是在线的实时分析还是离线数据的清洗/加工任务都能够胜任。更全面的能力能够帮助用户降低数据分析平台的整体复杂度。


传统的 OLAP 产品通过数据索引、列式存储、向量化执行等技术,注重对实时分析或者 Ad-hoc 分析的快速反应,满足低时延的要求。在数据加载进 OLAP 产品之前,往往需要经过复杂的数据清洗和转换过程,也就是大家熟知的 ETL 任务。在传统的数据分析架构中,这部分工作是由 Hive、Spark、Flink 等产品来完成的。


在 ByConity 1.x 版本中,增加了对 BSP 模式的支持,减少数据加工和数据分析之间多系统耦合带来的运维负担,使 ByConity 能够一站式完成数据接入、加工和分析。



1.0 版本中,在 BSP 模式下(settings bsp_mode = 1 打开 bsp 模式)增加了对 TableScan 算子并行度扩展的支持:一、通过设置 distributed_max_parallel_size,可以将 TableScan 的并行度进行扩展,实现资源平铺的功能,在资源有限的情况下实现对大表的处理;二、增加了对 task 重试的支持:通过设置 bsp_max_retry_num(task 的最大重试次数,默认值为 5),可以在作业的中间 task 发生失败时,从失败的 task 开始重试,而不是从头开始重试,进而大大减少 failover 对执行时长的影响。


后续的 1.x 版本中,我们还将推出基于资源感知的 BSP 模式,可以根据集群资源使用情况有序调度并发 ELT 任务,从而减少资源的挤占,避免频繁失败。


湖仓一体  


在 ByConity 1.0 版本中的一个重要能力升级就是提升了湖仓一体的能力。ByConity 可以直接分析数据湖中的数据,而无需做数据搬迁,从而让用户可以更灵活的规划其数据分析架构。


Hive 外表查询性能在 1.0 版本中得到了非常大的提升。这主要得益于以下几点:


1、实现了外表的 Native Reader(Parquet/Orc),Native Reader 具有以下特点:


2、增加中间结果缓存。


3、结合 ByConity 查询优化器的统计信息自动收集,将 Filter 的有效下推,降低 IO 开销(1.x 版本)。

通过以上能力大大提升了 Hive 外表的查询性能,在 TPC-DS 测试中性能达到 Trino 的 4 倍。


除 Hive 外表外,在 1.0 版本中我们还支持了 Hudi 和 GLUE 的外表查询能力。在后续的 1.x 版本中,我们还将支持 Iceberg 和 Paimon 的外表能力。

MySQL 语义兼容    


在 ByConity 0.x 版本中,主要支持 SQL 标准是 ClickHouse SQL 和 Ansi SQL。除 ClickHouse 生态外,MySQL 同样是当前主流的 OLAP 产品生态。过去一年中很多用户反馈从 MySQL 生态产品迁移到 ByConity 过程中有比较复杂的业务改写,以及部分工具不兼容。


在 1.0 版本中,ByConity 已经完成了 90% 以上的语法、函数、数据类型、DQL、DML、DDL 的兼容。此外,如 MySQL Workbench、DBeaver、Navicat 等 IDE 工具,Tableau、QuickBI、FineBI 等主流 BI 工具的兼容性也在当前版本中完成。


在 1.x 版本中,我们希望和社区的贡献者们一起,在存储介质、数据导入、IDE、BI、数据治理工具等方面全面提升 ByConity 广泛的生态工具兼容性。

其他特性   


1、默认开启优化器,支持开优化器简单查询走 local 模式,优化了开启优化器后简单查询性能下降的问题。

2、优化 Unique 表的 TableWrite 重试能力,提升 Unique 表可用性。

3、新增 bucket join 相关的能力。

4、提升 map 函数性能。

5、优化 disk cache 加载策略,支持按比例配置。

6、string 数据类型转化为 map,支持 nullable string。

7、支持导出数据导文件目录,支持 Worker 导出数据。

8、支持表级别的快照能力。

9、(Preview)增强高并发点查性能。

展望   


未来,我们还将持续为提升分析性能打造全面的数仓能力而努力。除此之外,我们还将向一体化分析引擎的方向进行探索,继续打磨倒排索引的能力,以及向向量检索和时空分析等场景进行探索。


ByConity 1.0 完整 Changelog:

https://github.com/ByConity/ByConity/releases/tag/1.0.0


关于 ByConity 

ByConity 是字节跳动开源的云原生数据仓库,在满足数仓用户对资源弹性扩缩容,读写分离,资源隔离,数据强一致性等多种需求的同时,提供优异的查询,写入性能。

GitHub https://github.com/ByConity/ByConity

2024-09-06 18:4414490

评论

发布
暂无评论
发现更多内容

甲方日常 40

句子

工作 随笔杂谈 日常

通过GUI界面更改 Ubuntu 20 LTS apt 源为阿里云

jiangling500

ubuntu 阿里云 apt

快速掌握并发编程---线程池的原理和实战

田维常

程序员

码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

小傅哥

小傅哥 虚拟机 synchronized mark-word Klass Pointer

狼人杀背后的秘密,实时语音你不知道的那些事

anyRTC开发者

音视频 WebRTC 语音 RTC 安卓

为产业AI去障:联想的边缘突破

脑极体

gRPC服务注册发现及负载均衡的实现方案与源码解析

网管

负载均衡 gRPC etcd 服务注册与发现 Go 语言

Vidyo独特的互联网适应性

dwqcmo

音视频 集成架构 解决方案 智能硬件

小白学算法:买卖股票的最佳时机!

王磊

Java 算法

面试官:面对千万级、亿级流量怎么处理?

艾小仙

Java 缓存 分布式 高并发 中间件

Netty源码解析 -- 零拷贝机制与ByteBuf

binecy

Netty 源码剖析

《Maven实战》.pdf

田维常

程序员

第6周学习总结

饭桶

企业级RPC框架zRPC

万俊峰Kevin

RPC microser Go 语言

ConcurrentHashMap核心原理,彻底给整明白了

AI乔治

Java 架构 分布式 线程

极客大学 - 架构师训练营 第六周作业

9527

天呐!价值2980元Java成神面试题竟在Github开源了

996小迁

Java 学习 架构 面试

web worker的介绍和使用

程序那些事

多线程 Web Worker 异步模型 异步编程 web技术

第6周作业

饭桶

数字“异化”生存

脑极体

在阿里内部,做Java到金字塔顶端的人平时都如何学习源码?

小Q

Java 学习 架构 面试 程序猿

真香!天天996进不去阿里?看5年苦逼程序猿怎么逆袭阿里P7

小Q

Java 学习 架构 面试 程序猿

频繁操作本地缓存导致YGC耗时过长

AI乔治

Java 架构 JVM GC

当 TiDB 与 Flink 相结合:高效、易用的实时数仓

Apache Flink

flink #TiDB

架构师训练营第二周课后作业

天涯若海

极客大学架构师训练营

零基础IM开发入门(三):什么是IM系统的可靠性?

JackJiang

网络编程 即时通讯 IM

分析和解决JAVA 内存泄露的实战例子

AI乔治

Java 架构 JVM 内存泄露

极客大学 - 架构师训练营 第六周

9527

直播带货大战在即:账号交易灰产猖獗

石头IT视角

阿里内部首发1000页涨薪面试宝典:Spring+SpringMVC+MyBatis框架整合开发实战

Java架构追梦

Java 源码 架构 面试 SSM框架

Flink在窗口上应用函数-6-9

小知识点

scala 大数据 flink

完整的数仓能力,ByConity 1.0 版本发布!_数据湖仓_ByConity开源团队_InfoQ精选文章