8 database

我们作为数据分析师有必要和数据库打交道吗?实际工作中,数据量达到一定的程度,当你开始需要使用 Excel PowerPivot 做数据透视表13时,你就必须开始和数据库打交道,因为这时数据源超过Excel上限了,已经没办法承接。

现实中的数据大部分都是脏数据,我们需要从数据库获取数据并清洗,再使用R、 Excel 、Power BI、tebleau等工具连接使用。那我们使用什么工具完成ETL14呢?经过实践发现,使用R语言完成该过程对我们个人用户来说足够使用。

即使你暂时没有接触使用数据库,也建议你未来用数据库存储数据,尤其是当有一定数据量时;在我最开始接触数据时,数据一般保存在Excel中,那时候数据量大概在50万行左右,当表格中sumifs等公式较多时,Excel表格将会很卡顿,甚至发送崩溃。当需要大批量vlookup时,在Excel中操作也是一件很痛苦的事情。

目前工作中打交道数据库主要是MSSQL,Oracle,MySQL等,R中与数据库交互的包主要有odbc,DBI,RODBC,RMySQL,ROracle等包。本文主要从以上数据库介绍记录“R与数据库的连接交互”,主要分为:

  • 安装 SQL Server 数据库

  • odbc 包介绍

  • DBI 包介绍

  • 其它R包介绍

  • 与数据库交互常见问题

  • dbplyr 包介绍

  • 参考资料

DBI库在查询或上传工作中效率比RODBC高,特别数据量较大时,上传效率差异巨大,具体差异请点击查看详情。所以建议采用DBI包,但是RODBC对中文支持友好,在练习阶段可以尝试使用,加深印象。

RSQLite是练习使用R中的数据库的最简单方法,因为程序包本身包含SQLite,无需任何外部软件。


  1. PowerPivot 是一种数据建模技术,用于创建数据模型,建立关系,以及创建计算。 可使用 PowerPivot 处理大型数据集,构建广泛的关系,以及创建复杂(或简单)的计算,这些操作全部在高性能环境中和所你熟悉的 Excel 内执行。↩︎

  2. Extract-Transform-Load,将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。↩︎