使用 R 完成基于 Amazon Athena 交互分析

阅读数:4 2019 年 12 月 26 日 13:47

使用 R 完成基于 Amazon Athena 交互分析

R 是用于统计分析、绘图的语言和操作环境, 是一个用于统计计算和统计制图的优秀工具。RStudio 是为 R 语言设计的一种跨平台集成开发环境,包括可定制化的软件界面以及同团队开发的一系列数据可视化与出版工具。RStudio 有免费的自由软件版本及收费的专业版本,并分为在本地电脑上执行的桌面版和与在服务器上执行而可由浏览器连接后使用的服务器版。

Amazon Athena 是一种交互式查询服务,可直接查询 S3 中存储的数据,这使得使用标准 SQL 分析数据变得轻松,而无需管理基础设施。企业数据可存储在高效、廉价、可靠的 S3 中,并构成企业单一数据源。R 与 Amazon Athena 及 S3 的集成为数据科学家提供了构建交互式分析解决方案的强大平台。

在本博文中,将通过在 Amazon EC2 实例上运行的 R/RStudio Server 与 Athena 相连接,之后通过浏览器连接 RStudio Server 执行 SQL 语句查询 S3 内的数据。

1. 先决条件

在开始之前,请完成以下步骤。

1.1. 权限设置

通过 Amazon 的 Identity and Access Management (IAM),让您的 AWS 账户管理员为您的 AWS 账户授予访问 Athena 所需的权限。通过将关联的 Athena 策略附加到 IAM 中的数据科学家用户组来完成。

使用 R 完成基于 Amazon Athena 交互分析

使用 R 完成基于 Amazon Athena 交互分析

需要为新建的 IAM role“rstatus”添加 3 个 policy: AWSQuicksightAthenaAccess、AmazonS3FullAccess、AmazonAthenaFullAccess

1.2. 准备访问 aws 资源需要的凭证

准备 RStudio Server 访问 aws 资源所需要的凭证。

在“IAM-Users- 具体用户 -security_credentials”处

详见: https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-access-keys-best-practices.html

1.3. 存储桶设置

建立 Amazon S3 中的存储目录 s3://athena-gdelt/output,Athena 将使用它来查询数据集并存储结果,另外建立 mid 文件夹来存放中间数据。

1.4. Amazon Athena 设置

设置 Athena 的 workgroup,点击 get start 进入 Athena 后,点击右上角的 Workgroup: primary, 选择 primary 后,点击”View detail”, 之后选择 edit,在“Query result location” 选择上节建立的存储桶目录,保存退出。

使用 R 完成基于 Amazon Athena 交互分析

使用 R 完成基于 Amazon Athena 交互分析


注意:在本博文中,所有 AWS 服务都创建在 us-west-2 区域。使用区域表来检查 Athena 在其他区域的可用性。

如果使用另外一个区域的 Athena,需要在另外一个区域重新建立 S3 存储桶和目录,并设置给 Athena 使用,否则后续查询可能会报错。

2. 在 EC2 上设置 R 和 RStudio Server 及相关环境

可以手工安装 RStudio Server 的开源版本,也可以在 aws marketplace 里面选择 RStudio Server Pro 版本( https://aws.amazon.com/marketplace/pp/RStudio-RStudio-Server-Pro-for-AWS/B06W2G9PRY ),下面介绍开源版本的安装。

2.1. 配置 EC2 实例

进入 EC2 服务页面,launch instance,选择 “Amazon Linux 2 AMI (HVM), SSD Volume Type – ami-0c5204531f799e0c6”操作系统,Amazon linux 官方提供了常用的管理工具以及 R 的安装包,使用比较简便。

使用 R 完成基于 Amazon Athena 交互分析


选择“Instance Type”,实例类型和相关使用场景的一般对应如下:

col 1 col 2 col 3
实例类型 使用场景 多用户支持

T2.micro

t3.medium

t3.large | 免费实例,功能体验

日常开发

小数据集分析 | 不推荐

不推荐

不推荐
m5.large

m5.2xlarge

m5.12xlarge | 日常开发和分析

并发分析

并发分析及大数据集 | 不推荐

推荐

推荐
g3s.xlarge

g3.8xlarge | R-GPU 开发

R-GPU 大数据分析 | 不推荐

推荐

使用 R 完成基于 Amazon Athena 交互分析


选择 m5.2xlarge

配置实例,其中注意网络部分的配置,并选择之前建好的 IAM role:“rstatus”,其他选择默认即可。

使用 R 完成基于 Amazon Athena 交互分析


在配置存储步骤中,适当增加 Root 卷空间,此处选择 80GB。

安全组配置

新建安全组 Rstudio,开放 Rstudio Server 需要使用的 8787 端口,JDBC 连接需要使用的 444 端口,SSH 使用的 22 端口,如使用 Shiny Server 配置 3838 端口。

使用 R 完成基于 Amazon Athena 交互分析


最后选择密钥,选择”launch instance”后回到 EC2 控制台,在实例就绪后,ssh 登录到 EC2 实例。

2.2. 安装 R 和 RStudio Server

首先安装 R,使用 Amazon Linux extras 提供的 R3.4,相关的依赖也会一并安装,具体说明见下面链接。

https://aws.amazon.com/cn/amazon-linux-2/faqs/#Amazon_Linux_Extras

配置 Java 环境:

Bash

复制代码
$ sudo amazon-linux-extras install R3.4
$ sudo /usr/sbin/alternatives --config java

选择 2:

Bash

复制代码
“/usr/lib/jvm/java-11-amazon-corretto.x86_64/bin/java

使用 R 完成基于 Amazon Athena 交互分析

Bash

复制代码
$ sudo R CMD javareconf

安装 RStudio Server

详细介绍参考: https://rstudio.com/products/rstudio/#rstudio-server``

Bash

复制代码
$ wget https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.2.5019-x86_64.rpm
$ sudo yum install rstudio-server-rhel-1.2.5019-x86_64.rpm

添加登录 Rstudio 的用户并设置密码

Bash

复制代码
$ sudo useradd rstudio
$ sudo passwd rstudio

检查 rstudio-server 的状态, 应该为 active(running)

使用 R 完成基于 Amazon Athena 交互分析


配置 Rstudio server 访问 aws 资源需要的凭证 .Renviron,详见 1.2

Bash

复制代码
$ sudo vi /home/rstudio/.Renviron
ATHENA_USER=< AWS_ACCESS_KEY_ID >
ATHENA_PASSWORD=< AWS_SECRET_ACCESS_KEY>

本文转载自 AWS 技术博客。

原文链接: https://amazonaws-china.com/cn/blogs/china/complete-amazon-athena-based-interaction-analysis-using-r/

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布