<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Amoro 開源 | 從 Arctic 到 Amoro:我們的開源旅程和愿景

          共 8995字,需瀏覽 18分鐘

           ·

          2023-08-08 20:47

          大家好,我是 Arctic Maintainer 成員凌斷,去年 8 月我們開源了 Arctic 項目,感謝各位小伙伴一年來的陪伴,借這個一周年的時機,我想跟大家分享一些信息。
          01

          項目更名
          第一,Arctic 項目名稱今日起正式變更為 Amoro [/a?moro/],項目官網(wǎng)和 GitHub 同步變更:
          • 官網(wǎng)https://amoro.netease.com/
          • 文檔:https://amoro.netease.com/docs/latest/
          • 源碼:https://github.com/NetEase/amoro
          原先以 Arctic 命名的官網(wǎng),文檔和源碼地址會重新定向到 Amoro。
          雖然 Arctic 這個名稱深受大家喜愛,但與一些知名軟件商標(biāo)沖突,不利于長期規(guī)劃,下面列舉兩個 Arctic 商標(biāo)沖突的軟件:
          • Man Group 開源的名為 Arctic 的 Python 數(shù)據(jù)庫項目:https://github.com/man-group/arctic
          • Dremio 的 Arctic 組件:https://www.dremio.com/platform/arctic/
          另一方面,Arctic 的靈感更多源于 Apache Iceberg 這個優(yōu)秀的開源項目,但是在這開源的一年時間里我們發(fā)現(xiàn)一個可以適配更多數(shù)據(jù)湖格式的湖倉管理系統(tǒng)更加符合社區(qū)用戶的需要,后續(xù)我們依然會圍繞 Iceberg 去構(gòu)建更多湖倉一體和湖原生實踐,同時也會在社區(qū)的驅(qū)動下對接更多的數(shù)據(jù)湖格式,希望這個開源項目能夠為這個方向帶來一些有意義的變化,為此我們期望能夠賦予這個項目一個更加通用的名稱。
          我們認為字母 A 和這個項目有緣(下面會展開聊聊),所以在 ChatGPT 中輸入了以下的 propmt。
          給我想一個以字母 A 開頭,字符不超過 6 位,朗朗上口易于傳播的軟件名稱,避免跟已知軟件存在商標(biāo)沖突。
          經(jīng)過多次糾偏和商標(biāo)確認,得到了 Amoro [/a?moro/] 這個名字,下面是全新設(shè)計的 LOGO,這里特別感謝家超同學(xué)在視覺設(shè)計上的創(chuàng)意和付出:

          02

          項目定位
          我想通過倒立的字母 A 來聊聊這個項目是什么,為什么做:

          擁抱開源生態(tài)
          倒立的 A 最上面的部分是一個向上的開口,就像是一個人張開雙臂擁抱這個世界,也象征著這個項目會以最開放的方式和各種開源軟件一起工作,包括:
          • 不會從 0 做一個數(shù)據(jù)湖 format
          • 以社區(qū)驅(qū)動積極對接不同數(shù)據(jù)湖 format
          • 以社區(qū)驅(qū)動積極對接各種計算引擎
          • 盡可能以可插拔的架構(gòu)來對接服務(wù),比如 Kyuubi,消息隊列
          我想舉兩個例子來說明 Amoro 的開放性。
          第一,Amoro 目前活躍的社區(qū)用戶,絕大多數(shù)都是 Apache Iceberg 的原生用戶,Amoro 提供了原生 Iceberg 的自優(yōu)化和管理功能,在 0.5 版本中,Amoro 實現(xiàn)了 Iceberg Restful Catalog 接口,意味著原生 Iceberg 用戶可以使用 Iceberg 提供的 Restful Catalog 訪問 Amoro,用戶可以在這里感受到類似于 Hive 和 HMS 天然集成的特性,未來 AMS 還會基于 Iceberg Metrics 擴展更多有價值的度量指標(biāo),這里必須要感謝 Iceberg 社區(qū)對用戶需求的洞察和高瞻遠矚。
          第二Amoro 支持對接既有的 Metastore,比如 HMS,AWS Glue。我們觀察到社區(qū)里很多用戶使用了 HMS,可能還基于 HMS 做了授權(quán)鑒權(quán),Amoro 可以通過 external catalog 的功能將 HMS 作為擴展的元數(shù)據(jù)存儲,同時還能提供自優(yōu)化,快照管理等特性。用戶可以快速將 Amoro 應(yīng)用于現(xiàn)有的系統(tǒng),在社區(qū)實踐中,曾出現(xiàn)過第一天測試,第二天上線的案例。
          場景與價值
          A 的中央部分是兩點一橫,對應(yīng) Amoro 的應(yīng)用場景。
          一點:湖原生數(shù)倉
          當(dāng)我們使用數(shù)據(jù)庫,或者如 TeraData、GP 一類的 MPP 數(shù)倉,大家習(xí)慣于把他們當(dāng)做一個黑盒,用標(biāo)準(zhǔn)的 SQL 或工具來使用數(shù)據(jù),當(dāng)我們把技術(shù)棧切到數(shù)據(jù)湖,會發(fā)現(xiàn)大家似乎習(xí)慣于把工作拆成一個個模塊:數(shù)據(jù)加工,ETL 用 Spark/Flink,數(shù)據(jù)分析用 Trino、Presto 和 Impala,相比傳統(tǒng)數(shù)倉,數(shù)據(jù)湖開放的特性和生態(tài)給業(yè)務(wù)帶來了超大規(guī)模的擴展性、伸縮性和相對可控的成本,但也喪失了傳統(tǒng)數(shù)據(jù)庫和數(shù)倉開箱即用的特性。
          對此我們的工程師可能會想很多辦法,比如自己開發(fā)一個定時調(diào)度的數(shù)據(jù)優(yōu)化平臺,或者把數(shù)據(jù) layout 優(yōu)化的工作直接丟給用戶,這個誰用誰知道,把原先數(shù)據(jù)庫和數(shù)倉內(nèi)部極其復(fù)雜的數(shù)據(jù)合并和優(yōu)化規(guī)則交給業(yè)務(wù)平臺去做,這基本是一項不可能做好的事情,尤其當(dāng)你想用新的數(shù)據(jù)湖 format 統(tǒng)一實時和離線數(shù)倉,數(shù)據(jù)的優(yōu)化規(guī)則可能需要翻天覆地的變化。
          在我們和業(yè)務(wù)共創(chuàng)的過程中,我們看到了大量這樣的需求:業(yè)務(wù)希望用一套數(shù)據(jù)湖技術(shù)棧,同時做離線數(shù)倉和實時數(shù)倉,數(shù)據(jù)可能實時攝取,也可能離線寫入。既想要數(shù)據(jù)湖的低成本,高彈性,可以使用成套的數(shù)據(jù)湖工具(大數(shù)據(jù)平臺),也可以有傳統(tǒng)數(shù)據(jù)庫和數(shù)倉黑盒使用的體驗,業(yè)務(wù)只管使用數(shù)據(jù):

          我們將這種場景命名為湖原生數(shù)倉,湖是新型的數(shù)據(jù)湖 format,能夠為業(yè)務(wù)帶來 ACID,流批統(tǒng)一等特性,數(shù)倉強調(diào)開箱即用,自管理和自優(yōu)化的能力,我們希望通過 Amoro 結(jié)合數(shù)據(jù)湖 format 實現(xiàn)湖原生數(shù)倉的愿景。
          湖原生數(shù)倉本質(zhì)上是 Lakehouse(雖然這個概念足夠通用,但不得不承認,當(dāng)我跟另一位同學(xué)講 Lakehouse 的時候,很難說他想到的東西和我一樣) 在數(shù)倉方向上的精準(zhǔn)抽象,當(dāng)我們說湖倉一體時,絕大多數(shù)場景講的就是湖原生數(shù)倉。
          一橫:流式 pipeline
          對實時業(yè)務(wù),過去大部分實踐是從數(shù)據(jù)源到數(shù)倉定義一個獨立的 ETL 任務(wù),隨著業(yè)務(wù)對數(shù)據(jù)時效性越來越重視,大家開始研究實時數(shù)倉和實時計算的體系化研發(fā)、數(shù)據(jù)分層、資產(chǎn)復(fù)用和數(shù)據(jù)治理。2018 年 Databricks 就提出用 Delta 架構(gòu)實現(xiàn)流批架構(gòu)的統(tǒng)一,即所謂的流批一體,而在流批一體之前,首先要做好流式的 pipeline,再將批的選擇權(quán)交給用戶:

          流式 pipeline 需要用的技術(shù)有 Incremental query、CDC、基于湖的維表 join,基于湖的多流 join等。CDC 和增量讀是相對成熟的功能,但基于湖做多表關(guān)聯(lián),解決引擎大狀態(tài)問題,這是個湖與引擎高度耦合的功能,我們認為整個行業(yè)在這塊的成熟度還有所不足,尤其在超大規(guī)模數(shù)據(jù)的場景下,需要 case by case 地解決問題。
          對流式 pipeline 的場景,Amoro 提供了一套 Mixed format,可以更好地應(yīng)對 CDC,毫秒級 pipeline 的需求,同時在 Self-optimizing 和 Merge-on-read 方面提供了基于 bucket 的性能優(yōu)化,其中 Mixed Hive 能夠額外提供 Hive 原生讀寫的功能,感興趣的同學(xué)可以參閱:
          https://amoro.netease.com/docs/latest/formats-overview/
          未來 Amoro 希望通過對接不同數(shù)據(jù)湖 format 來探索這個場景的更多可能性,比如目前社區(qū)已經(jīng)在推進和 Paimon 的集成,我們有理由相信 Paimon 在流式場景下可以給用戶帶來更多驚喜。
          另一點:云原生數(shù)倉
          數(shù)據(jù)湖 format 技術(shù)在國內(nèi)討論更多的是 CDC,流批一體這樣的場景,立項之初這也是 Amoro 主要關(guān)注的點。但熟悉 Iceberg 的同學(xué)可能知道,Iceberg 誕生的重要背景之一,是面向 AWS S3 構(gòu)建數(shù)倉的需求,Hive 在對象存儲之上有諸多不足,在 Iceberg 之上都有得到妥善解決,技術(shù)點這里不多做討論。
          云原生數(shù)倉可以認為是純粹面向?qū)ο蟠鎯Φ臄?shù)倉方案,業(yè)務(wù)往往會選擇一個全新的技術(shù)棧,比如用 Iceberg 代替 Hive,用 AWS Glue 代替 HMS,而 Amoro 提供的 AMS 實現(xiàn)了 Iceberg 的 Restful catalog 接口;提供了數(shù)據(jù)自管理和優(yōu)化的特性;提供了時效性、性能、成本的度量和管理功能,能夠在云原生數(shù)倉的場景下作為 Iceberg 的最佳伴侶來使用。
          定位和愿景
          Amoro 是什么,這個答案既要回答立項的初心,也要代表項目長期的定位和愿景:
          "Amoro is a Lakehouse management system built on open data lake formats. Working with compute engines including Flink, Spark, and Trino, Amoro brings pluggable and self-managed features for Lakehouse to provide out-of-the-box data warehouse experience, and helps data platforms or products easily build infra-decoupled, stream-and-batch-fused and lake-native architecture."
          首先 Amoro 是湖倉管理系統(tǒng),這里我們借鑒了數(shù)據(jù)庫管理系統(tǒng)的叫法,可能很多同學(xué)乍一聽會覺得管理系統(tǒng)會類似于實時計算、離線開發(fā)一類的工具平臺,這里我稍稍做個澄清:工具的目標(biāo)是幫助用戶更高效、便利地執(zhí)行某種流程,而Amoro 的目標(biāo)是將一些流程向用戶屏蔽,交給用戶一個黑盒,他的定位更多是一個基礎(chǔ)軟件,所以 Amoro 的 MS 類似于 DBMS 中的 MS,我們經(jīng)常講一句話:build a box for lakehouse。
          這里拋磚引玉一下,我們經(jīng)常在數(shù)據(jù)庫和傳統(tǒng)數(shù)倉中看到一些面向 information_schema 的標(biāo)準(zhǔn)化指令,Amoro 希望可以做 Lakehouse 的 information_schema,后續(xù)我們會嘗試帶動社區(qū)推進這塊功能的標(biāo)準(zhǔn)化。
          其次 Amoro 不像數(shù)據(jù)庫和傳統(tǒng)數(shù)倉一樣是個純粹地黑盒,它開放的特性可以很好地契合由開源技術(shù)棧構(gòu)建的各種大數(shù)據(jù)平臺和產(chǎn)品,幫助這些平臺快速上手 Iceberg 這類新型數(shù)據(jù)湖 format,體現(xiàn)湖原生數(shù)倉、湖倉一體的業(yè)務(wù)價值,所以它即可面向數(shù)倉用戶,也可以面向平臺開發(fā)者,在我們的社區(qū)實踐中,后者的比例是占大頭的。
          03

          活動預(yù)告
          基礎(chǔ)軟件是現(xiàn)代數(shù)據(jù)棧發(fā)展的核心驅(qū)動力,而在大數(shù)據(jù)領(lǐng)域,開源又是基礎(chǔ)軟件發(fā)展的必要路徑。過去多年來我們團隊為公司研發(fā)了多項基礎(chǔ)軟件,有的因為關(guān)鍵業(yè)務(wù)發(fā)展不利而消亡,有些至今活躍在生產(chǎn)一線,我最大的感受是閉源軟件,尤其那些自給自足而不是為 2B 而生的項目,無論多底層,很容易受制于組織架構(gòu)和生產(chǎn)關(guān)系的割裂,或公司業(yè)態(tài)不夠豐富,而無法在通用性和標(biāo)準(zhǔn)化上做到極致。
          這也正是我們做開源的初衷,我們希望通過純粹的開源精神,為我們的用戶,為這個行業(yè)打磨一套在湖倉領(lǐng)域的基礎(chǔ)軟件,Make something different!
          回顧過去一年,社區(qū)已有 20+ 個來自不同企業(yè)的開發(fā)者參與貢獻,10+ 個生產(chǎn)用戶案例。在社區(qū)生態(tài)上,也將持續(xù)建設(shè),以更多的方式讓用戶了解參與 Amoro,包括但不限于項目的捐贈,放棄掌控權(quán),成為一個多方共建的開源社區(qū)。
          接下來做個預(yù)告,Amoro 即將發(fā)布 0.5 的新版本!社區(qū)也將組織一場試用和貢獻活動,歡迎各位小伙伴關(guān)注、試用 Amoro 新發(fā)布的版本,有任何問題可以隨時反饋社區(qū),同時也歡迎更多的開發(fā)者能參與到 Amoro 的共建中來,讓社區(qū)能更加豐富、更有趣!
          Have fun!

          END

          看到這里 記得關(guān)注、點贊、轉(zhuǎn)發(fā) 一鍵三連哦~

          精彩回顧:
          Arctic助力傳媒實現(xiàn)低成本的大數(shù)據(jù)準(zhǔn)實時計算
          Arctic 自動優(yōu)化湖倉原理解析
          萬字長文詳解開源流式湖倉服務(wù)Arctic
          從Delta 2.0開始聊聊我們需要怎樣的數(shù)據(jù)湖
          手把手教你使用 Arctic 自動優(yōu)化 Apache Iceberg

          關(guān)于 Amoro 的更多資訊可查看:
          官網(wǎng):https://amoro.netease.com/
          文檔:https://amoro.netease.com/docs/latest/
          源碼:https://github.com/NetEase/amoro
          社群:后臺回復(fù)【社群】添加小助手(或掃描下方二維碼↓,邀你進群)



          點擊下方【閱讀原文】可直接跳轉(zhuǎn) Amoro 官網(wǎng)


          瀏覽 520
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天操天天操天天逼天天逼天天日天天逼 | 麻豆视频二区 | 不卡A片 操b操逼 | 亚洲黄片播放 | 黄色艹比视频网站 |