自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何將SQL數(shù)據(jù)庫(kù)遷移到NoSQL

譯文
運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
本文首先比較了關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)的各種特點(diǎn)和適用場(chǎng)景,然后介紹了如何使用云服務(wù)提供商提供的各種工具,將SQL數(shù)據(jù)庫(kù)遷移到NoSQL。

[[378796]]

【51CTO.com快譯】您知道關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)與NoSQL數(shù)據(jù)庫(kù)的本質(zhì)區(qū)別和適用場(chǎng)景嗎?

總的說來,RDBMS主要管理、存儲(chǔ)和操作的是結(jié)構(gòu)化的數(shù)據(jù)。其中,數(shù)據(jù)格式、列、數(shù)據(jù)類型、屬性和模式都是固定的。而且實(shí)體之間的關(guān)系也基本保持一致。在使用RDBMS來存儲(chǔ)事務(wù)型數(shù)據(jù)或記錄時(shí),底層數(shù)據(jù)庫(kù)除了必須保證事務(wù)的ACID(原子性、一致性、隔離性、耐久性),此外還需要重視數(shù)據(jù)的安全性和可訪問性。RDBMS的典型適用場(chǎng)景包括:財(cái)務(wù)交易記錄、OLTP、ERP、CRM系統(tǒng)、以及電子商務(wù)應(yīng)用等。而SQL是處理RDBMS時(shí)常用的查詢語言。

NoSQL(有時(shí)也稱為非SQL或非關(guān)系型)數(shù)據(jù)庫(kù)是一種適用于管理非關(guān)系型數(shù)據(jù)(即:具有固定數(shù)據(jù)類型格式和變量,但不以表格格式來結(jié)構(gòu)化數(shù)據(jù))的數(shù)據(jù)庫(kù)。NoSQL數(shù)據(jù)庫(kù)有著諸如:鍵-值、基于文檔、基于列和基于圖等多種類型。NoSQL比較適合那些非結(jié)構(gòu)化數(shù)據(jù)具備可擴(kuò)展性,以及卓越性能的場(chǎng)景。

近年來,隨著技術(shù)的發(fā)展,雖然一些圖形數(shù)據(jù)庫(kù)也提供了事務(wù)在存儲(chǔ)時(shí)需要遵循的ACID屬性,但是它們?nèi)蕴幱谠缙谟写倪M(jìn)的階段。NoSQL的典型數(shù)據(jù)是各種數(shù)據(jù)流、文檔、聊天消息、以及大數(shù)據(jù)等。它們往往來自諸如內(nèi)容管理、個(gè)性化Web搜索引擎、機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)邊緣設(shè)備、以及存儲(chǔ)了來自異構(gòu)源的大型用戶配置文件。

在此,我們首先對(duì)兩種數(shù)據(jù)庫(kù)的特征進(jìn)行如下對(duì)比和總結(jié): 

隨著業(yè)務(wù)的發(fā)展和各類需求的出現(xiàn),許多企業(yè)需要將現(xiàn)有的RDBMS數(shù)據(jù)庫(kù)遷移到NoSQL,以實(shí)現(xiàn)業(yè)務(wù)的可擴(kuò)展性和性能的動(dòng)態(tài)調(diào)整。從上面的對(duì)比表格,我們可以看出,從RDBMS數(shù)據(jù)源遷移到NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì)主要體現(xiàn)在:成本、收益、性能、可擴(kuò)展性、變更、減少手動(dòng)轉(zhuǎn)換的工作量、以及對(duì)于分析的廣泛支持等方面。

目前,Apache Cassandra和MongoDB是被使用最為廣泛的NoSQL數(shù)據(jù)庫(kù)。Atlas則是由MongoDB提供的DBaaS(數(shù)據(jù)庫(kù)即服務(wù))。不過,目前支持將RDBMS遷移到MongoDB或Cassandra的工具并不多。當(dāng)然,我們也可以使用ETL工具或自定義的轉(zhuǎn)換引擎,來實(shí)現(xiàn)此類復(fù)雜的遷移。

此外,由云服務(wù)提供商提供的專有數(shù)據(jù)庫(kù)有:Azure Cosmos DB、AWS DynamoDB、以及Google Cloud Spanner。這些云服務(wù)提供商往往能夠提供完善的架構(gòu)、廣泛的支持能力、文檔和數(shù)據(jù)遷移工具。因此,與Cassandra或MongoDB相比,花費(fèi)在建立和遷移到新的DynamoDB或Cosmos DB實(shí)例上所需的工作量會(huì)更少。當(dāng)然,與Google相比,Azure和AWS NoSQL服務(wù)要更受業(yè)界的歡迎。

下面,我們來討論如何使用云服務(wù)提供商所提供的各種工具選項(xiàng),將RDBMS遷移或轉(zhuǎn)換為NoSQL數(shù)據(jù)庫(kù)。

1.從傳統(tǒng)RDBMS DB到AWS DynamoDB的遷移工具

AWS Database Migration Service(AWS DMS,https://aws.amazon.com/dms)可以將數(shù)據(jù)從各種被廣泛使用的商業(yè)化RDBMS、和開源的數(shù)據(jù)庫(kù),遷移到相似的同類數(shù)據(jù)庫(kù),或異構(gòu)的數(shù)據(jù)庫(kù)平臺(tái),以及AWS(RDS)的DBaaS平臺(tái)上。

AWS Schema Conversion Tool(SCT)的對(duì)象映射功能,可以被用于在遷移的過程中,將原始數(shù)據(jù)重組為目標(biāo)DynamoDB所需的數(shù)據(jù)結(jié)構(gòu)。而對(duì)于復(fù)雜的轉(zhuǎn)換,我們可以使用Lambda函數(shù)。當(dāng)然,業(yè)界也有許多開源的工具,可以將數(shù)據(jù)庫(kù)表先轉(zhuǎn)換為JSON對(duì)象,然后再將這些JSON對(duì)象導(dǎo)入NoSQL數(shù)據(jù)庫(kù)。

下面是一些具體遷移操作的實(shí)用鏈接:

  • 從RDBMS到DynamoDB - https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html
  • 從Oracle到DynamoDB - https://aws.amazon.com/blogs/database/aws-database-migration-service-and-amazon-dynamodb-what-you-need-to-know/
  • 從Cassandra到DynamoDB - https://aws.amazon.com/blogs/database/migrate-apache-cassandra-databases-to-amazon-dynamodb-more-easily/
  • 從MongoDB到DynamoDB - https://aws.amazon.com/blogs/database/performing-a-live-migration-from-a-mongodb-cluster-to-amazon-dynamodb/

2.從RDBMS DB到Azure Cosmos DB的遷移工具

Azure Cosmos DB仿真器和Azure Cosmos DB Data Migration工具,可以將CSV或JSON對(duì)象等格式的源數(shù)據(jù),從MSSQL數(shù)據(jù)庫(kù)遷移到Cosmos DB中。

Azure Database Migration Service(DMS)、Cosmos DB和MongoDB的API,可被用于將MongoDB遷移到Cosmos DB。

Azure DMS、Cosmos DB、Cassandra API、以及cqlsh命令實(shí)用程序,可被用于將Cassandra遷移到Cosmos DB。

而為了從MSSQL以外的其他RDBMS中進(jìn)行轉(zhuǎn)換,Microsoft建議用戶使用諸如Blitzz.io等第三方工具。

Azure DMS、Azure SQL Server Migration Assistant(SSMA)和Ora2Pg,也可以被用于在關(guān)系型RDBMS,與MSSQL或Azure的DBaaS平臺(tái)之間,進(jìn)行同質(zhì)和異構(gòu)的遷移。

當(dāng)然,用戶在使用上述工具進(jìn)行遷移之前,都需要事先具有Azure的Cosmos DB訂閱帳戶。

下面是一些具體遷移操作的實(shí)用鏈接:

  • 從MS SQL到Cosmos DB - https://docs.microsoft.com/en-us/azure/cosmos-db/import-data
  • 從Oracle到Cosmos DB - https://docs.microsoft.com/en-us/azure/cosmos-db/oracle-migrate-cosmos-db-blitzz
  • 從MongoDB到Cosmos DB - https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction
  • 從Cassandra到Cosmos DB - https://datamigration.microsoft.com/scenario/cassandra-to-cosmos?step=1#migrating-from-cassandra

3.從SQL遷移到Google DataStore

Google提供的NoSQL服務(wù)包括Cloud Datastore和Bigtable。其中,Cloud Datastore已被更新升級(jí)為Firestore的服務(wù)。

針對(duì)從RDBMS數(shù)據(jù)庫(kù)或其他NoSQL平臺(tái),遷移到Firestore或Bigtable,Google并沒有太多現(xiàn)成的工具和文檔支持。我們只能依靠由Google托管的RDBMS Cloud SQL的內(nèi)置功能,將各種傳統(tǒng)的RDBMS遷移到Cloud SQL。而前文提到的另一個(gè)托管式RDBMS--Cloud Spanner,則需要通過手動(dòng)操作來實(shí)現(xiàn)遷移。

有關(guān)Google的遷移操作,請(qǐng)參考鏈接--https://cloud.google.com/solutions/database-migration/technical-resources/

小結(jié)

如今,除了直接從SQL數(shù)據(jù)遷移到NoSQL數(shù)據(jù)庫(kù),許多組織也正在將傳統(tǒng)的大型數(shù)據(jù)存儲(chǔ),遷移到由文件存儲(chǔ)、NoSQL數(shù)據(jù)庫(kù)和SQL數(shù)據(jù)庫(kù)組成的數(shù)據(jù)湖模式中,進(jìn)而方便開展存儲(chǔ)挖掘和大數(shù)據(jù)分析。

綜上所述,關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)分別適用于不同類型的作業(yè)和存儲(chǔ)需求。在進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)時(shí),架構(gòu)師必須考慮成本因素、高可用性(HA)設(shè)計(jì)、災(zāi)難恢復(fù)(DR)機(jī)制、以及數(shù)據(jù)存儲(chǔ)和檢索的復(fù)雜性。如果您想進(jìn)一步了解此方面的知識(shí),請(qǐng)參閱如下兩個(gè)鏈接:

  • NoSQL與關(guān)系型數(shù)據(jù)庫(kù),該何時(shí)用、怎么用? - https://dzone.com/articles/nosql-vs-relational-databases-when-to-use-what
  • 數(shù)據(jù)庫(kù)遷移的挑戰(zhàn) - https://dzone.com/articles/database-migration-challenges

原文標(biāo)題:SQL vs NoSQL and SQL to NoSQL Migration,作者:Sandeep Tol

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2011-04-06 17:30:41

SQL ServerSQL

2020-01-13 15:22:42

ERP云平臺(tái)遷移

2017-10-16 00:17:56

云計(jì)算信息管理遷移

2023-08-23 09:00:00

區(qū)塊鏈以太坊

2020-06-08 10:41:13

云計(jì)算數(shù)據(jù)工具

2021-07-13 09:45:48

CentOSAlmaLinux命令

2022-11-02 15:25:03

云數(shù)據(jù)庫(kù)云平臺(tái)

2012-08-24 09:07:25

IBMdW

2012-10-29 09:27:16

2015-03-20 13:40:17

2021-10-28 08:00:00

數(shù)據(jù)庫(kù)SQL技術(shù)

2011-09-07 09:30:57

服務(wù)器虛擬機(jī)

2020-12-08 10:01:48

DropboxNginxEnvoy

2011-07-28 18:08:51

SQL Server MySQL

2012-06-20 11:17:02

MemSQL

2010-08-12 09:43:31

CassandraMongoDB

2016-12-12 19:16:43

數(shù)據(jù)云端

2016-10-08 17:27:52

云端數(shù)據(jù)庫(kù)云計(jì)算數(shù)據(jù)遷移

2024-03-28 09:00:00

NoSQL數(shù)據(jù)庫(kù)

2022-08-29 14:14:22

云計(jì)算云遷移數(shù)據(jù)分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)