R+SQL Server的大數據管理

2021-01-21 統計諮詢

在學習和使用R語言的過程中,在數據文件的選擇方面,由於csv文件在各大資料庫軟體以及統計分析軟體都有很好的兼容性,所以一直被廣泛地用作數據儲存傳輸。筆者最近手頭上有一個10多G的csv,大概有2千5百萬條的記錄,這真的讓我以及我的R語言感到亞歷山大。Excel不用說更是打不開了(Excel 2003及以前的版本最大僅支持65,536行),SAS軟體花費一些時間勉強能打開,但是對某些中文的格式不兼容(特別是某些變量包含逗號的時候)。該怎麼辦呢?這是大數據的問題嗎?怎麼那麼不小心就被我碰上了?


今天我們就談談「大數據」這個老話題。自2012年以來,大數據(Big Data)已經上過《紐約時報》《華爾街日報》的專欄封面,進入美國白宮官網的新聞,在國內更是被炒得熱火朝天,網際網路、工商業、高校等都紛紛進行探索討論。大數據戰略甚至成為了我們國家「十三五」十四大戰略之一。


雖然「大數據」的概念很寬泛,是對規模龐大的數據對象,及其處理和應用活動的統一,但我們今天就淺談一下它的「大」。大數據的「大」,一般是指在10TB規模左右大型數據集,但在實際應用中,很多用戶把多個數據集放在一起,已經形成了PB級的數據量;例如,百度的首頁導航每天需要提供的數據超過1.5PB,這些數據如果列印出來將超過5千億張A4紙。也曾經有報導,截至20世紀末,人類生產的所有印刷材料的數據量僅為200PB。好像有點扯遠了~


處理這些TB、PB級的數據,我們不妨試試強大的SQL Server。它是是微軟公司推出的一個具有使用方便、可伸縮性好、與相關軟體集成程度高等優點的全面的關係型資料庫管理平臺,可以滿足數據爆炸時代和數據驅動應用程式的需求。


令人興奮的是,微軟在2016年6月正式發布的SQL Server 2016將支持R語言編程(包括大數據的算法)。據了解,這次更新是微軟對Revolution Analytics公司收購的結果,該公司此前的產品Revolution R就是一款強大的大數據分析工具。所以說SQL Server 2016代表了微軟向大數據及機器學習領域邁出的第一步。


感興趣的朋友可以下載試用一下(當然,以上所說都是商業收費軟體)。為了初探一下SQL Server強大的數據管理功能,下面簡單介紹一下通過R語言對SQL Server資料庫進行讀寫。使用測試系統環境為win 10 家庭中文版、SQL Server 2008 R2、R 3.3.3。


(1)SQL Server的下載安裝。網上有很多相關的資源,本公眾號主頁菜單「資源共享」下的「實用軟體」也有收錄。當然大家也可以下載使用精簡版的MySQL(免費軟體)。安裝下載好之後,如下圖添加名為「test」的資料庫。



(2)將test資料庫添加到計算機的ODBC數據源管理器中。在控制面板的「管理工具」中打開「ODBC 數據源(64 位)」,如下圖設置好,其他步驟默認設置即可。




(3)在R軟體中通過RODBC包對test資料庫進行數據的保存和讀取。測試數據選擇我們常用的R軟體自帶鳶尾花(iris)數據。


install.packages("RODBC")#安裝RODBC包

library(RODBC)#加載RODBC包

test=odbcConnect("test")#連接到SQL Server中的test資料庫設置

data(iris)#提取iris數據

sqlSave(test,iris)#把iris數據保存到test資料庫

iris.test=sqlQuery(test,"select * from iris")#讀取資料庫中的iris數據

str(iris.test); str(iris)#比較兩個數據來源的數據



就這樣,我們在使用R語言的強大的數據整理和分析功能的同時,藉助SQL Server強大的數據存儲功能,可以說正如微軟一樣向大數據及機器學習領域又邁出一步。


歡迎關注【統計諮詢】微信公眾號!

相關焦點

  • SQL Server 首次登陸 Linux 平臺
    近年來, SQL Server 正在一直演化,除了想一改 DMS(資料庫管理系統)的角色,還想介入到數據分析、機器學習和數據科學領域。2017 年 4 月份, SQL Server 發布了一個重要組件,支持在 SQL Server 中用 Python 運行機器學習負載。
  • server sql 作業 使用專題及常見問題 - CSDN
    use masterGO/* --開啟sql server代理sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Agent XPs', 1; GO RECONFIGURE GO*/--定義創建作業
  • 微軟 SQL Server 2016 SP1 發布
    資料庫克隆 - 克隆資料庫是一個新的 DBCC 命令,允許 DBA 並支持團隊通過克隆的模式和元數據來解決現有的生產資料庫的沒有數據統計的故障。克隆資料庫並不意味著在生產環境中使用。以編程方式標識 LPIM 到 SQL 服務帳戶 - DMV sys.dm_os_sys_info 中的新 sql_memory_model、sql_memory_model_desc 列,允許
  • SQL Server 2016新亮點全揭秘
    【IT168 資訊】微軟即將在6月1號發布的SQL Server 2016可以為數據提供更好的安全性,並且能夠支持混合雲,能夠查詢非結構化的數據源。  很多企業發現在他們的資料庫裡有很大一部分的數據是結構化和非結構化的交織在一起的。在這種情況下,對於數據安全的要求就越來越高。
  • SQL Server2008中的9種數據挖掘算法淺析
    【IT168 技術文檔】  在sql server2008中提供了9種常用的數據挖掘算法,這些算法用在不同數據挖掘的應用場景下,下面我們就各個算法逐個分析討論。  1.決策樹算法  決策樹,又稱判定樹,是一種類似二叉樹或多叉樹的樹結構。
  • SQL Server 管理常用的SQL和T-SQL
    把一臺伺服器上的資料庫用戶登錄信息備份出來可以用add_login_to_aserver腳本 查看某資料庫下,對象級用戶權限 sp_helprotect 7.查看連結伺服器 sp_helplinkedsrvlogin 查看遠端資料庫用戶登錄信息 sp_helpremotelogin 8.查看某資料庫下某個數據對象的大小 sp_spaceused @objname 還可以用sp_toptables過程看最大的N(默認為50)個表,查看某資料庫下某個數據對象的索引信息: sp_helpindex
  • SQL-server資料庫管理系統試卷及答案A
    學年第二學期《SQL-server 2000資料庫管理系統》試卷(A)使用班級:A、資料庫管理系統 B、資料庫應用系統C、相關的計算機系統 D、各類相關人員5、資料庫系統階段,數據( )。
  • 大數據分析工程師入門9-Spark SQL
    本文為《大數據分析師入門課程》系列的第9篇,在本系列的第8篇-Spark基礎中,已經對Spark做了一個入門介紹,在此基礎上本篇拎出Spark SQL,主要站在使用者的角度來進行講解,需要注意的是本文中的例子的代碼均使用Scala語言。
  • 面面俱到:SQL SERVER 2008主數據管理
    使其各子系統均按照統一的標準使用公共數據。使企業在信息化形成一個整體。有一個統一的標準。根據企業戰略分析的需要,在主數據的基礎上,將數據進行梳理,將其放到數據倉庫中,便可以進行數據挖掘。因此主數據服務是大企業成長路上的必經之路,也是對企業決策支持的重要保障。比如,企業需要在組織機構、人員、客戶、銀行、產品編碼、會計科目等信息建立不同的應用。
  • 詳解SQL Server 2008滑動窗口的管理
    【IT168 技術文檔】每個月都會有新數據添加到龐大的Orders數據表中,此時如果只對這一個表進行操作,則更新索引的過程將嚴重製約性能並產生大量碎片。為了進行優化,我們將通過獨立的兩個表進行配合,即當有新數據產生時,將舊數據從分區表中切換出來,然後將新數據添加到分區表中。
  • 對SQL Server跨文件組的表進行分區
    實現可調窗口應用場景將數據切換到存檔表。  先決條件  在開始此實驗之前,您必須:  使用 Transact-SQL 在 Microsoft® SQL Server® 資料庫中創建資料庫對象的經驗。
  • 這個函數讓SQL效率提升99%
    正文共:2335 字 4 圖 預計閱讀時間:5 分鐘我是firewang: 用技術讓數據說話,用數據讓你我進化。簡介窗口函數(window function), 也可以被稱為 OLAP函數 或 分析函數。
  • 教你配置管理SQL Server 2008數據倉庫
    【IT168 技術文檔】在SQL Server 2008中有很多組件可以進行性能數據收集。為了設定收集數據的類型以及收集計劃,數據收集器需要使用管理數據倉庫。管理數據倉庫也是一個關係型資料庫,但在創建該資料庫時很多默認設置需要進行修改,在我們後面的實驗中將深入討論。
  • R語言SQL管理資料庫的方法
    #使用SQL語句操作數據框,需要加載的程序包sqldf,tcltk,使用iris數據集以及演示library(sqldf)library(tcltk)head(iris)#了解數據集由5各變量組成#取出前幾行a1r <- head(iris,10)#一般方法
  • SQL Server 2008 R2數據管理新利器剖析
    【IT168專稿】我們在SQL Server 2008 R2數據管理新紀元一文中介紹了SQL Server 2008 R2的管理利器——SQL Server Utility。這一次我們將深入剖析這一管理工具。
  • 實現SQL Server到DB2連接伺服器很簡單
    不同資料庫平臺的互連一般稱之為資料庫的異構服務,現在各大資料庫之間都可以實現這樣的異構互連,只是各廠商的具體實現技術不一樣,如:在SQL SERVER裡面叫做LINKED SERVER,通過ODBC實現與其它資料庫的互聯。
  • 深入對比數據科學工具箱: SparkR vs Sparklyr
    Parquet 是一種高性能列式存儲文件格式,比CSV文件強在內建索引,可以快速查詢數據,目前普遍應用在模型訓練過程。它要求先定義數據源表,再通過一系列dplyr操作惰性求值,直到執行 head() 或者 collect() 等觸發函數,才會執行計算過程,並將數據返回。如此設計是因為大數據集如果立即處理是無法優化數據處理流程的,通過惰性求值的方式,系統會在遠程機器上自動優化數據處理流程。
  • 最詳細的SQL注入相關的命令整理
    11、創建表、播入數據和讀取數據的方法? 創建表:' and 1=1 union select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))--?
  • SQL Server跨伺服器操作資料庫?其實很簡單! - Excel教案
    今天給大家來分享一下跨伺服器操作資料庫,還是以SQL Server的管理工具(SSMS)為平臺進行操作。什麼是跨伺服器操作?跨伺服器操作就是可以在本地連接到遠程伺服器上的資料庫,可以在對方的資料庫上進行相關的資料庫操作,比如增刪改查。
  • c使用sql server專題及常見問題 - CSDN
    為php添加 sqlsrv 擴展去微軟官網 https://www.microsoft.com/en-us/download/ 搜索php ,點擊 Microsoft Drivers for PHP for SQL Server 下載最新版的 sqlsrvXX.exe( 我下載的是SQLSRV32.EXE )運行解壓, 得到一堆DLL, 選取適合自己