當前位置:首頁 » 數據倉庫 » 研發圖資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

研發圖資料庫

發布時間: 2023-01-20 07:56:08

1. 圖資料庫的應用場景

圖資料庫技術的應用場景比較多,包括但不限於以下幾種場景:
1. 欺詐檢測
無論面對詐騙集團、勾結團伙還是高知罪犯,圖資料庫技術可以實時揭露各種重要詐騙模式。所以越來越多的公司使用圖數據技術來解決各種關聯數據問題,包括欺詐檢測。
2. 實時推薦引擎
圖技術能夠根據用戶購買、交互和評論有效跟蹤這些關系,以提供對客戶需求和產品趨勢最有意義的深刻見解。Ebay等購物網站就在使用圖技術給用戶推薦產品。
3.知識圖譜
將圖技術用於知識圖譜能夠精確搜索查詢,消除搜索查詢的歧義,並且能夠適應不斷增長的數據資產規模。

2. 淺析 Haystack 圖片存儲系統

Facebook在2010年的時候發表過一篇在分布式存儲系統領域很有名的一篇文章《Finding a needle in Haystack》來描述他們的圖片存儲系統,Haystack 存儲了超過2600億張圖片,大約佔了20TB的數據,用戶每周都會上傳10億張圖片,高峰時期的並發量在100萬以上(這是2010年的數據,現在很有可能上了一個數量級)。

在這個數量級之下,需要考慮的問題不僅僅是高吞吐,低延時,保證數據的一致性,還要考慮如何能節省流量,容易擴展,容錯等等。下面我們就來看下Haystack是怎樣滿足這些分布式系統的要素的。

圖片存儲系統的最大特點是數據只寫一次,讀取頻繁,不會修改,很少刪除。Facebook 一開始的存儲系統是基於NFS的NAS(Network Attached Storage), 但這種基於 POSIX 的文件系統無法支撐如此大的負載。其中主要的問題在於在圖片定址的過程中會產生過多的磁碟操作。

我們知道從傳統文件系統裡面讀取一個文件需要至少三次磁碟操作,第一次從硬碟中讀取目錄的 metadata 到內存中,然後讀取inode到內存,最後才從磁碟中讀取文件內容。

再者這些metadata裡麵包含了大量比如許可權控制這些對於圖片存儲系統來說無用的信息,也浪費了大量的磁碟空間。當像圖片這樣的靜態資源服務出現瓶頸的時候,自然就會想到使用 CDN (Content Delivery Networks) 系統。在傳統的設計中,一個圖片的 HTTP 請求發送後, 如果 CDN 有這個資源的緩存,就會立馬返回,反之 ,CDN 會將根據請求的 URL 從存儲系統裡面讀取圖片,更新緩存,然後再返回。在這樣的設計中,CDN 確實可以很有效地處理熱點圖片的請求。

但像 Facebook 這樣的社交網路中,有大量的請求是針對那些非熱點或者老內容的,用戶在請求那些長尾 (long tail) 內容時將沒有優化。當然,有些同學會說,那我可以將所有的圖片都緩存到 CDN,那確實會解決這個問題,但將會極大地增加資源的開銷。

為了減少那些直接 hit 到存儲系統的請求的磁碟操作,他們想到在第一次讀取文件的時候把filename到 file handle 的映射緩存到內存,在下一次讀取文件的時候,會調用自定義的open_by_filehandle來減少磁碟操作,但這對於long tail的讀取問題依然存在,因為這些文件的映射關系沒有提前放在內存中。

於是,Facebook 決定從頭研發圖片存儲系統,從前面我們可以看出,Haystack 的核心任務就是在處理每一次的請求中盡可能地減少磁碟操作。我們先來描述下 Haystack 讀取和上傳圖片流程是怎樣的,然後再來看其中的細節是如何處理的。

當發起一次圖片讀取請求的時候會通過一個事先構建好的 URL

http://///這個 URL 實際上顯示出了訪問的順序,先從外部 CDN 讀取,如果沒有,訪問內部 Cache,如果還是沒有,就直接訪問 Store Machine.(URL最後一部分提供了圖片的唯一標識)

用戶上傳圖片的時候先會上傳到 web 伺服器, 然後伺服器從Directory中找到一個可寫的physical volume,最後伺服器會給這個圖片生成一個唯一ID, 然後寫入到這個logical volume 所對應的所有physical volume中。

上面的過程中出現了幾個陌生的名詞,別著急,我們一個個來看。我們先來介紹 Haystack 的三個主要組件:

Store,Directory,Cache.

Store 是核心組件,負責圖片的存儲。Store 的容量決定了這個存儲系統的容量,整個 Store 組件由很多個 store machine 組成,store machine 的容量又由一系列的 physical volume 決定。

例:要提供 10TB容量,我們可分攤到 100 個 physical volume,每個 physical volume 提供 100 GB 的容量。這時候有的同學會問,那麼數據冗餘是怎麼解決的呢?Haystack 借鑒了普通硬碟中的 logical volume 的概念,將不同機器上的多個 physical

volume 組成了一個虛擬的 logical volume。

當存儲一張圖片的時候,實際上是存儲到了 logical volume 對應的所有 physical volume中。它們之間的映射關系連同其它的metadata都存儲在 Directory組件中。每個physicalvolume 中都存儲了上百萬張圖片,可以把它想像成一個巨大的 append-only 文件,然後通過 offset 來訪問文件。

我們來詳細看下這個文件到底是如何存放的,如何來達到減少磁碟操作目的的。對於每個這樣超大的文件,都由一個 superblock 和一系列的 needles 組成,每個 needle 就是每張圖片的信息。看下下面這張圖,它的結構就一目瞭然了。

每個needle包含的細節信息有圖片ID,圖片大小,圖片數據等等,還會有數據校驗的屬性。每個 store machine 都有若干個physical volume大文件, 為了提高檢索needles 的速度,在內存里為每個physical volume都維護了一張圖片I 到needle之間的映射表。

當store machine接收到讀取請求時,首先從內存映射表中找到相應的metadata, 然後通過offset從硬碟中讀取到整個needle, 通過數據校驗後返回。如果接收到的是上傳請求,會把組織好的needle追加到所有對應的physical volume文件中,並且更新內存里的映射表。如果是刪除操作的話,我們注意到下圖中有個Flags標志位其實就是用來標記是否是刪除的狀態,這樣一來就很簡單,直接在這個位置標記好,系統會在後面執行compaction 操作回收這些空間。

講到這里,一個正常流程的存儲過程已經很清楚了。這時候我們就需要考慮分布式系統一個必不可少的特性:容錯性。當一個 store machine 宕機的時候,理論上我們可以讀取所有的 physical volume 來重新構建內存映射表,但這就需要從磁碟重新讀取 TB 級別的數據,顯然是非常耗時和不高效的。為了解決這個問題,每個 store machine 為每個 physical volume 都維護了一個索引文件。這個索引文件類似於游戲中的存檔點 (checkpoint),它的結構和 physical volume 文件類似,保存了查找每個 needle 所需的屬性。為了性能,索引文件是非同步更新的(寫的時候非同步更新,刪的時候壓根不會更新),這就會帶來一個問題:索引文件有可能不是最新的。之前我們提到過,physical volume 文件是一個 append-only 的文件,索引文件也是。所以我們只需要在重啟 store machine 的時候,從後向前掃描 physical volume 文件找到那幾個沒有被索引的文件,加到索引里去就行了。對於被刪除的文件,在真正讀取完整 needle 數據的時候,通過檢查刪除標志位來更新內存映射表。

我們之前提到可以使用 CDN 來緩解系統壓力,但它無法很好地解決非熱點圖片的問題,並且如果 CDN 節點出現故障的話,沒有 Cache 這一層會對底層的存儲系統 Store 產生巨大的壓力。Cache 組件主要緩存了最近上傳的圖片,它的概念很簡單,實際上是一個分布式 hash table,通過圖片的 ID 為 key 可以找到對應的數據。Cache 接收從 CDN 或者瀏覽器直接發來的 HTTP 請求,但只有在以下兩個條件都滿足的情況下才會緩存圖片:

1) 請求來自用戶瀏覽器而不是來自 CDN

2) 請求的 store machine 是可寫的

這聽上去有些費解,條件 1 的原因是如果一個請求在 CDN 緩存中 miss 其實也會在 Cache 中 miss (如果一張圖片成為熱門的話,那也能在 CDN 找到),條件 2 的原因則是避免讓可寫的 store machine 進行大量讀操作,因為圖片通常在剛剛上傳後會被大量讀取,文件系統通常在只讀或者只寫而不是既讀又寫的時候性能比較好。

如果沒有 Cache 的話,可寫的 store machine 將會同時處理寫操作以及大量的讀操作,會導致性能的急劇下降。

現在我們只剩下 Directory 組件沒有講了。除了之前我們提到的存儲了 physical volume 到 logical volume 的映射關系以及圖片 ID 到 logical physical 的映射關系,它還提供負載均衡服務以及為每個操作選擇具體的 volume (因為寫操作的對象是 logical volume,讀操作的對象是 physical volume), 它還決定了一個請求是被 CDN 處理還是被 Cache 處理。Directory 還可以標記邏輯卷的狀態,在運維需要或者空間滿了的時候可以標記為只讀狀態。當往 Store 加新機器的時候,這些機器就會標記成可寫的,只有可寫的機器才能接受圖片上傳請求。這里有一個細節需要注意,圖片 ID 到 logical physical 的映射表肯定無法存放在單機內存,文章中也沒有交代具體實現。我們猜想可以使用 Mysql 分片集群和加上 Memcached 集群來實現。總的來講,Directory 實際上根據 metadata,然後結合各種策略,實現了整個系統的調度器。

本文描述了 Haystack 圖片存儲系統的主要脈絡,當然還有許多細節沒有提到,比如整個系統的容錯機制,如何實現批量寫操作等等。經過這幾年的發展,我們相信 Haystack 肯定也進行了更多的優化,現在一些開源的分布式存儲系統也被應用到實際的生產系統中,比如淘寶的 TFS,MooseFS 等等。我們會在後續的文章中比較這些系統之間的異同,總結出解決其中典型問題的通用方法。

3. 華為鴻蒙、阿里雲盤古、螞蟻圖計算……14項世界互聯網領先科技成果發布

日前,由國家互聯網信息辦公室、浙江省人民政府主辦的2021年「世界互聯網領先 科技 成果發布活動」在烏鎮互聯網國際會展中心成功舉行,這是第六次面向全球舉行世界互聯網領先 科技 成果發布活動。

發布活動共評選出包括來自中國衛星導航系統管理辦公室、清華大學、北京大學、北京郵電大學、中國電信、中國移動、高通、安謀等14項國內外有代表性的領先 科技 成果。

HarmonyOS 鴻蒙操作系統

華為技術有限公司

鴻蒙是一款全新的面向全場景的分布式操作系統,2019年正式面世。簡單說,鴻蒙為不同設備的智能化、互聯與協同提供統一的語言,讓消費者操控多個設備像操作一台設備一樣簡單。

今年6月2日,華為發布HarmonyOS 2,僅一周升級用戶數破千萬;歷時一個多月,升級用戶數突破3000萬,進入8月已突破5000萬。到9月12日,HarmonyOS 2升級用戶數突破1億,成為全球用戶破億最快的移動操作系統。9月23日,華為又更新數字,HarmonyOS 2升級用戶已突破1.2億。

龐大的用戶基數也帶來強大的生態示範效應,目前已有400個多應用和服務夥伴、1700多家硬體夥伴、130多萬開發者參與到鴻蒙生態的建設當中,共建全球最大的萬物互聯的全場景智慧生態。

智能計算晶元行業創新:全球首個開源NPU指令集架構

安謀 科技 (中國)有限公司

下一代智能計算的核心關鍵是海量地、高密度地、實時地感知和處理不同類型的數據流,智能計算的算力也正越來越多地從CPU、GPU轉為由NPU提供。為了解決NPU定製過程中生態碎片化、重復投資和應用規模受限等問題,安謀 科技 在今年7月聯合了50多家產業龍頭企業和機構共同發起成立了「智能計算產業技術創新聯合體」(Open NPU Innovation Alliance,簡稱ONIA),並推出全球首個開源神經網路處理器指令集架構(NPU ISA)。

圍繞這一開源NPU ISA,安謀 科技 及ONIA會員不僅提供NPU、CPU、XPU晶元方案,還將以開源、開放的協作方式,對外提供編譯器、工具鏈、驅動程序、操作系統、深度學習框架等基礎系統軟體,以及基於不同場景的、統一的多域計算軟硬體平台方案,進而利用開源指令集實現NPU的全面創新,幫助產業鏈更迅速地落地智能計算和人工智慧應用。

人工智慧驅動的重大疾病動態畫像新技術和遠程高效防治系統

北京郵電大學

以5G和人工智慧技術為代表的新一代信息通信技術不斷突破,推動醫療技術發展不斷由疾病治療向 健康 創造轉變。同時,數字醫療的場景復雜化,需求多樣化對信息通信網路的靈活性、智能化提出了更高要求。

人工智慧驅動的重大疾病動態畫像新技術和遠程高效防治系統以「智·簡生態系統」為內核指導思想,在通用醫學大數據處理、智能學習優化平台等方面取得多項技術進展,實現了快速響應危急重症,高效發現關鍵診斷決策依據,動態量化疾病風險因素,以及准確追蹤病情進展等能力。

5G獨立組網(SA)端到端系統方案、國際標准及組網技術

中國移動通信集團有限公司

超高清視頻編解碼關鍵技術及系統應用

北京大學

北京大學自主研發了超高清視頻編解碼關鍵技術及其系統應用,主導制定了AVS超高清視頻編解碼國家標准,被全球超高清產業聯盟採納為國際標准,聯合海思、華為公司在國際上首次發布了8K@120P超高清解碼晶元,支撐了中國首個4K和8K超高清頻道CCTV—4K/8K的開播,並在全球首次實現8K+5G廣電領域直播應用,標志著中國正式邁入超高清時代。

北斗全球衛星導航系統建設和應用

中國衛星導航系統管理辦公室

北斗全球衛星導航系統是中國自行研製的全球衛星導航系統,也是繼GPS、GLONASS之後的第三個成熟的衛星導航系統。北斗系統是黨中央決策實施的國家重大 科技 工程,是我國迄今為止規模最大、覆蓋范圍最廣、服務性能最高、與百姓生活關聯最緊密的巨型復雜航天系統。2020年,北斗三號全球衛星導航系統正式開通。從最初的試驗衛星到如今55衛星成功組網,27年的時間里,數不清的科研人員耗費了大量的心血,建設了中國自己的衛星系統。

目前,北斗系統已在全球超過一半的國家和地區得到應用,向億級以上用戶提供服務。基於北斗的土地確權、精準農業、數字施工、車輛船舶監管、智慧港口解決方案在東盟、南亞、東歐、西亞、非洲等得到成功應用。如今,「中國的北斗、世界的北斗、一流的北斗」正為服務人類 社會 發展、構建人類命運共同體作出新的更大的貢獻。

「天通一號」衛星移動通信應用系統

中國電信集團有限公司

「天通一號」衛星移動通信應用系統完成了多項技術創新,首次提出「天地融合、通導一體」的系統架構。其實現了衛星通信、衛星導航的集成服務,在用戶終端融合了通信、導航功能。創新提出了「星地一體、寬窄互補」的通信體制,實現星地網路全面融合。突破了終端「天地多模、低功耗、小型化」的技術難題。該應用系統已獲得授權專利45件,行業標准4項,學術論文100餘篇,填補了國內衛星移動通信系統空白,整體技術達到「國際先進」水平。

全球首個支持10Gbps 5G傳輸速率和首個符合3GPP Release 16規范的5G數據機到天線解決方案

高通無線通信技術(中國)有限公司

驍龍X65 5G數據機及射頻系統於今年2月發布,為行業帶來了多項首創性的5G技術革新——通過媲美光纖的無線性能支持目前市場上最快的5G傳輸速度,並支持最新5G規范。

去年3GPP標准組織推出了5G的新規范,即Release 16,其定義了下一階段的全球5G發展。值得一提的是,驍龍X65是全球首個符合3GPP Release 16 5G標準的5G數據機到天線解決方案。驍龍X65採用了可以支持特性組合升級的架構設計,從而支持快速商用。這意味著通過驍龍X65能夠持續增加新的特性,在智能手機之外多個應用細分領域擴展5G。

800G 超高速光收發晶元與引擎技術研發

之江實驗室

800G超高速光收發晶元與光引擎技術是之江實驗室為下一代數據高速傳輸提供的核心技術解決方案。之江實驗室項目團隊連續取得大功率多波長激光器、硅基高密度光發射模塊、硅基高速光接收模塊等晶元模塊研發的突破性進展,並利用晶圓級封裝技術將這些晶元模塊集成在同一晶圓上,實現「光電共封」,在確保硬體物理尺寸不變的情況下,有效提升數據傳輸的密度和效率,降低功耗和成本。光收發晶元就像是一位「翻譯」或「交警」,為數據中心光子與電子間的信息轉換架起橋梁,為數據的高效傳輸指揮交通。

基於多光譜的智能感知終端

杭州海康威視數字技術股份有限公司

夜間低照度一直以來是全天候視頻感知所面臨的最大挑戰。海康威視的基於多維感知智能融合終端,可實現低照度下無光污染的全彩成像,讓黑夜像白天一樣精彩。與傳統手段相比,在色彩還原度、清晰度方面,都有顯著的提升,做到細節清晰,精彩如一。

基於分層API規范的雲操作系統生態建設

清華大學

「基於分層API規范的雲操作系統生態建設」是由清華大學大學聯合華中 科技 大學、上海交通大學、北京航空航天大學、中國科學院計算技術研究所等單位在國家重點研發計劃的資助下共同完成。

項目抽象制定了雲操作系統分層API規范並給出了技術領先的參考實現;相關成果已獲實際應用,初步形成了自主雲操作系統生態,對於避免生態的碎片化和供應商鎖定,推動技術持續迭代和行業整體創新有重要意義。

大規模圖計算系統GeaGraph

螞蟻 科技 集團股份有限公司

高性能圖計算被認為是全球尖端 科技 的一個重要前沿,在電信、醫療、製造、能源等領域有著廣闊的應用價值和前景。螞蟻集團聯合清華大學共同研發的高性能圖計算系統GeaGraph能夠在萬億邊圖上進行實時查詢,在國際標准圖資料庫測試中位列第一,處理規模和性能均達到了國際領先水平。現在,GeaGraph已經成為螞蟻集團各種業務風控能力的重要支撐,在數字支付、數字服務、數字金融等核心業務中,顯著提升了風險行為的實時識別能力和調查分析效率。

阿里雲盤古:面向雲計算的大規模分布式存儲系統

阿里雲計算有限公司

阿里雲自主研發的分布式存儲系統「盤古」是該活動6年來首次有存儲技術入選。「盤古」是阿里雲自研的分布式存儲系統,是阿里雲底層的統一存儲架構,主要包括「分布式存儲軟體」「高性能存儲網路」「雲存儲硬體架構」「深度軟硬融合的快閃記憶體存儲架構」「智能運維管控」以及「網路和SSD控制器晶元」核心關鍵技術。

「盤古」解決了超大規模下數據不丟不錯和高可用的難題,讓存儲更加穩定可靠、擁有更大的容量和更高的性能,以滿足數字經濟對海量存儲和快速存儲的需求。

「盤古」團隊自2008年開始組建,2009年開始推出第一個版本,2013年完成上線單集群5K台的規模,此後2015年突破了單集群上萬台的技術門檻,2017年正式推出「盤古」2.0並成功支撐了此後的天貓「雙11」全球狂歡節。相比1.0版本,「盤古」2.0面向人工智慧、科學計算、深度學習等未來存儲場景做了優化升級,整體IOPS性能提升50%,同時推出基於「盤古」2.0的ESSD高性能雲盤,IOPS從2萬提升到了100萬。

安全可靠可控的新一代人工智慧平台

北京瑞萊智慧 科技 有限公司

第一代人工智慧技術存在大規模應用的局限,而第二代人工智慧則面臨著高度依賴大量高質量數據、不能適應不斷變化的條件、演算法可解釋性非常差等諸多問題。為此需要建立魯棒與可解釋的人工智慧理論,發展安全、可信、可靠與可擴展的第三代人工智慧。

作為業內首個致力於提升人工智慧安全性、可靠性與可信性的創新平台,北京瑞萊智慧 科技 有限公司自主研發的「安全可控可靠的新一代人工智慧平台」包含隱私計算、AI攻防、深偽檢測三大子平台。憑借獨有的創新模式,該平台能夠有效降低人工智慧時代的新型安全風險,保障人工智慧系統的安全、可靠和可控,緩解 科技 進步與安全之間的矛盾,目前已在政務、金融、工業互聯網等高價值場景中發揮了重大作用,成為AI縱深賦能的堅實基座。

4. 研發資料庫 我們是做技術的,領導說要建一個研發資料庫,請問下這是個什麼樣子的東東

研發資料庫 和普通資料庫一樣

只不過是名字和用途上的區別

例如 你正式的資料庫 是 zhengshi_db
研發資料庫 就是 yanfa_db

把 zhengshi_db 導入到 yanfa_db

兩個資料庫只有名字不同,表和欄位,視圖,觸發器是完全一樣的

你要是開發新的功能就在 yanfa_db上進行

測試正常後 在植入到zhengshi_db中。

別誤解你領導的意思。

5. 資料庫都有哪些

常用資料庫有mysql、oracle、sqlserver、sqlite等。mysql性能較好,適用於所有平台,是當前最流行的關系型資料庫之一。sqlserver資料庫具有擴展性和可維護性,且安全性較高,是比較全面的資料庫。

6. 圖計算引擎Neo4j和Graphscope有什麼區別

Neo4j是單機系統,主要做圖資料庫。GraphScope是由阿里巴巴達摩院智能計算實驗室研發的圖計算平台,是全球首個一站式超大規模分布式圖計算平台,並且還入選了中 國科學技術協會「科創中 國」平台。Graphscope的代碼在github.com/alibaba/graphscope上開源。SSSP演算法上,GraphScope單機模式下平均要比Neo4j快176.38倍,最快在datagen-9.2_zf數據集上快了292.2倍。