當前位置:首頁 » 數據倉庫 » 新一代分布式內存資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

新一代分布式內存資料庫

發布時間: 2023-03-08 05:16:47

❶ 開源內存資料庫有哪些

問題一:內存資料庫主流的有哪些,並給出各自特點! 這里介紹一些大型的市場佔有率比較高的內存資料庫,也是業界響當當的―SAP HANA、Oracle Exalytics、Orale TimesTen、IBM SolidDB,可以說他們之間沒有說是哪個最好,主要還是看使用的場景和具體的需求,各自特點如下:
SAP HANA(High-Performance Analytic Appliance)是 SAP 公司於 2011 年推出的基於 內存計算技術,面向企業分析性應用的產品。左圖 的系統架構示意圖中可以看出, HANA 產品主要包括內存計算引擎和 HANA 建模工具兩部分。它支持從 SAP 商務套件中 同步更新業務數據,或者從 SAP BW(SAP 商務智能產品)和其他第三方數據源中批量導 入數據,在 HANA 中進行運算後,提供給 SAP BI 客戶端或者其他第三方展現工具進行分 析和展現。
Oracle Exalytics 內存分析一體機是面向分析的集成設計系統,可以無限制提供最佳可 視化分析和更智能的分析應用程序。 如圖 所示, Oracle Exalytics 內存分析一體機的產品架構包括 3 個部分: 內容分析 硬體、內存分析軟體和經過優化的 Oracle 商務智能基礎套件(Oracle BI Foundation)。內存分析硬體部分是一台為基於內存計算的商務智能而特別優化的伺服器,具有提供 強勁計算能力的 40 核中央處理器,高達 1TB 的內存以及快速的網路. 內存分析軟體部分的核心是 Oracle TimesTen 內存資料庫。它是為 Exalytics 平台而特 別優化的內存分析資料庫,包括了很多 Oracle Exalytics 平台特有的功能。Oracle 商務智能基礎套件部分受益於 Oracle Exalytics 內存分析一體機的大容量內存、 處理器、並發處理能力、存儲、網路、操作系統、內核和系統配置等,可以提供明顯優於傳統軟體的查詢響應性、用戶可用性和 TCO。
Oracle 內存資料庫TimesTen 是一個基於內存計算的關系資料庫, 提供了響應時間極 短且吞吐量極高的應用程序,可滿足各行業應用程序的需求。 TimesTen 是一個可嵌入到應用程序中的資料庫, 通過消除進程間通信和網路 開銷,進一步提高資料庫操作的性能。Oracle 內 存 數 據 庫 TimesTen 使 用 行 級 鎖 定 和 提 交 後 讀 取 (mitted-read) 隔離,通過事務日誌記錄與資料庫檢查點相結合實現了基於磁碟的持久 性和可恢復性。TimesTen 通常與多用戶和多線程應用程序一起部署,應用程序直接通過 JDBC、 ODBC、 Oracle 調用介面、 Pro*C/C++ 和Oracle PL/sql 編程介面, 使用標准SQL 訪問TimesTen 資料庫。若運行在不同伺服器上的多個應用程序共享一個資料庫時,則使 用常規的客戶端/伺服器訪問方式。
IBM solidDB 是一個內存資料庫,專為獲取極高的速度和可用性而進行優化。如圖 所示,IBM solidDB 既可以單獨部署作為獨立的資料庫支持應用程序,也可 以部署為其他關系型資料庫的加速緩存以提高應用程序性能。solidDB Universal Cache 功能將這些資料庫中存儲的性能關鍵型數據 緩存到solidDB Universal Cache 中,加快領先關系資料庫的速度。solidDB Universal Cache 功能使用檢查點和事務日誌將數據持久保存在 磁碟上......>>

問題二:開源的內存資料庫都有哪些 1.最簡單的方法:
public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public static String reverse3(String s)
{
char[] array = s.toCharArray();
String reverse = ; 注意這是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
}

問題三:開源內存資料庫有幾種啊? 常見的有FastDB、SQLite、Berkeley DB、GigaBASE,H2等

問題四:幾種常用的開源內存資料庫性能比較 本人理解:orcal速度快但是維護不方便嗎,費錢。mysql速度可以,維護方便,交orcal來說易上手。db2:大

問題五:開源的內存資料庫有哪些支持SQL基準 選擇資料庫實例―右鍵屬性―選擇【內存】選擇頁―修改內存―確定

問題六:C/C++開發的開源的分布式內存資料庫有哪些 1.最簡單的方法:
public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public static String reverse3(String s)
{
char[] array = s.toCharArray();
String reverse = ; 注意這是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
}

問題七:哪位達人用過關系型的內存資料庫而且是開源的 關系型資料庫以行和列的形式存儲數據,以便於用戶理解。這一系列的行和列被稱為表,一組表組成了資料庫。表與表之間的數據記錄有關系。用戶用查詢(Query)來檢索資料庫中的數據。一個Query是一個用於指定資料庫中行和列的SELECT語句。關系型資料庫通常包含下列組件: 客戶端應用程序(Client) 資料庫伺服器(Server) Structured Query Language(SQL)Client端和Server端的橋梁,Client用SQL來向Server端發送請求,Server返回Client端要求的結果。現在流行的大型關系型資料庫有IBM DB2、Oracle、SQL Server、SyBase、Informix、access、foxpro等。

問題八:C/C++開發的開源的分布式內存資料庫有哪些 1.最簡單的方法:public static String reverse1(String str){ return new StringBuffer(str).reverse().toString();}2.最常用的方法:public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ; 注意這是空串,不是null for (int i = array.length - 1; i >= 0; i--) reverse += array[i]; return reverse; } 3.常用方法的變形: public static String reverse2(String s){ int length = s.length(); String reverse = ; 注意這是空串,不是null for (int i = 0; i 問題九:要求實時數據需要存儲到內存庫 有開源內存資料庫嗎 朋友您好,很高興為您解答問題
請把問題補充完整
大家才能給你提供完善的建議
相信您在知道這個平台
一定會有滿意的收獲
真誠希望能夠幫助您,如果滿意請採納,祝您好運常伴。

問題十:什麼情況下用內存資料庫 相對於磁碟,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁碟 *** 問能夠極大地提高應用的性能。同時,內存資料庫拋棄了磁碟數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且在數據緩存、快速演算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統資料庫的數據處理速度要快很多,一般都在10倍以上。內存資料庫的最大特點是其主拷貝或工作版本 常駐內存,即活動事務只與實時內存資料庫的內存拷貝打交道。顯然,它要求較大的內存量,但並非任何時刻整個資料庫都存放在內存,即內存資料庫系統還是要處理I/O。
內存資料庫是以犧牲內存資源為代價換取數據處理實時性的,內存資料庫和磁碟資料庫都是當今信息社會里每個企業所必須的關系型資料庫產品,磁碟資料庫解決的是大容量存儲和數據分析問題,而內存資料庫解決的是實時處理和高並發問題。兩者的存在是相輔相成的,內存資料庫的事務實時處理性能要遠強於磁碟資料庫。但是相對的,他的數據安全方面還沒有達到磁碟資料庫比肩的地步。
內存資料庫將物理內存作為數據的第一存儲介質,而將磁碟作為備份。隨著電信業務的發展,系統對實時性的要求和對業務靈活修改的要求非常高,在此種情況下對於內存資料庫的需求也越來越高。磁碟資料庫的做法是將數據存入內存中進行處理,這種方式的可管理性及數據安全可靠性都沒有保障。而內存資料庫正是針對這一弱點進行了改進。
實際上,內存資料庫並不是一項時髦技術,其出現於上世紀60年代末,但由於市場的需求原因在90年代後期才開始發展。作為新一代資料庫,Altibase產品已經走向混合型資料庫,其版本Altibase 4.0已經有一套自帶的磁碟資料庫,用戶一旦購買了Altibase的內存資料庫,就無須再購買磁碟資料庫。它把熱數據(經常被使用的、訪問比較高的、經常要運算的數據)放在內存資料庫里,而把歷史性數據放在磁碟資料庫里,可為用戶進一步減少投資。
對於內存資料庫而言,可以將同樣資料庫的部分內容存放於磁碟上,而另一部分存放於內存中。用戶可以選擇將數據存儲在內存表中以提供即時的數據訪問。若訪問時間不緊急或數據存於內存中所佔空間過大時,用戶可將這些數據存入磁碟表中。
比如,在手機用戶開始拔打電話時,如果應用基於內存資料庫技術的混合數據管理引擎,就通過內存表檢索其服務選項並立即驗證用戶身份,而將通話清單和計費清單歸檔到磁碟表中。從而,達到了速度與資源使用的平衡。
內存資料庫的技術,一個很重要的特點,是可以對內存中的數據實現全事務處理,這是僅僅把數據以數組等形式放在內存中完全不同的。並且,內存資料庫是與應用無關的,顯然這種體系結構具有其合理性。內存引擎可以實現查詢與存檔功能使用的是完全相同的資料庫,同時內存表與磁碟表也使用的是完全相同的存取方法。存儲的選擇,對於應用開發者而言是完全透明的。
對於內存資料庫而言,實現了數據在內存中的管理,而不僅僅是作為資料庫的緩存。不像其它將磁碟數據塊緩存到主存中的資料庫,內存資料庫的內存引擎使用了為隨機訪問內存而特別設計的數據結構和演算法,這種設計使其避免了因使用排序命令而經常破壞緩存資料庫性能的問題。通過內存資料庫,減少了磁碟I/O,能夠達到了以磁碟I/O 為主的傳統資料庫無法與其相比擬的處理速度。
因此,內存資料庫技術的應用,可以大大提高資料庫的速度,這對於需要高速反應的資料庫應用,如電信、金融等提供了有力支撐。
由於把大多數數據都放在內存中進行操作,使得內存資料庫有著比磁碟資料庫高得多的性能表現,這一......>>

❷ Mycat和MySQL的區別

Mycat和MySQL的區別:

可以把上層看作是對下層的抽象,例如操作系統是對各類計算機硬體的抽象。那麼我們什麼時候需要抽象?假如只有一種硬體的時候,我們需要開發一個操作系統嗎?

再比如一個項目只需要一個人完成的時候不需要leader,但是當需要幾十人完成時,就應該有一個管理者,發揮溝通協調等作用,而這個管理者對於他的上層來說就是對項目組的抽象。

同樣的,當我們的應用只需要一台資料庫伺服器的時候我們並不需要Mycat,而如果你需要分庫甚至分表,這時候應用要面對很多個資料庫的時候,這個時候就需要對資料庫層做一個抽象,來管理這些資料庫,而最上面的應用只需要面對一個資料庫層的抽象或者說資料庫中間件就好了,這就是Mycat的核心作用。

所以可以這樣理解:資料庫是對底層存儲文件的抽象,而Mycat是對資料庫的抽象。

❸ NewSQL分布式資料庫發展策略討論

作者 石默研

本文對新一代NewSQL分布式資料庫發展策略中的普遍困擾進行討論,包括雲原生(Cloud Native)與本地部署(On Premise)、HTAP進展方向、分布式與單機需求等分布式資料庫商業與技術發展中難以決策的問題。

1. 困擾

分布式NewSQL資料庫近年來蓬勃興起,其原因顯而易見:切中了業務與數據量不斷增長的用戶對關系型資料庫RDBMS需求,這在傳統RDBMS到大數據的發展階段中,有相當一段時間是空白。同時,隨著互聯網技術的不斷發展與普及,用雲計算模式滿足IT需求似乎已經成為未來 社會 產業互聯網發展的明確趨勢,也就是說,有一種共識:不久的將來,絕大多數產業的IT服務是從公共的、行業的或者私有的、混合的雲計算中心提供的。這一共識又帶來了雲原生(Cloud Native)概念與技術的興起,而分布式NewSQL資料庫自然也應該是雲原生的,這決定了其相當多的產品設計決策應以符合這一趨勢為原則。然而,在當今的現實中,滿足業務與數據量不斷增長的RDBMS需求的用戶,與雲原生的用戶,除了互聯網企業外,大多數情況下,並不重合,需要On-Premise部署的用戶仍然佔有很大比重,這就帶來了第一個困擾:雲原生(Cloud Native)與本地部署(On Premise)對產品發展要求的矛盾。

另一個困擾,是關於HTAP,即交易與分析混合負載。HTAP是當今非常火的一個概念與技術,在交易庫上直接進行分析,而不再是將「數據從交易庫搬下來,挪到另一個資料庫中去」這樣的繁瑣過程。可以毫不誇張的說: 歷史 上規模性企業IT復雜度的相當一部分,都來自於「搬數據」,這導致了數據採集、實時採集、全增量合並、數據傳輸、數據載入、數據建模、數據質量、數據標准、企業級元數據管理等繁雜多樣的技術環節的產生,導致了企業數據分布、數據流向、數據模型、主數據、基礎數據平台、ODS/數據倉庫/數據集市、數據治理等復雜的數據架構設計優化領域,導致了由於多系統大規模數據搬遷而帶來的如數據交換平台之類的復雜調度工程......。咋眼一看,感覺該企業的數據技術好厲害,相關各領域的技術產品好豐富,技術人員的相關技能也好受歡迎。但如果在交易庫就能直接滿足分析需求而不影響生產效能的話,這些復雜高級的技術環節不都成了「自己給自己造了一座山,還說自己爬的好辛苦」?然而,現實卻是,問題並不這么簡單,除了在交易庫中進行分析會影響業務效能外,還有很多原因導致這一現象產生:交易庫並不需要存儲那麼長的 歷史 數據,而分析往往是需要建立在大量 歷史 數據之上的;交易庫的模型往往並不適合分析需求,多數情況下需要重要建模,如非常流行且價值不菲的各行業數倉主題模型;用於交易的OLTP資料庫與用於分析的OLAP資料庫,其技術體系完全不同;以及大型企業已固化的內部業務結構並沒有留給交易/分析整合可實施的可行空間......等等。由於, 歷史 積累的企業級數據體系相當復雜,HTAP的發明者迄今為止都沒有系統表達完全替代數據分析需求、自頂而下重構企業數據體系的架構級策略,而是將產品重點定位在技術優化層面:在交易庫上直接完成實時統計分析,滿足高並發需求且不影響業務效能;或者是為實時分析統計/查詢而建設的數據服務中間平台。然而,即使是暫時沒有這種策略性的意向,在面向AP的產品具體研發中,又會發現明確的界限確實不好把握,隨著一個個具體功能的不斷完善,似乎假以時日,技術上也不是沒有完全替代純OLAP平台的可能性。那麼,HTAP究竟如何定位呢?

再者就是規模化的分布式需求,與小規模的單機資料庫需求(這里指邏輯上的單機)之間的矛盾:分布式資料庫,自然而然是要應對規模化的數據管理需求的,長尾的小規模需求當然不應在產品設計考慮之列,同時,大炮轟蒼蠅經常還打不好;然而,分布式NewSQL資料庫又應該是雲原生的,如果把雲原生的業務含義理解為「全自助」,它應該以支持什麼樣的需求為主呢?現實看來,小規模長尾業務對雲原生資料庫的需求最起碼應該是占據相當大的比重的。顯而易見,如果是大規模的數據管理需求,即使是部署在雲上,DBPaaS的「全自助」是其核心需求嗎?這種規模化的業務,如果是雲上的On-Premise又需要做出哪些方面的改變?從互聯網與雲計算發展的 歷史 來看,「雲自助」,其最核心的商業動機當然包括給用戶側的運維帶來了方便,但更重要的可能是給雲服務運營商應對海量長尾客戶的安裝與運維帶來了極大的成本優勢。這正如銀行的小微及個人消費貸款都要走互聯網線上模式,而重客、大客甚至中小企業信貸仍然是以線下為主的策略一樣,本質是成本問題,而不是客戶方便性問題。於是,矛盾顯而易見:分布式是面向規模客戶的,起碼是中、大型客戶,而雲原生卻有可能、最起碼相當一段時間內是要以長尾客戶為主要服務對象的。

以上困擾實質上,都涉及到了NewSQL分布式資料庫的產品發展策略問題。

2. 討論

問題是客觀而又普遍的,但分析與應對策略往往包含主觀因素:人們的一個決定與決策,很多情況下並不由嚴格推理而來,而是心中已經有一個答案,再來找理由支持它。這里的討論或許也並不能例外。

首先,來看看Cloud Native與On Premise。雲原生本應是資料庫即服務,然而目前真正有規模化數據增長需求的NewSQL應用相當多的情況下卻是付費On Premise與免費On Premise區別,很多互聯網企業的應用也可能只是部署在雲基礎設施上而已,真正的雲原生更多是一些實驗性、嘗試性的需求。但雲原生資料庫在公有雲、行業雲以及大型私有雲上已經逐漸在形成一種意識上的共識,其商業前景不可限量。也就是說,未來的數字化轉型進程中,產業互聯網的資料庫部署,會逐漸向雲基礎設施遷移,長在雲上。它可能是公有雲,也可能是行業雲,也可能是私有雲,它們都是被定義為雲原生NewSQL資料庫的市場范圍。當然,肯定還會有相當一部分資料庫長在雲下,這也不用糾結,將其排除在雲原生市場戰略目標之外即可,就是說,不需要考慮這部分客戶需求對產品規劃的影響,因為前一部分的份額已經足夠大了。這樣看來,以雲原生為目標進行產品規劃的邏輯沒有問題,不過,還是要明確一點:長在雲上的資料庫是不是一定符合我們對「雲原生」的既有理解?這里認為,即使未來,在雲上形成了產業互聯網資料庫市場的主體,需要「全自助」的資料庫即服務可能也是以面向長尾客戶最為迫切、必不可少並且是核心本質,而對中大型以上的需求,「全自助」的意義相對有限,同時比較而言商業模式的轉變或者更關鍵些。那麼,如果是以「長在雲上」為市場目標,似乎可以將其定義為「廣義的雲原生」,同時,只要是「長在雲上」,那麼「雲原生」概念中高彈性、高可用、低成本、快速迭代、存算分離等技術優勢也都能方便獲得。而對「雲原生」策略中「雲原生」一詞的理解不同,對產品規劃決策的影響也應該有所不同:一是目前被認為是On Premise的客戶需求,或許也就是未來「雲原生」主體市場的需求;二是NewSQL資料庫關於雲原生服務的產品策劃,對用戶側「自助」水平的決策或許可以更靈活實用。高水平自助確實可以減輕客戶對IT的依賴程度,但這里認為,雲原生與用戶自行在雲上購買資源進行On-Premise部署相比,最關鍵的價值在於商業模式的改變,能自助多少,不一定是最重要的,因為成為雲服務商後,運營運維的工作只會更多,責任可能會更大,甚至有時連IaaS的運維也需要PaaS服務商兜底。但從一個個客戶的本地服務,變成集中化雲服務,就已經是本質性的模式轉變了。總之,需要就事論事,回到原點,仔細分析後決策,而不是用概念教條的判斷,因為概念本身的定義並不見得准確對應實際的業務需求。

再來看看HTAP,對這個問題,正如在其它文章中表達過的一樣,本文的觀點較為明確。一是隨著計算能力與架構的升級,從技術上講,AP與TP的界限會越來越模糊;另外特別是在雲原生的新世界裡,資料庫的這一特性又猶為重要,因為雲原生的重要作用之一就是要讓客戶盡量擺脫對IT運維的依賴,將越來越多的精力集中到自己的業務發展上來;同時端到端的能力提升對雲原生商業模式的貫徹也至關重要(需要仔細分析下目前DBPaaS的技術要求是否完全符合這一原點的、本質性的動力),過去與純OLAP資料庫的優勢比較糾結在這里也可以得到正面支持;再者,既然架構上已經走向了AP,就很難做到在產品規劃上時刻釐清純AP與混合負載的需求後,再將前者排除在外。於是,以「混合負載滿足部分AP需求」應該是由於投入與階段性市場策略導致的階段性產品規劃,而長遠來講,以一套技術架構滿足大多數需求,應該是雲原生NewSQL資料庫的追求。

接下來,就是關於規模化分布式與小規模單機需求的矛盾了。現在看來,經過上面的討論,這一點已經不是什麼問題了:因為「長在雲上」、從分散服務向集中服務的商業模式轉變就是指廣義的雲原生,而不一定要以小微的、迫切需要全自助的長尾為主流,那麼,雲原生NewSQL資料庫仍然應以規模化分布式為其主體的需求方向,而小規模單機則暫時可以不做為重點來考慮。

最後指出一點,希望也能引發進一步的思考:我們所批判的主機,也聲稱自己是分布式架構,暫且不論其是否客觀,但在現實中主機需要被替代的核心問題並不是有沒有分布式,而是:一、擴展不靈活帶來成本問題:「我只需要擴展一個節點,你卻讓我再買一台主機」;二、不自主可控;三、往往是軟硬體結合的設計策略,包括內存、網路、存儲與IO上的軟硬融合設計,而這一點,是否需要雲原生資料庫從廣義的定義出發進行學習參考,也是需要進一步討論的。