0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

谷歌用ML模型替代數(shù)據(jù)庫(kù)組件,或徹底改變數(shù)據(jù)系統(tǒng)開發(fā),機(jī)器學(xué)習(xí)將取代數(shù)據(jù)庫(kù)搜索

DPVg_AI_era ? 2017-12-14 16:50 ? 次閱讀

本周,谷歌團(tuán)隊(duì)在arXiv上傳了一篇論文,探討用機(jī)器學(xué)習(xí)取代數(shù)據(jù)庫(kù)索引,引發(fā)了大量的關(guān)注和討論。作者還概述了如何使用這一思想來(lái)替換數(shù)據(jù)庫(kù)系統(tǒng)的其他組件和操作,包括排序和連接。如果成功,數(shù)據(jù)系統(tǒng)的開發(fā)方式將會(huì)徹底改變。

“如果這項(xiàng)研究取得更多的成果,將來(lái)有一天我們很可能回過(guò)頭看然后說(shuō),索引是最先倒下的,接著是其他的數(shù)據(jù)庫(kù)組件(排序算法、查詢優(yōu)化、連接),它們都逐漸被神經(jīng)網(wǎng)絡(luò)取代。”紐約州立大學(xué)布法羅分校的計(jì)算機(jī)科學(xué)和工程教授Murat Demirbas這樣說(shuō)。

文章描述了一個(gè)非常有前景且十分有趣的方向,題目讀來(lái)也頗有小說(shuō)的感覺(jué)——“The Case for Learned Index Structures”。

這篇論文旨在證明“機(jī)器學(xué)習(xí)模型有潛力大幅超越當(dāng)前最先進(jìn)的數(shù)據(jù)庫(kù)索引,提供好很多的性能”。

斯坦福大學(xué)Chirs Manning教授發(fā)表Twitter,評(píng)論稱谷歌團(tuán)隊(duì)這篇論文用機(jī)器學(xué)習(xí)替代傳統(tǒng)算法,而且“一口吃掉一大塊”

用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)分布,讓索引“data-aware”

索引(Index),就是一種對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的結(jié)構(gòu),使用索引可以快速訪問(wèn)數(shù)據(jù)庫(kù)表中的特定信息。數(shù)據(jù)庫(kù)的索引好比圖書的目錄,目錄能讓你在看書時(shí)不把整本書看完就快速找到需要的信息,索引也能讓數(shù)據(jù)庫(kù)程序迅速地找到表中的數(shù)據(jù),而不必將整個(gè)數(shù)據(jù)庫(kù)掃描完。

但是,數(shù)據(jù)庫(kù)在應(yīng)用索引時(shí),對(duì)數(shù)據(jù)本身并不了解,數(shù)據(jù)相當(dāng)于一個(gè)黑盒,而不了解數(shù)據(jù)的分布,造成了很大的浪費(fèi)。

舉例來(lái)說(shuō),如果鍵的范圍在0到500m之間,比起用哈希,直接把鍵當(dāng)索引速度可能更快。如果知道了數(shù)據(jù)的累積分布函數(shù)(CDF),“CDF*鍵*記錄大小”可能約等于要查找的記錄的位置,這一點(diǎn)也適用于其他數(shù)據(jù)分布的情況。

數(shù)據(jù)的累積分布函數(shù)(CDF)可以作為索引

作者在論文中表示,精確了解數(shù)據(jù)分布,可以大幅優(yōu)化當(dāng)前數(shù)據(jù)庫(kù)系統(tǒng)使用的幾乎所有索引結(jié)構(gòu)。

但是,精確了解數(shù)據(jù)分布,數(shù)據(jù)庫(kù)就成了“白盒”,失去了可重用性。這樣一來(lái)就需要檢查數(shù)據(jù),每次都從頭開始設(shè)計(jì)索引。

于是,谷歌研究人員想到了機(jī)器學(xué)習(xí)方法,并使用其中最強(qiáng)的一種——神經(jīng)網(wǎng)絡(luò),去學(xué)習(xí)數(shù)據(jù)分布,并用學(xué)到的知識(shí)預(yù)測(cè)數(shù)據(jù)的分布。

這樣一種折中的方法,讓數(shù)據(jù)索引變得“data-aware”,由此獲得性能的提升。

如果成功,數(shù)據(jù)庫(kù)開發(fā)方式可能徹底改變

他們將神經(jīng)網(wǎng)絡(luò)應(yīng)用于三種索引類型:B樹,用于處理范圍查詢;哈希映射(Hash-map),用于點(diǎn)查找查詢;以及Bloom-filter,用于設(shè)置包含檢查。下面著重介紹一下作者如何用神經(jīng)網(wǎng)絡(luò)替代B樹。

B樹提供了一種有效的分層索引。從概念上講,B-tree將一個(gè)鍵映射到一個(gè)頁(yè)面。因此,我們可以用一個(gè)模型,也進(jìn)行鍵的位置映射,而對(duì)于錯(cuò)誤范圍,我們可以做一個(gè)二進(jìn)制搜索(或擴(kuò)展環(huán)搜索)的變體來(lái)定位頁(yè)面。

要知道m(xù)in_error和max-error,就用擁有的數(shù)據(jù)來(lái)訓(xùn)練模型。數(shù)據(jù)是靜態(tài)的,神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),然后從這些錯(cuò)誤中學(xué)習(xí)。即使簡(jiǎn)單的邏輯回歸也可以用于簡(jiǎn)單的分布。

在測(cè)試時(shí),作者將機(jī)器學(xué)習(xí)索引與B樹進(jìn)行比較,他們使用了3個(gè)真實(shí)世界數(shù)據(jù)集,其中網(wǎng)絡(luò)日志數(shù)據(jù)集(Weblogs)對(duì)索引而言極具挑戰(zhàn)性,包含了200多萬(wàn)個(gè)日志條目,是很多年的大學(xué)網(wǎng)站的請(qǐng)求,而且每個(gè)請(qǐng)求都有單一的時(shí)間戳,數(shù)據(jù)中含有非常復(fù)雜的時(shí)間模式,包括課程安排、周末、假期、午餐休息、部門活動(dòng)、學(xué)期休息,這些都是非常難以學(xué)習(xí)的。

從上圖可見(jiàn),對(duì)于網(wǎng)絡(luò)日志數(shù)據(jù),機(jī)器學(xué)習(xí)索引帶來(lái)的速度提升最高達(dá)到了53%,對(duì)應(yīng)的體積也有76%的縮小,相比之下誤差范圍稍有加大。

用機(jī)器學(xué)習(xí)模型替換B樹的好處是:

  • 索引結(jié)構(gòu)更?。焊俚闹鲀?nèi)存或L1緩存

  • 查找速度更快:因?yàn)樗饕冃×?/span>

  • 更強(qiáng)的并行性(TPU),而不是B-樹中的分層if語(yǔ)句

這里有一個(gè)關(guān)鍵點(diǎn),那就是用計(jì)算換內(nèi)存,計(jì)算越來(lái)越便宜,CPU-SIMD/GPU/TPU的功能越來(lái)越強(qiáng)大,作者甚至指出,“運(yùn)行神經(jīng)網(wǎng)絡(luò)的高昂成本在未來(lái)可以忽略不計(jì)——谷歌TPU能夠在一個(gè)周期內(nèi)最高完成上萬(wàn)次神經(jīng)網(wǎng)絡(luò)運(yùn)算。有人聲稱,到2025年CPU的性能將提高1000倍,基于摩爾定律的CPU在本質(zhì)上將不復(fù)存在。利用神經(jīng)網(wǎng)絡(luò)取代分支重索引結(jié)構(gòu),數(shù)據(jù)庫(kù)可以從這些硬件的發(fā)展趨勢(shì)中受益。

論文還介紹了幾個(gè)策略來(lái)提高機(jī)器學(xué)習(xí)索引的性能,包括使用遞歸模型索引、分層模型和混合模型。機(jī)器學(xué)習(xí)方法都帶來(lái)了能效提升,具體的評(píng)估結(jié)果請(qǐng)參考論文。

需要指出,作者并不認(rèn)為機(jī)器學(xué)習(xí)索引結(jié)構(gòu)可以完全替代傳統(tǒng)索引?!拔覀冋撌隽艘环N建立索引的新方法,它完善了現(xiàn)有的研究,并且為該領(lǐng)域數(shù)十年的研究開辟了一個(gè)新方向。”

作者還概述了如何使用這一思想來(lái)替換數(shù)據(jù)庫(kù)系統(tǒng)的其他組件和操作,包括排序和連接。如果成功,數(shù)據(jù)系統(tǒng)的開發(fā)方式將會(huì)徹底改變。

論文:The Case for Learned Index Structures

摘要

索引就是模型:B-Tree-Index可以被看作一個(gè)將鍵(key)映射到排序數(shù)組中記錄位置的模型,哈希索引可以被看作將鍵映射到未分類數(shù)組中記錄位置的模型,而BitMap-Index可以被看作查看數(shù)據(jù)記錄是否存在的模型。

在這篇探索性研究論文中,我們從這個(gè)前提出發(fā),假設(shè)所有現(xiàn)有的索引結(jié)構(gòu)都可以用其他類型的模型來(lái)代替,包括深度學(xué)習(xí)模型,也即文中所謂的“機(jī)器學(xué)習(xí)索引”(learned indexes)。

本文關(guān)鍵思想是,一個(gè)模型可以學(xué)習(xí)排序順序或查找鍵的結(jié)構(gòu),并使用這個(gè)信號(hào)來(lái)有效預(yù)測(cè)記錄的位置或記錄是否存在。我們從理論上分析了在哪些條件下機(jī)器學(xué)習(xí)索引的性能優(yōu)于傳統(tǒng)索引結(jié)構(gòu),描述了設(shè)計(jì)機(jī)器學(xué)習(xí)索引的主要挑戰(zhàn)。

我們?cè)趲讉€(gè)真實(shí)世界的數(shù)據(jù)集上做了測(cè)試,初步結(jié)果表明,通過(guò)使用神經(jīng)網(wǎng)絡(luò),我們?cè)谒俣壬夏鼙染彺鎯?yōu)化的B樹快70%,同時(shí)內(nèi)存節(jié)省了一個(gè)數(shù)量級(jí)。更重要的是,我們相信用機(jī)器學(xué)習(xí)模型取代數(shù)據(jù)管理系統(tǒng)核心組件的想法,對(duì)未來(lái)的系統(tǒng)設(shè)計(jì)有著深遠(yuǎn)的影響,這項(xiàng)工作僅僅展現(xiàn)了未來(lái)無(wú)限可能的一瞥。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6107

    瀏覽量

    104844
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3744

    瀏覽量

    64188
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8331

    瀏覽量

    132225

原文標(biāo)題:【機(jī)器學(xué)習(xí)吃掉算法】谷歌用ML模型替代數(shù)據(jù)庫(kù)組件,或徹底改變數(shù)據(jù)系統(tǒng)開發(fā)

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server附加數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫(kù)失敗。數(shù)據(jù)庫(kù)沒(méi)有備份,無(wú)法通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 09-20 11:46 ?240次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    恒訊科技分析:sql數(shù)據(jù)庫(kù)怎么?

    SQL數(shù)據(jù)庫(kù)的使用通常包括以下幾個(gè)基本步驟: 1、選擇數(shù)據(jù)庫(kù)系統(tǒng): 選擇適合您需求的SQL數(shù)據(jù)庫(kù)系統(tǒng),如MySQL、PostgreSQL、Microsoft SQL Server、SQLite等
    的頭像 發(fā)表于 07-15 14:40 ?271次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運(yùn)行了Sql Server
    的頭像 發(fā)表于 05-08 11:43 ?435次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫(kù)ASM實(shí)例無(wú)法掛載的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫(kù)ASM磁盤組掉線,ASM實(shí)例不能掛載。數(shù)據(jù)庫(kù)管理員嘗試修復(fù)數(shù)據(jù)庫(kù),但是沒(méi)有成功。
    的頭像 發(fā)表于 02-01 17:39 ?428次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)】Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>ASM實(shí)例無(wú)法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    誠(chéng)邀報(bào)名 | AI 向量、云原生、開源,今年的數(shù)據(jù)庫(kù)熱點(diǎn)技術(shù)都在這里

    開發(fā)者大會(huì)(OADC)即將召開,“AI 時(shí)代數(shù)據(jù)庫(kù)存儲(chǔ)管理新挑戰(zhàn)”分論壇聚集國(guó)內(nèi)頂尖的數(shù)據(jù)庫(kù)技術(shù)團(tuán)隊(duì),為開發(fā)者們
    的頭像 發(fā)表于 12-20 20:48 ?310次閱讀
    誠(chéng)邀報(bào)名 | AI 向量、云原生、開源,今年的<b class='flag-5'>數(shù)據(jù)庫(kù)</b>熱點(diǎn)技術(shù)都在這里

    誠(chéng)邀報(bào)名 | AI 向量、云原生、開源,今年的數(shù)據(jù)庫(kù)熱點(diǎn)技術(shù)都在這里

    和推理的精準(zhǔn)度對(duì)數(shù)據(jù)和信息的存儲(chǔ)、檢索、處理提出了更高的要求。為此,存算分離、向量化數(shù)據(jù)庫(kù)、圖數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)和開源數(shù)據(jù)庫(kù)等受到了前所未
    的頭像 發(fā)表于 12-13 16:05 ?294次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫(kù)引擎類型為innodb,獨(dú)立表空間,無(wú)
    的頭像 發(fā)表于 12-08 14:18 ?1015次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—未開啟binlog的Mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    關(guān)于JSON數(shù)據(jù)庫(kù)

    如何理解JSON數(shù)據(jù)庫(kù)?作為NoSQL數(shù)據(jù)庫(kù)的一種類型,JSON數(shù)據(jù)庫(kù)有哪些優(yōu)勢(shì)呢?JSON數(shù)據(jù)庫(kù)如何運(yùn)作,它為應(yīng)用程序開發(fā)者帶來(lái)了哪些價(jià)值
    的頭像 發(fā)表于 12-06 13:46 ?794次閱讀
    關(guān)于JSON<b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    oracle數(shù)據(jù)庫(kù)的基本操作

    Oracle數(shù)據(jù)庫(kù)是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用中。它具有強(qiáng)大的功能和靈活的配置選項(xiàng),可以滿足復(fù)雜的數(shù)據(jù)處理需求。本文
    的頭像 發(fā)表于 12-06 10:14 ?621次閱讀

    tcmsp數(shù)據(jù)庫(kù)怎么

    TCMSP數(shù)據(jù)庫(kù)是一個(gè)用于中藥化學(xué)研究的在線數(shù)據(jù)庫(kù),提供了大量的中藥化學(xué)信息和藥理學(xué)信息。它的使用對(duì)于中藥化學(xué)研究人員來(lái)說(shuō)非常重要,可以幫助他們快速獲取和分析中藥化學(xué)信息,加快中藥研究的進(jìn)展。本文
    的頭像 發(fā)表于 12-06 10:11 ?4022次閱讀

    oracle數(shù)據(jù)庫(kù)的使用方法

    Oracle數(shù)據(jù)庫(kù)是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它由Oracle公司開發(fā)和維護(hù)。它提供了安全、可靠和高性能的數(shù)據(jù)庫(kù)管理解決方案,被廣泛應(yīng)用于企
    的頭像 發(fā)表于 12-06 10:10 ?1111次閱讀

    oracle數(shù)據(jù)庫(kù)alert日志作用

    Oracle數(shù)據(jù)庫(kù)的alert日志是數(shù)據(jù)庫(kù)引擎和實(shí)例的核心組件之一,它記錄著數(shù)據(jù)庫(kù)的運(yùn)行狀況和事件。該日志對(duì)于數(shù)據(jù)庫(kù)的性能調(diào)優(yōu)、問(wèn)題排查和安
    的頭像 發(fā)表于 12-06 10:08 ?1135次閱讀

    什么是JSON數(shù)據(jù)庫(kù)

    數(shù)據(jù)庫(kù)的顯著優(yōu)勢(shì)關(guān)于JSON數(shù)據(jù)庫(kù)的Q&A一、什么是JSON?首先,我們得明確“JSON”的含義。開發(fā)人員在創(chuàng)建業(yè)務(wù)邏輯、用戶界面、數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 12-02 08:04 ?784次閱讀
    什么是JSON<b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    NoSQL 數(shù)據(jù)庫(kù)如何選型

    什么是NoSQL數(shù)據(jù)庫(kù)?為什么要使用NoSQL數(shù)據(jù)庫(kù)?鍵值數(shù)據(jù)庫(kù)內(nèi)存鍵值數(shù)據(jù)庫(kù)文檔數(shù)據(jù)庫(kù)列式數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 11-26 08:05 ?405次閱讀
    NoSQL <b class='flag-5'>數(shù)據(jù)庫(kù)</b>如何選型

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)介紹和數(shù)據(jù)恢復(fù)案例

    MongoDB數(shù)據(jù)庫(kù)是文檔數(shù)據(jù)存儲(chǔ)庫(kù)文檔存儲(chǔ)在集合之中,不是像MySQL一樣的關(guān)系型數(shù)據(jù)庫(kù)。
    的頭像 發(fā)表于 11-08 15:04 ?817次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>介紹和<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例