ArangoDB 3.5发布:流事务API、蒙面数据、搜索性能大幅提升、最短路径功能
ArangoDB 3.5 發(fā)布了。ArangoDB 是一個(gè)分布式原生的多模型數(shù)據(jù)庫(kù),具有靈活的文檔、圖形和鍵值數(shù)據(jù)模型。使用方便的 SQL 查詢語(yǔ)言或 JavaScript 擴(kuò)展構(gòu)建高性能應(yīng)用程序。
此版本亮點(diǎn)包括:
期待已久的?Streaming Transactions API,可以直接使用不同的語(yǔ)言驅(qū)動(dòng)運(yùn)行和管理 ACID 事務(wù)(已支持 Java Sync、Go、JavaScript 和 PHP)
ArangoSearch?改進(jìn),包括可配置分析器、超快速排序索引等
擴(kuò)展圖形數(shù)據(jù)庫(kù)功能,如 k-shortest 路徑和新的 PRUNE 關(guān)鍵字
Data Masking,可以安全地使用模糊的生產(chǎn)數(shù)據(jù)來(lái)實(shí)現(xiàn)真實(shí)的開(kāi)發(fā)和測(cè)試環(huán)境
Time-To-Live?索引、索引提示和命名索引等更新
SmartJoins,可以針對(duì)分布式數(shù)據(jù)運(yùn)行高效的共址 JOIN 操作(企業(yè)版功能)
流事務(wù) API(Streaming Transactions API)
此版本正式引入了流事務(wù) API(Streaming Transactions API),這是一種更簡(jiǎn)單地使用 ACID 事務(wù)的方法,不需要編寫任何 JavaScript 代碼。使用新的流事務(wù) API,可以直接使用喜歡的語(yǔ)言對(duì) ArangoDB 進(jìn)行 BEGIN、COMMIT 與 ABORT(回滾)操作,與使用 RDBMS 類似,目前官方已經(jīng)支持 Java Sync、Go、JavaScript 與 PHP。事務(wù)可以包含一系列受支持的事務(wù)操作,后跟 commit 或 abort 命令。這允許客戶端以比基于 JavaScript 的事務(wù)更有效的方式構(gòu)建更大的事務(wù)。
事務(wù)可以有許多配置選項(xiàng),對(duì)于調(diào)用事務(wù),可以定義以下內(nèi)容:
collections:任何寫操作都需要的事務(wù)的集合
waitForSync:一個(gè)可選的 Boolean 標(biāo)志,用于強(qiáng)制事務(wù)在返回之前寫入磁盤
allowImplicit:允許事務(wù)從未聲明的集合中讀取
lockTimeout:允許指定事務(wù)完成的最長(zhǎng)時(shí)間(默認(rèn)為 10 分鐘)
maxTransactionSize:如果使用 RocksDB 作為存儲(chǔ)引擎(自 ArangoDB 3.4 以來(lái)的默認(rèn)引擎),可以以字節(jié)為單位定義事務(wù)的最大大小
搜索引擎升級(jí):可配置分析器和超快速排序查詢
可配置分析器允許執(zhí)行區(qū)分大小寫的搜索、詞干分析,并允許使用自己的語(yǔ)言特定的禁用詞列表。同時(shí)還可以更好地調(diào)整 ArangoSearch 查詢,包括英語(yǔ)、法語(yǔ)、德語(yǔ)與中文等多種語(yǔ)言。
新的排序索引,包括排序的查詢有大幅性能提升。在為 ArangoSearch 創(chuàng)建視圖時(shí),現(xiàn)在可以指定創(chuàng)建此新索引并定義哪種排序順序最適合查詢要求(升序/降序)。如果查詢中的排序順序與視圖中指定的排序順序匹配,則可以直接從索引中讀取結(jié)果并以超快的速度返回結(jié)果。內(nèi)部基準(zhǔn)測(cè)試表明,這些情況下性能提升高達(dá) 1500 倍。
創(chuàng)建排序視圖可以通過(guò)`arangosh`完成:
db._createView('myView', 'arangosearch', { links : { ... }, primarySort: [ { field: 'myField', direction: 'asc' }, { field: 'anotherField', direction: 'desc' } ] })
db._query('FOR d in myView SEARCH ... SORT d.myField ASC RETURN d`); // no sorting at query time
圖形數(shù)據(jù)庫(kù)升級(jí):k-shortest 路徑和新的 PRUNE 關(guān)鍵字
新的 k-shortest 路徑功能提供查詢兩個(gè)給定頂點(diǎn)之間的所有最短路徑的選項(xiàng),根據(jù)路徑長(zhǎng)度或路徑權(quán)重返回排序結(jié)果。
在上圖的歐洲鐵路的例子中,可以查詢倫敦和格拉斯哥之間旅行的最短距離、最少??炕蜃畋阋说钠眱r(jià),具體取決于在邊緣存儲(chǔ)的信息。還可以想象一下將 k-shortest 路徑功能運(yùn)用到網(wǎng)絡(luò)管理與威脅情報(bào)等方面。
新的 PRUNE 關(guān)鍵字是 AQL 圖遍歷查詢中 FILTER 的替代方法,使用 PRUNE 允許用戶減少遍歷查詢必須查找的文檔數(shù)量。PRUNE 在圖遍歷中表現(xiàn)為停止條件,告訴遍歷在滿足給定條件時(shí)停止并返回完整結(jié)果路徑。
數(shù)據(jù)遮掩(Data Masking):適用于 GDPR 和 CCPA 兼容的測(cè)試和開(kāi)發(fā)
在生產(chǎn)環(huán)境中測(cè)試新版本或新功能是很有必要的,但是,將用戶名稱、生日、電子郵件地址或信用卡信息等敏感數(shù)據(jù)從高度安全的生產(chǎn)系統(tǒng)導(dǎo)出到安全性很低的測(cè)試和開(kāi)發(fā)環(huán)境,通常是不可能的,或者會(huì)導(dǎo)致 GDPR/CCPA(歐盟《一般數(shù)據(jù)保護(hù)條例》/《加利福尼亞州消費(fèi)者隱私保護(hù)法案》)合規(guī)性問(wèn)題。
ArangoDB 中新的 Data Masking 功能允許定義要進(jìn)行模糊處理的敏感數(shù)據(jù),然后生成這些集合的“掩數(shù)據(jù)”,導(dǎo)出以用于測(cè)試或開(kāi)發(fā)目的。
此外,快速一致的集群備份功能將在下個(gè)版本 3.5.1 中出現(xiàn)。
更具體的更新內(nèi)容查看「閱讀原文」。
總結(jié)
以上是生活随笔為你收集整理的ArangoDB 3.5发布:流事务API、蒙面数据、搜索性能大幅提升、最短路径功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 番茄日志发布1.0.3版本-增加Kafk
- 下一篇: 【学习笔记】Docker - 02. 在