《R數據科學實戰:工具詳解與案例分析 》 —1.5 DBI—數據庫數據查詢、下載
1.5 DBI—數據庫數據查詢、下載

在使用R語言和數據庫進行交互之前,讀者們需要明確一個問題—是否有必要使用R來處理數據。簡單的數據處理任務,比如數據查詢、篩選和簡單運算,相應的數據庫語言應該是比R語言更好的選擇。不過當你對數據庫語言并不熟悉,而且需要R語言強大的統計分析和繪圖環境來處理數據庫中的數據時,DBI包絕對是一條捷徑。因為Hadley大神再一次拯救了“小白”。有了DBI包,不需要了解數據庫交互中各個環節繁瑣的理論知識和技巧,只需要明白如何通過DBI包來建立數據庫連接、查詢和讀取數據即可。不過,這個包也并非***,想要無障礙地與數據庫進行交互,以下6點是必備的前提。
1)已知數據庫的類型,例如,MySQL、postgresql。
2)已經安裝了相應數據庫類型的R包。
3)數據庫服務器地址。
4)數據庫名稱。
5)接入數據庫的權限、賬號和密碼。
6)已安裝dplyr包用來本地化數據庫中的數據。
使用R與數據庫進行交互的一般流程為:建立連接→發送查詢請求→獲取相關數據。下面,我們用postgresql的數據庫作為代碼示例。首先加載三個必備程序包,其中,DBI和PostgreSQL將用來建立與數據庫的連接以及發送請求。dplyr則是用來將數據庫中的數據保存到本地。加載代碼具體如下:
> library(DBI)
> library(dplyr)
> library(RPostgreSQL)
不同類型的數據庫可能需要調整dbConnect中的參數,具體調整方法讀者可以參見幫助文檔。數據庫服務器地址、名稱、權限等信息需要輸入到單引號中,請一定留意是否有空格符號不小心被復制或者因誤操作輸入其中。如果擔心密碼泄露的話,則可以使用RStudio中自帶的密碼彈窗功能。dbListTables函數可以用來查詢數據庫中的詳細內容,并以字符串向量的格式返回,如果數據庫中無內容,則會返回空值。調整dbConnect參數的示例代碼如下:
> db_connect <- dbConnect(
RPostgreSQL::PostgreSQL(),
dbname = '數據庫名稱',
host = '服務器地址',
user = '用戶名',
password = "密碼")
> dbListTables(db_connect)
## [1] "MetaData" "Table1"??? "Table2"
優化后的tbl函數可以直接調取已經建立連接的數據庫中的指定數據,并保存為tibble格式的數據集(參見第2章)。下面的代碼中,逗號后面的參數也可以用“Table1”或“Table2”來表示:
> tbl(src = db_connect, dbListTables(db_connect)[1])
數據庫交互的有關內容完全可以獨立成書,這里我們只介紹了最簡單的基本用法,以使大家對如何使用R來查詢數據庫有個最基本的印象。
數據挖掘 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。