Databend v0.8 新版本上線!
Hello,大家好,我是漩渦,現(xiàn)在由我代表 Databend 社區(qū)宣布 v0.8 版本的正式發(fā)布。
Databend v0.8 的開發(fā)于 3 月 28 號(hào)開始,總計(jì) 5000+ commits,4600+ 文件變更。在過去的 5 個(gè)月中,社區(qū)的 120 余位貢獻(xiàn)者新增了 42 W 行代碼,刪除了 16 W 行,相當(dāng)于把 Databend 重寫了一遍。在該版本中,社區(qū)對(duì) SQL Planner 框架做出了重大改進(jìn),并將所有的 SQL 語(yǔ)句都遷移到了新的 Planner 上,提供了完整的 JOIN 和子查詢支持。
現(xiàn)在就下載最新版本
https://github.com/datafuselabs/databend/releases/tag/v0.8.0-nightly
接下來就讓我們看看 v0.8 都做了什么吧~
Databend 是什么?
Databend 是一個(gè)基于 Rust 開發(fā)的現(xiàn)代化云數(shù)據(jù)倉(cāng)庫(kù),致力于實(shí)現(xiàn)高性能可彈性擴(kuò)展的實(shí)時(shí)數(shù)據(jù)分析,激活用戶的數(shù)據(jù)潛能。

重大改進(jìn)
New Planner: JOIN! JOIN! JOIN!
為了更好的支持復(fù)雜的 SQL 查詢和提升用戶體驗(yàn),Databend v0.8 設(shè)計(jì)了全新的 Planner 框架。

在 New Planner 的驅(qū)動(dòng)下,Databend 增加了 JOIN 和高效的子查詢支持,所有的子查詢?cè)谶M(jìn)入 runtime 之前已經(jīng)完全被 decorrelation:

New Parser: 最好用的 Parser!
在重構(gòu) Planner 的同時(shí),Databend 社區(qū)基于?nom(https://github.com/Geal/nom)和 partt 實(shí)現(xiàn)了兼顧開發(fā)效率與用戶體驗(yàn)的全新 Parser。
新的 Parser 讓開發(fā)者以直觀的方式輕松的設(shè)計(jì)/開發(fā)/測(cè)試復(fù)雜的 SQL 語(yǔ)法

同時(shí)能給予用戶具體而精準(zhǔn)的報(bào)錯(cuò)信息:

再也不用擔(dān)心不知道 SQL 哪里出錯(cuò)了。
訪問?The New Databend SQL Planner(https://databend.rs/blog/new-planner)?以了解更多細(xì)節(jié)
全新特性
除了全新設(shè)計(jì)的 Planner 之外,Databend 社區(qū)還實(shí)現(xiàn)了眾多新功能:
COPY 增強(qiáng):
COPY 能力得到了極大強(qiáng)化,現(xiàn)在的 Databend 可以
從任意支持的存儲(chǔ)服務(wù)復(fù)制數(shù)據(jù) (甚至是 https!)

支持復(fù)制壓縮文件

UNLOAD 數(shù)據(jù)到任意支持的存儲(chǔ)服務(wù)

Hive 支持:
Databend v0.8 設(shè)計(jì)并開發(fā)了 Multi Catalog 并在此基礎(chǔ)上實(shí)現(xiàn)了 Hive Metastore 的支持!現(xiàn)在 Databend 能夠直接對(duì)接 Hive 并從 HDFS 上讀取數(shù)據(jù)。

時(shí)間旅行:
很久之前,Databend 社區(qū)分享過底層 FUSE Engine 的實(shí)現(xiàn)?From Git to Fuse Engine(https://databend.rs/blog/databend-engine)。其中一個(gè)非常重要的特性就是支持時(shí)間旅行,我們能夠查詢?nèi)魏我粋€(gè)時(shí)間點(diǎn)的數(shù)據(jù)表。
從 v0.8 版本開始,這個(gè)功能被正式實(shí)裝啦,現(xiàn)在我們可以
查詢指定時(shí)間的數(shù)據(jù)表

恢復(fù)誤刪除的數(shù)據(jù)表

讓業(yè)務(wù)數(shù)據(jù)擁有更多保障!
CTE 支持:
CTE (Common Table Expression) 是 OLAP 業(yè)務(wù)中經(jīng)常使用的功能,用來單個(gè)語(yǔ)句的執(zhí)行范圍內(nèi)定義的臨時(shí)結(jié)果集,只在查詢期間有效,實(shí)現(xiàn)代碼段的重復(fù)使用,提升可讀性,更好的實(shí)現(xiàn)復(fù)雜的查詢。Databend v0.8 在 New Planner 的基礎(chǔ)上重新實(shí)現(xiàn)了 CTE,現(xiàn)在用戶可以快樂的使用 WITH 來聲明 CTE:

除了上述提到的這些功能,Databend v0.8 還支持了 UDFs,增加了 DELETE 語(yǔ)句,進(jìn)一步強(qiáng)化了半結(jié)構(gòu)化數(shù)據(jù)類型的支持,更不必說大量的 SQL 語(yǔ)句改進(jìn)和新方法的加入。感謝 Databend 社區(qū)的所有貢獻(xiàn)者,沒有你們就沒有這里提到的所有新特性的誕生!質(zhì)量提升
質(zhì)量提升
功能實(shí)現(xiàn)只不過是產(chǎn)品交付的第一環(huán)。在 Databend v0.8,社區(qū)引入了工程質(zhì)量的概念,從用戶,貢獻(xiàn)者,社區(qū)三個(gè)維度來評(píng)估 Databend 的開發(fā)質(zhì)量。
讓用戶放心:
為了讓用戶能夠放心地使用 Databend,社區(qū)在過去的三個(gè)月中增加了大量測(cè)試,擷取了來自 YDB 等充實(shí) stateless 測(cè)試集,增加了 ontime,hits 等數(shù)據(jù)集的 stateful 測(cè)試,上線了 SQL Logic Test 對(duì)所有的接口進(jìn)行覆蓋測(cè)試,啟用了 SQL Fuzz 測(cè)試來覆蓋邊界情況。
不僅如此,社區(qū)還上線了?Databend Perf(https://perf.databend.rs/)做 Databend 在生產(chǎn)環(huán)境的持續(xù)性能測(cè)試,用來及時(shí)發(fā)現(xiàn)意外的性能回退問題。
讓貢獻(xiàn)者舒心:
Databend 是一個(gè)大型的 Rust 項(xiàng)目,其構(gòu)建時(shí)間飽受社區(qū)詬病。
為了改進(jìn)這一問題,讓貢獻(xiàn)者舒心,社區(qū)上線了高配置,專門調(diào)優(yōu)的 Self-hosted Runner 來執(zhí)行 PR 的集成測(cè)試,啟用了 Mergify,mold,dev-tools 等多項(xiàng)服務(wù)或工具來優(yōu)化 CI 流程。
同時(shí)還發(fā)起了 Databend 項(xiàng)目結(jié)構(gòu)調(diào)整的新規(guī)劃,將原本巨大的 query crate 拆分為多個(gè)子 crate,盡可能避免改一行代碼,check 執(zhí)行五分鐘的情形。
讓社區(qū)開心:
Databend 是開源社區(qū)的貢獻(xiàn)者和參與者。在 v0.8 的開發(fā)過程中,Databend 社區(qū)確立了 Upstream First 的原則,積極跟進(jìn)并采用最新的上游版本,反饋已知 BUG,貢獻(xiàn)自己的 Patch,開啟了?Tracking issues of upstream first violation(https://github.com/datafuselabs/databend/issues/6926)來跟進(jìn)最新的動(dòng)態(tài)。
Databend 社區(qū)積極探索與其他開源項(xiàng)目的集成,目前已經(jīng)實(shí)現(xiàn)了 Vector,sqlalchemy,clickhouse-driver 等第三方驅(qū)動(dòng)的集成和支持。
下一步計(jì)劃
Databend v0.8 是一個(gè)夯實(shí)基礎(chǔ)的版本,我們有了全新的 Planner,能夠更加輕松的去實(shí)現(xiàn)功能和進(jìn)行優(yōu)化。在 0.9 版本中,我們期望改進(jìn)如下方面:
Query Result Cache
JSON Optimization
Table Share
Processor Profiling
Resource Quota
Data Caching
歡迎查閱?Release proposal: Nightly v0.9(https://github.com/datafuselabs/databend/issues/7052)以了解最新動(dòng)態(tài)~
現(xiàn)在就出發(fā)
訪問發(fā)布日志和下載最新版本以了解更多,遇到問題歡迎使用?Github Issues(https://github.com/datafuselabs/databend/issues)提交反饋!
關(guān)于 Databend
Databend 是一款開源、彈性、低成本,基于對(duì)象存儲(chǔ)也可以做實(shí)時(shí)分析的新式數(shù)倉(cāng)。期待您的關(guān)注,一起探索云原生數(shù)倉(cāng)解決方案,打造新一代開源 Data Cloud。
Databend 文檔:https://databend.rs/
Twitter:https://twitter.com/Datafuse_Labs
Slack:https://datafusecloud.slack.com/
Wechat:Databend
GitHub :https://github.com/datafuselabs/databend
