<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Databend v1.0 Release 正式發布

jf_wN0SrCdH ? 來源:Rust語言中文社區 ? 2023-03-07 09:48 ? 次閱讀

尊敬的 Databenders,在 Databend Labs 成立兩周年之際,我們非常高興地宣布 Databend v1.0 正式發布。Databend 社區一直在致力于解決大數據分析的成本和復雜度問題,并正在被頂級場景和頂級需求所推動。根據可統計信息,每天約 700TB 數據在使用 Databend 寫入到云對象存儲并進行分析,用戶來自歐洲、北美、東南亞、非洲、中國等地,每月為他們節省數百萬美元成本。Databend v1.0 是一個具有里程碑意義的版本,我們相信它將進一步加速云端海量數據分析的發展。

今天,我將首先介紹 Databend v1.0 相比 v0.9 版本所做的改進,然后探討我們團隊的愿景和未來展望?,F在就讓我們開始吧!

v1.0改進

Databend 在版本 v1.0 中實現了驚人的性能提升,在 ClickBench[1]測試中獲得:數據加載第一名,在查詢環節, c6a.4xlarge第一名, c5a.4xlarge 第二名,c6a.metal第三名。

94f2baee-bc7d-11ed-bfe3-dac502259ad0.png

此外,Databend 社區還在版本 v1.0 中推出了多項新功能:

1

UPDATE

現在,用戶可以使用 UPDATE 語句來更新 Databend 中的數據。

更新語句的格式如下:

--Updateabook(Id:103)
UPDATEbookstoreSETbook_name='Thelonganswer(2nd)'WHEREbook_id=103;

通過支持 UPDATE 功能,Databend 實現了對 CRUD 操作的完整支持。

2

ALTER TABLE

在 v1.0 中,用戶可以使用 ALTER TABLE 來修改 Databend 中的表結構:

--Addacolumn
ALTERTABLEtADDCOLUMNcIntDEFAULT10;

3

DECIMAL

在完成了 Databend 類型系統的大型重構之后,社區在一個堅實的基礎上實現了 DECIMAL 數據類型的支持!

--Createatablewithdecimaldatatype.
createtabletb_decimal(c1decimal(36,18));

--Inserttwovalues.
insertintotb_decimalvalues(0.152587668674722117),(0.017820781941443176);

select*fromtb_decimal;
+----------------------+
|c1|
+----------------------+
|0.152587668674722117|
|0.017820781941443176|
+----------------------+

4

Native Format

在 v0.9 版本中引入的 Native Formatstrawboat[2]得到了進一步的完善!社區為 strawboat 增加了半結構化數據的支持,并引入了多項性能優化,幫助 Databend 在 HITS 數據集的性能取得了巨大提升。

5

CBO

引入了直方圖框架,可以利用統計信息更為精確地進行代價估算。進一步完善和強化 join reorder 算法,從而大大的提高多表 join 的性能,幫助 Databend 在 TPCH 數據集上的性能取得顯著提升。

6

SELECT FROM STAGE

STAGE 是 Databend 數據流轉的核心。我們之前已經支持從 STAGE 中加載數據和向 STAGE 中導出數據,現在我們更進一步,支持了直接在 STAGE 中進行數據查詢!

用戶只需要為 Databend 創建一個包含數據文件的 STAGE,就可以輕松進行數據查詢,無需編寫復雜的建表語句或繁瑣的數據導入流程。

selectmin(number),max(number)
from@lake(pattern=>'.*parquet');

+-------------+-------------+
|min(number)|max(number)|
+-------------+-------------+
|0|9|
+-------------+-------------+

	

如果用戶只需要進行一次性的查詢,還可以直接使用更簡短的 URI 形式:

selectcount(*),author
from'https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet'
(file_format=>'parquet')
groupbyauthor;

+----------+---------------------+
|count(*)|author|
+----------+---------------------+
|1|JimGray|
|1|MichaelStonebraker|
+----------+---------------------+

7

Query Result Cache

在 v1.0 版本中,Databend 社區借鑒了 ClickHouse 社區的設計,并增加了 Query Result Cache 功能。當底層數據沒有發生變化時,執行相同的查詢會命中緩存,避免了重復執行查詢的過程。

MySQL[(none)]>SELECTWatchID,ClientIP,COUNT(*)ASc,SUM(IsRefresh),AVG(ResolutionWidth)FROMhitsGROUPBYWatchID,ClientIPORDERBYcDESCLIMIT10;
+---------------------+-------------+------+----------------+----------------------+
|watchid|clientip|c|sum(isrefresh)|avg(resolutionwidth)|
+---------------------+-------------+------+----------------+----------------------+
|6655575552203051303|1611957945|2|0|1638.0|
|8566928176839891583|-1402644643|2|0|1368.0|
|7904046282518428963|1509330109|2|0|1368.0|
|7224410078130478461|-776509581|2|0|1368.0|
|5957995970499767542|1311505962|1|0|1368.0|
|5295730445754781367|1398621605|1|0|1917.0|
|8635802783983293129|900266514|1|1|1638.0|
|5650467702003458413|1358200733|1|0|1368.0|
|6470882100682188891|-1911689457|1|0|1996.0|
|6475474889432602205|1501294204|1|0|1368.0|
+---------------------+-------------+------+----------------+----------------------+
10rowsinset(3.255sec)

MySQL[(none)]>SELECTWatchID,ClientIP,COUNT(*)ASc,SUM(IsRefresh),AVG(ResolutionWidth)FROMhitsGROUPBYWatchID,ClientIPORDERBYcDESCLIMIT10;
+---------------------+-------------+------+----------------+----------------------+
|watchid|clientip|c|sum(isrefresh)|avg(resolutionwidth)|
+---------------------+-------------+------+----------------+----------------------+
|6655575552203051303|1611957945|2|0|1638.0|
|8566928176839891583|-1402644643|2|0|1368.0|
|7904046282518428963|1509330109|2|0|1368.0|
|7224410078130478461|-776509581|2|0|1368.0|
|5957995970499767542|1311505962|1|0|1368.0|
|5295730445754781367|1398621605|1|0|1917.0|
|8635802783983293129|900266514|1|1|1638.0|
|5650467702003458413|1358200733|1|0|1368.0|
|6470882100682188891|-1911689457|1|0|1996.0|
|6475474889432602205|1501294204|1|0|1368.0|
+---------------------+-------------+------+----------------+----------------------+
10rowsinset(0.066sec)

8

Table Data Cache

緩存是存算分離架構中的重要組成部分。在 v1.0 版本中,Databend 社區為我們帶來了 Table Data Cache!當 Databend 執行查詢時,會根據訪問數據的熱度情況決定是否將該數據塊保存到緩存中,以加速下一次訪問。

95093d32-bc7d-11ed-bfe3-dac502259ad0.png

Aggregate Spill

在 v1.0 版本中, Databend 引入了 Aggregate spill, 當在 Databend 中執行聚合查詢時, 會根據 Databend 當前的內存使用情況動態,決定將內存中的聚合數據臨時保存并持久化到對象存儲中, 防止查詢過程中使用過高的內存。

未來展望

經過這些版本的打磨,Databend 終于有了一個雛形?,F在,讓我們重新認識一下 Databend:

Part.

1

一個使用 Rust 開發的云原生數據倉庫:存算分離,面向對象存儲設計,極致彈性

Part.

2

支持完整的 CRUD 特性,提供了 MySQL/Clickhouse/HTTP RESTful 等協議支持

Part.

3

提供原生的 ARRAY、MAP、JSON 等復雜類型和 DECIMAL 高精度類型支持

Part.

4

構建了類似于 Git 的 MVCC 列式存儲引擎,支持 Data Time Travel 和 Data Share 能力

Part.

5

不受存儲供應商的限制,可以在任何存儲服務上運行,并直接查詢任何存儲服務上的數據

Part.

6

目前已全面支持 HDFS/Cloud-Based Object Storage 協議,包括:阿里云 OSS,騰訊云 COS,華為云 OBS,以及 S3,Azure Blob, Google Cloud Storage

Databend 的征程遠遠不止于此,在未來我們希望 Databend 能擁有:

1

更強大的功能

在緊隨其后的 v1.1 版本中,我們希望實現如下功能:

  • JSON 索引:提高半結構化數據檢索能力

  • 分布式 Ingest 能力:提高數據寫入速度

  • MERGE INTO 功能:實現數據源增、刪、改的實時 CDC 能力

  • Windows Function

我們希望這些功能能進一步滿足用戶的需求,并且實現 Databend 在 CDC 場景下的突破。

2

更開放的社區

Databend Labs 由一群開源愛好者組成,Databend 項目從創建之初就是采用 Apache 2.0 協議授權的開源項目。在借鑒和吸收 ClickHouse,CockroachDB 等開源項目優秀思想的同時,我們也在以自己的方式回饋社區:
  • 開源了Databend 元數據服務集群的共識引擎openraft[3]

  • 向 Apache 軟件基金會捐贈了底層的數據訪問引擎 opendal[4] 并成功進入孵化器開始孵化

  • 成為向量計算基礎庫 arrow2 等多個依賴項目的貢獻者

  • 跟進并采用 Rust Nightly,幫助 Rust 社區復現并驗證問題

沒有開源社區就沒有今天的 Databend,感謝 144 個參與 Databend 的貢獻者!下來,我們將更開放地與其他開源社區合作,支持讀寫 Iceberg[5]、Delta Lake[6] 等格式,打破數據間的壁壘,使數據能夠更自由靈活地流轉。


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據分析
    +關注

    關注

    2

    文章

    1365

    瀏覽量

    33791
  • 大數據分析
    +關注

    關注

    1

    文章

    129

    瀏覽量

    16803

原文標題:Databend v1.0 Release 正式發布

文章出處:【微信號:Rust語言中文社區,微信公眾號:Rust語言中文社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DSO V1.0 總體框圖(9.14)

    經過討論,第一版的示波器(DSO V1.0)初步定了框圖如下:
    發表于 09-16 22:17

    PCB抄板軟件V1.0

    PCB抄板軟件V1.0
    發表于 10-13 18:56

    【二五珠智能中國算盤】之基本功能版 ChinaAbacus V1.0

    ` 本帖最后由 fantek 于 2013-12-26 10:26 編輯 【二五珠智能中國算盤】之基本功能版 ChinaAbacus V1.0 發布日期:20131028程序功能及說明:1.用
    發表于 10-28 19:32

    AY-LDC1000 用戶手冊-V1.0

    分享下AY-LDC1000 用戶手冊-V1.0
    發表于 08-04 20:49

    STM32F429+EMWIN開發手冊_V1.0

    STM32F429+EMWIN開發手冊_V1.0
    發表于 05-29 08:10

    STM32F429+LWIP開發手冊_V1.0

    STM32F429+LWIP開發手冊_V1.0
    發表于 05-29 08:11

    STM32F429+UCOS開發手冊_V1.0

    STM32F429+UCOS開發手冊_V1.0
    發表于 05-29 08:12

    Makerbase CANable V1.0模塊的硬件介紹

    MKS CANable V1.0模塊測試第1部分 硬件準備1.1 硬件下載CANable為開源項目,MKS CANable V1.0的原理圖等項目文件都可以通過Q群732557609下載。如下圖所示
    發表于 08-23 07:40

    Nodemcu v1.0是什么

    Nodemcu v1.0是一塊基于esp8266的NodeMcu開發板,具有GPIO、PWM、I2C、1-Wire、ADC等功能,無意中在X寶上發現,主要是價格便宜,20塊左右的價格就可擁有
    發表于 10-29 06:26

    中科鑒芯CEO葉靖:發布openDACS開源故障仿真器v1.0 ICTest-FaultSimulator

    的“openDACS V1.0 主線版本開源論壇”,代表中科院計算所和中科鑒芯聯合發布了“openDACS開源故障仿真器v1.0”。本文采用知識共享CC-BY/NC 許可協議授權。觀點僅代表演講者,不代表開放原子開源基金會立場。
    發表于 06-29 10:01

    中科院微電子汪令飛 :介紹openDACS器件模型&抽取提取SIG,發布開源薄膜晶體管模型v1.0

    作為openDACS工作委員會委員,中國科學院微電子研究所副研究員汪令飛于 2021 年 10 月 16 日在 CCF DAC 2021大會的“openDACS V1.0 主線版本開源論壇”,作為
    發表于 07-06 09:57

    PSUKIT v1.0資料分享

    描述PSUKIT v1.0
    發表于 08-02 06:46

    如何使用NodeMCU v1.0節能?

    有很多關于如何使用 NodeMCU v1.0 節能的指南。我碰巧有 v0.9 躺在身邊。我對它們沒有任何問題,所以我想將它們用于電池供電的項目。 關于如何使用這些板實現最低功耗的任何想法或說明,或者他們可能不需要任何模組?
    發表于 05-31 11:05

    LeMedia使用教程V1.0

    LeMedia使用教程V1.0,介紹LeMedia如何使用。
    發表于 02-22 17:29 ?10次下載

    MMoIP系列設備操作手冊發布V1.0

    MMoIP系列設備操作手冊發布V1.0
    發表于 12-23 02:27 ?0次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>