Venice是一個衍生的資料儲存平台,提供以下功能:
上述情況使得 Venice 特別適合作為支援特徵儲存的有狀態元件,例如 Feathr。 AI 應用程式將 ML 訓練作業的輸出輸入 Venice,然後查詢資料以供線上推理工作負載使用。
威尼斯是一個橫跨離線、近線和線上世界的系統,如下圖所示。
Venice 寫入路徑可以分為三個粒度:完整資料集交換、將許多行插入現有資料集以及更新某些行的某些列。 Hadoop 和 Samza 支援所有三種粒度。此外,任何服務都可以使用 Online Producer 庫非同步產生單行插入和更新。下表總結了各個平台支援的寫入操作:
Hadoop | 薩姆扎 | 任何服務 | |
---|---|---|---|
完整資料集交換 | ✅ | ✅ | |
將一些行插入現有資料集中 | ✅ | ✅ | ✅ |
更新某些行的某些列 | ✅ | ✅ | ✅ |
此外,寫入操作的三種粒度都可以混合在單一資料集中。除了行插入或行更新之外還獲得完整資料集交換的資料集稱為混合資料集。
作為將儲存配置為混合儲存的一部分,一個重要的概念是回滾時間,它定義了最近的即時寫入應回滾多遠並應用於換入的新一代資料集之上。
利用這種機制,可以將流程處理作業的輸出疊加在批次作業的輸出之上。如果使用部分更新,則可以即時更新某些列,而批次更新某些列,並且這兩組列可以根據需要重疊或不相交。
寫入計算包括兩種操作,可以對與給定鍵關聯的值執行:
注意:目前,寫入計算僅支援與主動-被動複製結合使用。對主動-主動複製的支援正在開發中。
Venice 支援以下讀取 API:
存取威尼斯資料有兩種主要模式:
下表總結了客戶的特徵:
網路跳數 | 典型延遲 (p99) | 國家足跡 | |
---|---|---|---|
瘦客戶端 | 2 | < 10 毫秒 | 無國籍 |
快速客戶端 | 1 | < 2 毫秒 | 最小(僅路由元資料) |
達文西客戶端(RAM + SSD) | 0 | < 1 毫秒 | 有界 RAM,SSD 上的完整資料集 |
達文西客戶端(全內存) | 0 | < 10 微秒 | RAM 中的完整資料集 |
所有這些客戶端共享上述相同的讀取 API。這使用戶能夠更改其成本/效能權衡,而無需重寫其應用程式。
開源威尼斯部落格和會議演講是概述威尼斯可以支援哪些用例和規模的良好起點。有關更多威尼斯帖子、講座和播客,請參閱我們的“了解更多”頁面。
請參閱 Venice 快速入門來建立您自己的 Venice 叢集並嘗試一些功能,例如建立資料儲存、批次推送、增量推送和單次擷取。我們建議堅持使用我們最新的穩定版本。
請隨意使用我們的社區與社區互動:
關注我們,了解更多有關威尼斯計畫和社區的進展: