向資料庫查詢 - 數據交點

文章推薦指數: 80 %
投票人數:10人

如何啟動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



請為這篇文章評分?