For this assignment, you should take information from a relational database and migrate it to a NoSQL database of your own choosing.
For the relational database, you might use the flights database, the tb database, the “data skills” database your team created for Project 3, or another database of your own choosing or creation.
For the NoSQL database, you may use MongoDB (which we introduced in week 7), Neo4j, or another NoSQL database of your choosing.
Your migration process needs to be reproducible. R code is encouraged, but not required. You should also briefly describe the advantages and disadvantages of storing the data in a relational database vs. your NoSQL database.
Assumption: in MySQL “ASSIGNMENT12” database exists.
Loading necessary packages
library(nycflights13)
library("RMySQL")
## Loading required package: DBI
library(DBI)
library("mongolite")
Variables declaration
airlines.table.name <- "AIRLINES"
mysql.db.name <- "ASSIGNMENT12"
mysql.password <- "olga123"
mysql.user.name <- "root"
local.host="localhost"
mongo.url = sprintf("mongodb://%s", local.host )
Initialise connection to MySQl
mysql.connection <- dbConnect(MySQL(),
user=mysql.user.name, password=mysql.password,
dbname=mysql.db.name, host=local.host)
Initialise connection to MongoDB
mongo.connection <- mongo(airlines.table.name,url = mongo.url)
Insert Airlines table to MySQL
dbWriteTable(mysql.connection,airlines.table.name,airlines, overwrite = TRUE)
## [1] TRUE
Read data from Airlines table into a dataframe and close connection.
sql.df <- dbReadTable(mysql.connection, airlines.table.name)
dbDisconnect(mysql.connection)
## [1] TRUE
Printing dataframe
sql.df
## carrier name
## 1 9E Endeavor Air Inc.
## 2 AA American Airlines Inc.
## 3 AS Alaska Airlines Inc.
## 4 B6 JetBlue Airways
## 5 DL Delta Air Lines Inc.
## 6 EV ExpressJet Airlines Inc.
## 7 F9 Frontier Airlines Inc.
## 8 FL AirTran Airways Corporation
## 9 HA Hawaiian Airlines Inc.
## 10 MQ Envoy Air
## 11 OO SkyWest Airlines Inc.
## 12 UA United Air Lines Inc.
## 13 US US Airways Inc.
## 14 VX Virgin America
## 15 WN Southwest Airlines Co.
## 16 YV Mesa Airlines Inc.
Insert dataframe into MongoDB and read the data frame.
mongo.connection$insert(sql.df)
## List of 5
## $ nInserted : num 16
## $ nMatched : num 0
## $ nRemoved : num 0
## $ nUpserted : num 0
## $ writeErrors: list()
mongo.df <- mongo.connection$find('{}')
mongo.connection$disconnect()
Printing dataframe
mongo.df
## carrier name
## 1 9E Endeavor Air Inc.
## 2 AA American Airlines Inc.
## 3 AS Alaska Airlines Inc.
## 4 B6 JetBlue Airways
## 5 DL Delta Air Lines Inc.
## 6 EV ExpressJet Airlines Inc.
## 7 F9 Frontier Airlines Inc.
## 8 FL AirTran Airways Corporation
## 9 HA Hawaiian Airlines Inc.
## 10 MQ Envoy Air
## 11 OO SkyWest Airlines Inc.
## 12 UA United Air Lines Inc.
## 13 US US Airways Inc.
## 14 VX Virgin America
## 15 WN Southwest Airlines Co.
## 16 YV Mesa Airlines Inc.
## 17 9E Endeavor Air Inc.
## 18 AA American Airlines Inc.
## 19 AS Alaska Airlines Inc.
## 20 B6 JetBlue Airways
## 21 DL Delta Air Lines Inc.
## 22 EV ExpressJet Airlines Inc.
## 23 F9 Frontier Airlines Inc.
## 24 FL AirTran Airways Corporation
## 25 HA Hawaiian Airlines Inc.
## 26 MQ Envoy Air
## 27 OO SkyWest Airlines Inc.
## 28 UA United Air Lines Inc.
## 29 US US Airways Inc.
## 30 VX Virgin America
## 31 WN Southwest Airlines Co.
## 32 YV Mesa Airlines Inc.
## 33 9E Endeavor Air Inc.
## 34 AA American Airlines Inc.
## 35 AS Alaska Airlines Inc.
## 36 B6 JetBlue Airways
## 37 DL Delta Air Lines Inc.
## 38 EV ExpressJet Airlines Inc.
## 39 F9 Frontier Airlines Inc.
## 40 FL AirTran Airways Corporation
## 41 HA Hawaiian Airlines Inc.
## 42 MQ Envoy Air
## 43 OO SkyWest Airlines Inc.
## 44 UA United Air Lines Inc.
## 45 US US Airways Inc.
## 46 VX Virgin America
## 47 WN Southwest Airlines Co.
## 48 YV Mesa Airlines Inc.
## 49 9E Endeavor Air Inc.
## 50 AA American Airlines Inc.
## 51 AS Alaska Airlines Inc.
## 52 B6 JetBlue Airways
## 53 DL Delta Air Lines Inc.
## 54 EV ExpressJet Airlines Inc.
## 55 F9 Frontier Airlines Inc.
## 56 FL AirTran Airways Corporation
## 57 HA Hawaiian Airlines Inc.
## 58 MQ Envoy Air
## 59 OO SkyWest Airlines Inc.
## 60 UA United Air Lines Inc.
## 61 US US Airways Inc.
## 62 VX Virgin America
## 63 WN Southwest Airlines Co.
## 64 YV Mesa Airlines Inc.
MySQl:
MongoDB: