新聞中心
當(dāng)前位置:網(wǎng)站首頁 > 新聞中心
云數(shù)據(jù)庫選型必讀:總有一款適合你!
我最近查看的DB-Engines排名中有373個系統(tǒng),不過其中許多產(chǎn)品不是明確的云數(shù)據(jù)庫。我選擇了有代表性的12家云服務(wù)和云數(shù)據(jù)庫供應(yīng)商,按首字母排序來介紹。請注意,本文提及的并非建議使用,未提及的也并非不好。
亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)在其云端提供至少15種數(shù)據(jù)庫,不過其中幾種是數(shù)據(jù)倉庫。Aurora是高性能、高可用性的關(guān)系數(shù)據(jù)庫服務(wù),同時支持MySQL和PostgreSQL。RDS是其標(biāo)準(zhǔn)性能的關(guān)系數(shù)據(jù)庫服務(wù),支持5種引擎:MariaDB、MySQL、Oracle Database、PostgreSQL 和Microsoft SQL Server。DynamoDB是高流量鍵值數(shù)據(jù)庫服務(wù)。ElastiCache是內(nèi)存中服務(wù),與Memcached和Redis兼容。DocumentDB是一種與MongoDB兼容的文檔數(shù)據(jù)庫服務(wù)。Keyspaces是一種與Cassandra兼容的寬列數(shù)據(jù)庫服務(wù)。Neptune是一種圖數(shù)據(jù)庫服務(wù),支持屬性圖和RDF模型。Timestream是一種時間序列數(shù)據(jù)庫服務(wù)。QLDB是一種分類賬數(shù)據(jù)庫服務(wù)。
CockroachDB是一種分布式、可橫向擴(kuò)展、動態(tài)分片的關(guān)系多模型數(shù)據(jù)庫,它在鍵值存儲數(shù)據(jù)庫上實現(xiàn)了PostgreSQL;它擁有強(qiáng)一致性和異常出色的存活能力。CockroachDB Core是免費(fèi)開源的;CockroachDB Enterprise是擁有附加功能的商業(yè)版;CockroachCloud是供應(yīng)商管理的多云數(shù)據(jù)庫即服務(wù),基于CockroachDB Enterprise和Kubernetes;CockroachCloud Free是CockroachCloud的永久免費(fèi)版,功能簡化,每個免費(fèi)集群最多只能使用1個vCPU和5 GB存儲。CockroachDB在 2020年年底增加了空間數(shù)據(jù)存儲和索引功能。
Couchbase Server是一種內(nèi)存優(yōu)先、分布式、靈活的JSON文檔數(shù)據(jù)庫,在本地集群中高度一致。Couchbase Lite是移動版本,可以在本地運(yùn)行,也可以在連接后同步到服務(wù)器。Couchbase Cloud是一種完全托管的NoSQL數(shù)據(jù)庫服務(wù),面向關(guān)鍵任務(wù)型應(yīng)用,可在AWS或Microsoft Azure的云環(huán)境中自動部署和管理Couchbase Server。
DataStax Enterprise 是開源寬列數(shù)據(jù)庫Apache Cassandra的增強(qiáng)型云原生版本。DataStax Astra是一種基于Apache Cassandra/DataStax Enterprise構(gòu)建的云原生多云、無服務(wù)器、可擴(kuò)展的多區(qū)域DBaaS。存儲附加索引機(jī)制為Astra提供了針對非主鍵的查詢功能,其他任何版本的Cassandra還沒有這項功能。
谷歌云托管10多種數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫包括Bare Metal Solution for Oracle Database、Cloud SQL for MySQL/PostgreSQL/Microsoft SQL Server以及Google Cloud Spanner,后者是云原生系統(tǒng),支持無限制的規(guī)模、一致性和99.999%的可用性。Google Cloud Bigtable是類似Cassandra或HBase的寬列存儲數(shù)據(jù)庫。Firestore和Firebase Realtime Database是文檔數(shù)據(jù)庫。Memorystore支持Redis API和Memcached API。谷歌云合作伙伴服務(wù)支持來自MongoDB、DataStax、Redis Labs和Neo4j的托管產(chǎn)品。
IBM 在其云端提供大約10種數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫服務(wù)包括PostgreSQL、EnterpriseDB(PostgreSQL 的商業(yè)擴(kuò)展)和IBM Db2。NoSQL數(shù)據(jù)庫服務(wù)包括IBM Cloudant(文檔數(shù)據(jù)庫)、MongoDB(也是文檔數(shù)據(jù)庫)、DataStax(寬列Cassandra的商業(yè)擴(kuò)展)以及Redis。IBM 在超級保護(hù)的環(huán)境中托管PostgreSQL和MongoDB,實現(xiàn)了端到端加密。
Microsoft Azure支持8種事務(wù)云數(shù)據(jù)庫。Azure SQL是SQL Server的云原生版本,是一種關(guān)系多模型數(shù)據(jù)庫;Azure SQL實例類似,但提供與最新SQL Server引擎的最大兼容性。你還可以在虛擬機(jī)中運(yùn)行SQL Server。Azure Database支持MariaDB、MySQL和PostgreSQL。Cosmos DB是一種高可用性、多模型、多區(qū)域的數(shù)據(jù)庫服務(wù),提供文檔、寬列、鍵值和圖模型,不過每個實例支持一個模型。Azure Cache與Redis兼容。Azure Managed Instance for Cassandra是一種托管寬列數(shù)據(jù)庫,可以與本地Cassandra集群同步。
MongoDB Atlas是一種可在AWS、谷歌云和Microsoft Azure上使用的多云文檔數(shù)據(jù)庫服務(wù)。MongoDB本身可作為托管服務(wù)來使用,或在幾乎每家云服務(wù)提供商的虛擬機(jī)中使用。
MySQL、MariaDB、Vitess、PlanetScale和SkySQL是從MySQL派生而來的數(shù)據(jù)庫,可作為云服務(wù)來使用。MySQL是一種開源多模型關(guān)系數(shù)據(jù)庫,可在AWS、谷歌云、Microsoft Azure和Oracle Cloud以及幾乎每家云服務(wù)提供商的虛擬機(jī)中作為一項托管服務(wù)來使用。MariaDB是早期開發(fā)人員開發(fā)的MySQL的一個分支。Vitess是一種用于橫向擴(kuò)展MySQL的數(shù)據(jù)庫集群系統(tǒng),有自動分片功能。PlanetScale是一種與MySQL兼容的無服務(wù)器數(shù)據(jù)庫平臺,由Vitess提供支持。SkySQL則是可在AWS和谷歌云中使用的MariaDB服務(wù)。
Neo4j是一種符合ACID的屬性圖數(shù)據(jù)庫,有許多集群功能。Neo4j Aura是一種快速、可靠、可擴(kuò)展且完全自動化的Neo4j圖數(shù)據(jù)庫,作為云服務(wù)來提供。Aura的免費(fèi)版和專業(yè)版僅在谷歌云上可用。企業(yè)版在AWS和谷歌云上都可用。
Oracle Database是一種商業(yè)關(guān)系數(shù)據(jù)庫,也是領(lǐng)先的關(guān)系多模型數(shù)據(jù)庫。它在 Oracle Cloud中以多種形式和大小的服務(wù)來使用;MySQL作為一項服務(wù)可在Oracle Cloud中使用。Oracle Database也可用于 AWS和谷歌云的本地部署環(huán)境中。
Redis是一種NoSQL內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲,可以持久保存在磁盤上。它可以充當(dāng)數(shù)據(jù)庫、緩存和消息代理。它通過Redis Sentinel提供高可用性,并通過Redis Cluster實現(xiàn)自動分區(qū)。Redis Enterprise增加了提高速度、可靠性和靈活性的功能,可以作為云數(shù)據(jù)庫即服務(wù)來使用。Redis on Flash是Redis Enterprise的一項功能,可顯著降低Redis的硬件成本。Redis Enterprise Cloud實例可在AWS、谷歌云和Microsoft Azure上使用;你可以選擇自己的一個或多個區(qū)域,還可以在云虛擬機(jī)、Kubernetes或容器中運(yùn)行Redis。
無論你為自己的應(yīng)用選擇什么數(shù)據(jù)庫,都別忘了在投入資源之前運(yùn)行概念驗證,并在進(jìn)入到生產(chǎn)環(huán)境之前進(jìn)行負(fù)載測試。許多云數(shù)據(jù)庫可以根據(jù)需要縱向擴(kuò)展和橫向擴(kuò)展,但并非所有云數(shù)據(jù)庫都可以在無須將數(shù)據(jù)傳輸?shù)叫聦嵗缓箨P(guān)閉舊實例的情況下進(jìn)行擴(kuò)展。
一旦你的數(shù)據(jù)庫進(jìn)入到生產(chǎn)環(huán)境,就要設(shè)置持續(xù)監(jiān)控機(jī)制,能夠針對異常情況發(fā)出警報,并且準(zhǔn)備好應(yīng)對緊急情況。請注意,一些數(shù)據(jù)庫需要在負(fù)載變化時對索引進(jìn)行調(diào)整和更改,另一些數(shù)據(jù)庫會自動調(diào)整自己。
作者:Martin Heller現(xiàn)為《InfoWorld》網(wǎng)站的特約編輯兼評論員,此前擔(dān)任Web和Windows編程顧問。從1986年至2010年,Heller一直從事數(shù)據(jù)庫、軟件和網(wǎng)站的開發(fā)工作。近期,他出任Alpha Software的技術(shù)和教育副總裁,還是Tubifi的主席兼首席執(zhí)行官。
來源:計算機(jī)世界
|