《R数据科学实战:工具详解与案例分析 》 —1.5 DBI—数据库数据查询、下载

举报
华章计算机 发表于 2019/11/09 18:16:16 2019/11/09
【摘要】 本节书摘来自华章计算机《R数据科学实战:工具详解与案例分析》 一书中第一章,第1.5节,作者刘 健 邬书豪 。

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来查询数据库有个最基本的印象。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。