⑴ clickhouse能取代hive嗎
可以的
ClickHouse是一個用於聯機分析(OLAP)的列式資料庫管理系統(DBMS)。由號稱「俄羅斯 Google」的Yandex開發而來,在2016年開源,在計算引擎里算是一個後起之秀,在內存資料庫領域號稱是最快的。由於它有幾倍於GreenPlum等引擎的性能優勢,所以不少人都選擇將其安裝雲伺服器中使用。
ClickHouse是一個列導向資料庫,是原生的向量化執行引擎。它在大數據領域沒有走Hadoop生態,而是採用Local attached storage作為存儲,這樣整個IO可能就沒有Hadoop那一套的局限。它的系統在生產環境中可以應用到比較大的規模,因為它的線性擴展能力和可靠性保障能夠原生支持shard+replication這種解決方案。它還提供了一些SQL直接介面,有比較豐富的原生client。
以下是ClickHouse作為分析型資料庫的特點:
一. 速度快
ClickHouse性能超過了市面上大部分的列式存儲資料庫,相比傳統的數據ClickHouse要快100-1000倍,ClickHouse還是有非常大的優勢。
100Million 數據集:
ClickHouse比Vertica約快5倍,比Hive快279倍,比MySQL快801倍。
1Billion 數據集:
ClickHouse比Vertica約快5倍,MySQL和Hive已經無法完成任務了。
二. 功能多
ClickHouse支持數據統計分析各種場景:
1.支持類SQL查詢;
2.支持繁多庫函數(例如IP轉化,URL分析等,預估計算/HyperLoglog等);
3.支持數組(Array)和嵌套數據結構(Nested Data Structure);
4.支持資料庫異地復制部署。
三. 文藝范
不理睬Hadoop生態,走自己的路。目前任何具有x86_64,AArch64或PowerPC64LE CPU架構的Linux,FreeBSD或Mac OS X上運行。
而ClickHouse的缺點:
1.不支持Transaction:想快就別想Transaction;
2.聚合結果必須小於一台機器的內存大小:不是大問題;
3.缺少完整的Update/Delete操作;
4.支持有限操作系統。
⑵ 資料庫的類型都有哪些
資料庫有兩種類型,分別是關系型資料庫與非關系型資料庫。
資料庫,簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。
關系型資料庫主要有:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。
非關系型資料庫主要有:
NoSql、Cloudant、MongoDb、redis、HBase等等。
(2)列式存儲的資料庫產品有哪些擴展閱讀:
非關系型資料庫的優勢:
1、性能高:NOSQL是基於鍵值對的,可以想像成表中的主鍵和值的對應關系,而且不需要經過SQL層的解析,所以性能非常高。
2、可擴展性好:同樣也是因為基於鍵值對,數據之間沒有耦合性,所以非常容易水平擴展。
關系型資料庫的優勢:
1、可以復雜查詢:可以用SQL語句方便的在一個表以及多個表之間做非常復雜的數據查詢。
2、事務支持良好:使得對於安全性能很高的數據訪問要求得以實現。
⑶ 大數據常用哪些資料庫
通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如MySQL、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比較小型的Access等等資料庫,這些資料庫支持復雜的SQL操作和事務機制,適合小量數據讀寫場景;但是到了大數據時代,人們更多的數據和物聯網加入的數據已經超出了關系資料庫的承載范圍。
大數據時代初期,隨著數據請求並發量大不斷增大,一般都是採用的集群同步數據的方式處理,就是將資料庫分成了很多的小庫,每個資料庫的數據內容是不變的,都是保存了源資料庫的數據副本,通過同步或者非同步方式保證數據的一致性,每個庫設定特定的讀寫方式,比如主資料庫負責寫操作,從資料庫是負責讀操作,等等根據業務復雜程度以此類推,將業務在物理層面上進行了分離,但是這種方式依舊存在一定的負載壓力的問題,企業數據在不斷的擴增中,後面就採用分庫分表的方式解決,對讀寫負載進行分離,但是這種實現依舊存在不足,且需要不斷進行資料庫伺服器擴容。
NoSQL資料庫大致分為5種類型
1、列族資料庫:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面簡單介紹幾個
(1)Cassandra:Cassandra是一個列存儲資料庫,支持跨數據中心的數據復制。它的數據模型提供列索引,log-structured修改,支持反規范化,實體化視圖和嵌入超高速緩存。
(2)HBase:Apache Hbase源於Google的Bigtable,是一個開源、分布式、面向列存儲的模型。在Hadoop和HDFS之上提供了像Bigtable一樣的功能。
(3)Amazon SimpleDB:Amazon SimpleDB是一個非關系型數據存儲,它卸下資料庫管理的工作。開發者使用Web服務請求存儲和查詢數據項
(4)Apache Accumulo:Apache Accumulo的有序的、分布式鍵值數據存儲,基於Google的BigTable設計,建立在Apache Hadoop、Zookeeper和Thrift技術之上。
(5)Hypertable:Hypertable是一個開源、可擴展的資料庫,模仿Bigtable,支持分片。
(6)Azure Tables:Windows Azure Table Storage Service為要求大量非結構化數據存儲的應用提供NoSQL性能。表能夠自動擴展到TB級別,能通過REST和Managed API訪問。
2、鍵值資料庫:Redis、SimpleDB、Scalaris、Memcached等,下面簡單介紹幾個
(1)Riak:Riak是一個開源,分布式鍵值資料庫,支持數據復制和容錯。(2)Redis:Redis是一個開源的鍵值存儲。支持主從式復制、事務,Pub/Sub、Lua腳本,還支持給Key添加時限。
(3)Dynamo:Dynamo是一個鍵值分布式數據存儲。它直接由亞馬遜Dynamo資料庫實現;在亞馬遜S3產品中使用。
(4)Oracle NoSQL Database:來自Oracle的鍵值NoSQL資料庫。它支持事務ACID(原子性、一致性、持久性和獨立性)和JSON。
(5)Oracle NoSQL Database:具備數據備份和分布式鍵值存儲系統。
(6)Voldemort:具備數據備份和分布式鍵值存儲系統。
(7)Aerospike:Aerospike資料庫是一個鍵值存儲,支持混合內存架構,通過強一致性和可調一致性保證數據的完整性。
3、文檔資料庫:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面簡單介紹幾個
(1)MongoDB:開源、面向文檔,也是當下最人氣的NoSQL資料庫。
(2)CounchDB:Apache CounchDB是一個使用JSON的文檔資料庫,使用Javascript做MapRece查詢,以及一個使用HTTP的API。
(3)Couchbase:NoSQL文檔資料庫基於JSON模型。
(4)RavenDB:RavenDB是一個基於.NET語言的面向文檔資料庫。
(5)MarkLogic:MarkLogic NoSQL資料庫用來存儲基於XML和以文檔為中心的信息,支持靈活的模式。
4、圖資料庫:Neo4J、InfoGrid、OrientDB、GraphDB,下面簡單介紹幾個
(1)Neo4j:Neo4j是一個圖資料庫;支持ACID事務(原子性、獨立性、持久性和一致性)。
(2)InfiniteGraph:一個圖資料庫用來維持和遍歷對象間的關系,支持分布式數據存儲。
(3)AllegroGraph:AllegroGraph是結合使用了內存和磁碟,提供了高可擴展性,支持SPARQ、RDFS++和Prolog推理。
5、內存數據網格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面簡單介紹幾個
(1)Hazelcast:Hazelcast CE是一個開源數據分布平台,它允許開發者在資料庫集群之上共享和分割數據。
(2)Oracle Coherence:Oracle的內存數據網格解決方案提供了常用數據的快速訪問能力,一致性支持事務處理能力和數據的動態劃分。
(3)Terracotta BigMemory:來自Terracotta的分布式內存管理解決方案。這項產品包括一個Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop連接器。
(4)GemFire:Vmware vFabric GemFire是一個分布式數據管理平台,也是一個分布式的數據網格平台,支持內存數據管理、復制、劃分、數據識別路由和連續查詢。
(5)Infinispan:Infinispan是一個基於Java的開源鍵值NoSQL數據存儲,和分布式數據節點平台,支持事務,peer-to-peer 及client/server 架構。
(6)GridGain:分布式、面向對象、基於內存、SQL+NoSQL鍵值資料庫。支持ACID事務。
(7)GigaSpaces:GigaSpaces內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
⑷ 列式資料庫的舉例
下面以GBase 8a分析型資料庫為例,描述列存儲對數據存儲與管理的作用。
面對海量數據分析的 I/O 瓶頸,GBase 8a 把表數據按列的方式存儲,其優勢體現在以下幾個方面。
不讀取無效數據:降低 I/O 開銷,同時提高每次 I/O 的效率,從而大大提高查詢性能。查詢語句只從磁碟上讀取所需要的列,其他列的數據是不需要讀取的。例如,有兩張表,每張表100GB 且有100 列,大多數查詢只關注幾個列,採用列存儲,不需要像行存資料庫一樣,將整行數據取出,只取出需要的列。磁碟 I/0 是行存儲的 1/10或更少,查詢響應時間提高 10 倍以上。
高壓縮比:壓縮比可以達到 5 ~ 20 倍以上,數據佔有空間降低到傳統資料庫的1/10 ,節省了存儲設備的開銷。
當資料庫的大小與資料庫伺服器內存大小之比達到或超過 2:1 (典型的大型系統配置值)時,列存的 I/O 優勢就顯得更加明顯;
GBase 8a 分析型資料庫的獨特列存儲格式,對每列數據再細分為「數據包」。這樣可以達到很高的可擴展性:無論一個表有多大,資料庫只操作相關的數據包,性能不會隨著數據量的增加而下降。通過以數據包為單位進行 I/O 操作提升數據吞吐量,從而進一步提高I/O效率。
由於採用列存儲技術,還可以實現高效的透明壓縮。
由於數據按列包存儲,每個數據包內都是同構數據,內容相關性很高,這使得GBase 8a 更易於實現壓縮,壓縮比通常能夠達到 1:10 甚至更優。這使得能夠同時在磁碟 I/O 和 Cache I/O 上都提升資料庫的性能,使 GBase 8a 在某些場景下的運算性能比傳統資料庫快 100 倍以上。
GBase 8a 允許用戶根據需要設置配置文件,選擇是否進行壓縮。在啟用壓縮的情況下GBase 8a 根據數據的不同特性以及不同的分布狀況,自動採用相應的壓縮演算法,如:
行程編碼(適用於大量連續重復的數據,特別是排序數據);
基於數據的差值編碼(適用於重復率低,但彼此差值較小的數據列);
基於位置的差值編碼(適用於重復率高,但分布比較隨機的數據列)。
⑸ 為什麼說HBase是列式資料庫
Hbase是一個面向列存儲的分布式存儲系統,它的優點在於可以實現高性能的並發讀寫操作,同時Hbase還會對數據進行透明的切分,這樣就使得存儲本身具有了水平伸縮性。
通常,順序讀取數據要比隨機訪問更快。而且,硬碟定址時間的提升比起CPU速度的進步要慢得多 (參看摩爾定律),在使用硬碟作為存儲媒介的系統上這種情況很可能還會持續一段時間。
下面簡單羅列了一些選擇行資料庫還是列資料庫的權衡依據。當然,如果能夠把數據全放在內存中,那麼使用內存資料庫性能會更好。
特點:
因為硬碟定址時間相較於計算機上其他部件的運行速度來說不是一般的慢,所以常用相同工作負載下的硬碟訪問性能來比較行資料庫和列資料庫。
在只需要根據某幾列來聚合數據的時候按列的數據組織方式更有效。因為這樣只需要讀取一部分數據,要比讀取全部數據更快。
當只需要修改某一列值的時候按列的數據組織方式更有效。因為可以直接找到某列數據並改,而與行中的其他列無關。
⑹ Mysql是列式存儲嗎,或者說mysql支持列式存儲嗎
大數據(巨量數據集合(IT行業術語))
大數據(big data),指無法在可承受的時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力來適應海量、高增長率和多樣化的信息資產。
⑺ 常用的資料庫軟體有哪些它們的優缺點是什麼
目前,商品化的資料庫管理系統以關系型資料庫為主導產品,技術比較成熟。面向對象的資料庫管理系統雖然技術先進,資料庫易於開發、維護,但尚未有成熟的產品。國際國內的主導關系型資料庫管理系統有Oracle、Sybase、INFORMIX和INGRES。這些產品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一樣。IBM的DB2也是成熟的關系型資料庫。但是,DB2是內嵌於IBM的AS/400系列機中,只支持OS/400操作系統。
1.MySQL
MySQL是最受歡迎的開源SQL資料庫管理系統,它由 MySQL AB開發、發布和支持。MySQL AB是一家基於MySQL開發人員的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的注冊商標。
MySQL是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器。MySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置(mass- deployed)的軟體中去。
與其他資料庫管理系統相比,MySQL具有以下優勢:
(1)MySQL是一個關系資料庫管理系統。
(2)MySQL是開源的。
(3)MySQL伺服器是一個快速的、可靠的和易於使用的資料庫伺服器。
(4)MySQL伺服器工作在客戶/伺服器或嵌入系統中。
(5)有大量的MySQL軟體可以使用。
2.SQL Server
SQL Server是由微軟開發的資料庫管理系統,是Web上最流行的用於存儲數據的資料庫,它已廣泛用於電子商務、銀行、保險、電力等與資料庫有關的行業。
目前最新版本是SQL Server 2005,它只能在Windows上運行,操作系統的系統穩定性對資料庫十分重要。並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限。
SQL Server 提供了眾多的Web和電子商務功能,如對XML和Internet標準的豐富支持,通過Web對數據進行輕松安全的訪問,具有強大的、靈活的、基於Web的和安全的應用程序管理等。而且,由於其易操作性及其友好的操作界面,深受廣大用戶的喜愛。
3.Oracle
提起資料庫,第一個想到的公司,一般都會是Oracle(甲骨文)。該公司成立於1977年,最初是一家專門開發資料庫的公司。Oracle在資料庫領域一直處於領先地位。 1984年,首先將關系資料庫轉到了桌面計算機上。然後,Oracle5率先推出了分布式資料庫、客戶/伺服器結構等嶄新的概念。Oracle 6首創行鎖定模式以及對稱多處理計算機的支持……最新的Oracle 8主要增加了對象技術,成為關系—對象資料庫系統。目前,Oracle產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關系數據系統之一。
Oracle資料庫產品具有以下優良特性。
(1)兼容性
Oracle產品採用標准SQL,並經過美國國家標准技術所(NIST)測試。與IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。
(2)可移植性
Oracle的產品可運行於很寬范圍的硬體與操作系統平台上。可以安裝在70種以上不同的大、中、小型機上;可在VMS、DOS、UNIX、Windows等多種操作系統下工作。
(3)可聯結性
Oracle能與多種通訊網路相連,支持各種協議(TCP/IP、DECnet、LU6.2等)。
(4)高生產率
Oracle產品提供了多種開發工具,能極大地方便用戶進行進一步的開發。
(5)開放性
Oracle良好的兼容性、可移植性、可連接性和高生產率使Oracle RDBMS具有良好的開放性。
4.Sybase
1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase資料庫產品。Sybase主要有三種版本:一是UNIX操作系統下運行的版本; 二是Novell Netware環境下運行的版本;三是Windows NT環境下運行的版本。對UNIX操作系統,目前應用最廣泛的是SYBASE 10及SYABSE 11 for SCO UNIX。
Sybase資料庫的特點:
(1)它是基於客戶/伺服器體系結構的資料庫。
(2)它是真正開放的資料庫。
(3)它是一種高性能的資料庫。
5.DB2
DB2是內嵌於IBM的AS/400系統上的資料庫管理系統,直接由硬體支持。它支持標準的SQL語言,具有與異種資料庫相連的GATEWAY。因此它具有速度快、可靠性好的優點。但是,只有硬體平台選擇了IBM的AS/400,才能選擇使用DB2資料庫管理系統。
DB2能在所有主流平台上運行(包括Windows),最適於海量數據。
DB2在企業級的應用最為廣泛,在全球的500家最大的企業中,幾乎85%以上都用DB2資料庫伺服器,而國內到1997年約佔5%。
除此之外,還有微軟的 Access資料庫、FoxPro資料庫等。既然現在有這么多的資料庫系統,那麼在游戲編程時應該選擇什麼樣的資料庫呢?首要的原則就是根據實際需要,另一方面還要考慮游戲開發預算。現在常用的資料庫有:SQL Server、My SQL、Oracle、FoxPro。其中MySQL是一個完全免費的資料庫系統,其功能也具備了標准資料庫的功能,因此,在獨立製作時,建議使用。 Oracle雖然功能強勁,但它畢竟是為商業用途而存在的,目前很少在游戲中使用到。