向資料庫查詢 - 數據交點
文章推薦指數: 80 %
如何啟動Google Cloud Platform 的BigQuery. 假如需要建構巨量資料的雲端關聯式資料庫,Google 的BigQuery 服務由於對Python 與R 的支援良好,受到許多 ...
出版書籍
初心者的Python機器學習攻略
進擊的資料科學輕鬆學習R語言
Medium專欄
好學校線上課程
SQL的五十道練習
如何成為資料分析師
訂閱電子報
進擊的資料科學關於資料科學的前世今生如何獲取資料載入常見檔案格式向資料庫查詢如何啟動AmazonWebService的MySQL如何建立資料:MySQL如何讀取資料:MySQL如何啟動GoogleCloudPlatform的BigQuery如何建立資料:BigQuery如何讀取資料:BigQuery如何啟動GoogleFirebase如何建立資料:Firebase如何讀取資料:Firebase小結延伸閱讀靜態擷取網頁內容動態擷取網頁內容如何掌控資料認識常見的資料結構基礎資料框操作技巧進階資料框操作技巧關於文字如何探索資料基礎視覺化視覺化中的元件其他視覺化類型如何預測資料尋找迴歸模型的係數迴歸模型的評估尋找羅吉斯迴歸的係數分類模型的評估如何溝通資料輕量級標記式語言互動式圖表及R語言互動式圖表及Python#向資料庫查詢Theworld’smostvaluableresourceisnolongeroil,butdata.TheEconomist獲取資料在資料科學專案中扮演發起點,如果這個資料科學專案目的是協助我們制定資料驅動的策略(data-drivenstrategy),而非倚賴直覺,那麼為專案細心盤點資料來源與整理獲取方法,可以為將來的決策奠基穩固的基礎。
資料常見的來源包含三種:檔案資料庫網頁資料擷取在載入常見檔案格式中,我們簡介過如何將四種常見的檔案格式:CSV、TXT、Excel試算表與JSON載入Python與R語言,接著我們要探討另外一種常見的資料來源:資料庫;一但對於資料建立、讀取、更新與刪除(俗稱的CRUD:Create、Read、Update與Delete)需要規模化管理時,資料科學團隊就會建立資料庫來因應。
這個小節我們關注常見的雲端SQL與NoSQL資料庫服務。
#如何啟動AmazonWebService的MySQL透過下列步驟可以在AmazonWebService啟動一個MySQL資料庫。
前往AmazonWebService的首頁並點選登入按鈕使用自己的帳號密碼登入點選服務下拉式選單,選擇Database底下的RDS(RelationalDatabaseService)服務點選新增一個資料庫元件選擇MySQL作為資料庫系統後按下一步我們使用AmazonWebService提供最低規格資料庫12個月的免費試用,因此規格設定都依照預設,只需要輸入資料庫元件的命名、使用者名稱與密碼,記住這裡所輸入的使用者名稱以及密碼,在未來使用Python與R連線的時候會用到,然後按下一步為之後要使用的資料庫命名,這會是一個空的資料庫,裡面的資料表格要稍待由Python與R建立順利啟動MySQL資料庫檢視資料庫元件詳細資訊,取得連線的資料庫元件位址資訊(Endpoint)新增一個寬鬆的InboundRule(0.0.0.0/0)讓後續連線比較簡單(強烈不建議在正式環境中做這樣的設定)#如何建立資料:MySQL目前資料庫裡面沒有任何資料表格,於是我們首先要做的事情是透過Python與R語言與資料庫連線,連線成功以後嘗試將慣常使用的資料框(DataFrame)匯入資料庫中,以供後續查詢使用;接著讓我們將1995至1996年的芝加哥公牛隊球員名單以及2007至2008年的波士頓塞爾提克隊球員名單與其基本資訊分別以Python和R語言在資料庫建立出表格。
#Python我們需要sqlalchemy與pymysql建立Python與MySQL資料庫的連結,然後還需要pandas來建立資料庫表格。
開始之前我們得先在終端機安裝好需要的模組:pipinstall--upgradesqlalchemypymysqlpandas
1透過sqlalchemy的create_engine()函數建立Python與資料庫的連結引擎,在這個連結引擎中我們指定使用pymysql的連接器(connector),接著是透過pandas的to_sql()方法將資料框建立成為資料庫中的表格。
建立連結引擎,最重要的要素是:資料庫元件位址(host):即資料庫元件位址資訊(Endpoint)通訊埠(port):MySQL預設為3306資料庫名稱(dbname):在啟動MySQL資料庫元件時的設定使用者名稱(user):在啟動MySQL資料庫元件時的設定使用者密碼(password):在啟動MySQL資料庫元件時的設定importpandasaspd
fromsqlalchemyimportcreate_engine
csv_url="https://storage.googleapis.com/ds_data_import/chicago_bulls_1995_1996.csv"
chicago_bulls=pd.read_csv(csv_url)
host="YOURHOST"#輸入自己的AWSRDSEnpoint位址
port=3306
dbname="YOURDBNAME"#輸入自己設定的資料庫名稱
user="YOURUSERNAME"#輸入自己設定的使用者名稱
password="YOURPASSWORD"#輸入自己設定的使用者密碼
engine=create_engine('mysql+pymysql://{user}:{password}@{host}:{port}/{dbname}'.format(user=user,password=password,host=host,port=port,dbname=dbname))
chicago_bulls.to_sql('chicago_bulls',engine,index=False,if_exists='replace')
12345678910111213#R語言使用DBI套件提供的dbConnect()函數建立R與MySQL資料庫的連結以及同樣源自DBI的dbWriteTable()函數將資料框建立成為資料庫中的表格;建立與資料庫的連結同樣也需要資料庫元件位址(host)、通訊埠(port)、資料庫名稱(dbname)、使用者名稱(user)與使用者密碼(password)這幾個重要元素;記得都要將這幾個資訊更換成為自己在設定資料庫元件時所輸入的對應資訊。
#install.packages("RMySQL")
library(DBI)
csv_url
1成功啟動以後,就可以匯入以dict型別儲存的1995至1996年的芝加哥公牛隊基本資訊。
fromfirebase_adminimportdb
fromrequestsimportget
json_url='https://storage.googleapis.com/ds_data_import/chicago_bulls_1995_1996.json'
chicago_bulls_dict=get(json_url).json()
root=db.reference()
root.child('chicago_bulls').push(chicago_bulls_dict)
1234567#R語言使用fireData套件提供的upload()函數匯入以list型別儲存的2007至2008年波士頓賽爾提克隊基本資訊,函數中需要輸入Firebase網址作為參數。
#install.packages(c("devtools","jsonlite"))
#devtools::install_github("Kohze/fireData")
library(fireData)
library(jsonlite)
json_url
延伸文章資訊
- 1向資料庫查詢 - 數據交點
如何啟動Google Cloud Platform 的BigQuery. 假如需要建構巨量資料的雲端關聯式資料庫,Google 的BigQuery 服務由於對Python 與R 的支援良好,受到...
- 2什麼是SQL?什麼是NOSQL? 用簡單範例看一下他們的差異
SQL (結構化查詢語言) 是用於和關聯式資料庫溝通的語言,它用在資料庫中 ... 套件,以及使用特定的函式操作,但如果是使用另一個NoSQL資料庫,像是Firebase,那就需要 ...
- 3[資料庫] SQL 與NoSQL 的用法 - 資訊吐司- 痞客邦
不是要來取代SQL,反而是合作,非關聯式資料庫處理大數據很有效率。 常見的: MongoDB、Firebase 等等。 採集Collection = 資料表Table.
- 4瞭解firebase JSON 資料庫| 他山教程,只選擇最優質的自學材料
在我們弄清楚程式碼之前,我覺得有必要了解資料如何儲存在firebase 中。與關聯式資料庫不同,firebase 以JSON 格式儲存資料。將關聯式資料庫中的每 ...
- 5Firebase 設定與測試 - 人生海海
最近才知道Google 很佛心的提供了免費的資料庫Firebase 供大眾使用。它是JSON 格式的資料庫,不是傳統的關聯式表格,很容易提供網頁或APP 儲存資料, ...