写点什么

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

  • 2019 年 12 月 26 日
  • 本文字数:2113 字

    阅读完需:约 7 分钟

使用 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 中的数据科学家用户组来完成。




需要为新建的 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” 选择上节建立的存储桶目录,保存退出。






注意:在本博文中,所有 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 的安装包,使用比较简便。





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


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


T2.micro


t3.medium


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


日常开发


小数据集分析 | 不推荐


不推荐


不推荐


m5.large


m5.2xlarge


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


并发分析


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


推荐


推荐


g3s.xlarge


g3.8xlarge | R-GPU 开发


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


推荐





选择 m5.2xlarge


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





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


安全组配置


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





最后选择密钥,选择”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”
复制代码



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)





配置 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/


2019 年 12 月 26 日 13:47298

评论

发布
暂无评论
发现更多内容

kudmp介绍和安装

唯爱

Weex开发:页面跳转以及Android端多应用选择窗口的处理

brave heart

android Vue 大前端 跨平台 Weex

10分钟了解Flink

代码诗人

幂等问题及解决方案

Joker

幂等 解决方案

Nginx 基础原理和命令行的真相

子杨

nginx 运维

终于找到了一篇文章!通俗地讲解计算机工作原理

图灵社区

cpu 存储器 编译器 计算机工作原理

GrowingIO 大数据多维分析自动化测试实践

GrowingIO技术专栏

大数据 自动化测试 parewise

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

Spring源码

云淡风轻

spring 源码

工厂模式(三)泛型工厂的概念以及示例代码

LSJ

2020智源-京东多模态对话挑战赛开战 产学研联合推动AI技术发展

DT极客

Nginx 入门及命令行操作

子杨

nginx 运维

备案问题汇总

云也退

网站 备案

从位图到布隆过滤器

王坤祥

位图 布隆过滤器

Mysql常用删除方式比较

云也退

MySQL

我们可能都误解了什么是情商

董一凡

情绪

图片与标题的Ken Burns动效

寇云

CSS css3

Django ListView DetailView等基于类的视图如何添加装饰器?

BigYoung

Python django LiveView 装饰器

奈学干货分享:分布式CAP实践分析

奈学教育

分布式

神经网络中为什么不能将权重初始值设置为一样的值

王坤祥

神经网络 学习

为什么你要学习 Go?

司徒公子

编程语言 谷歌Google Go 语言

Vol.10 Java 25岁了!

pyfn2030

Java jdk 编程语言 Java25周年

卧槽,接到一个阎王的需求

码农神说

程序员

「首度揭秘」大规模HPC生产环境 IO 特征

焱融科技

sds io 高性能 存储 焱融科技

你有信息焦虑症吗?

Neco.W

学习 创业 知识体系

基于 Markdown 的中文文档排版规范

Murphy

markdown 排版规范 GitHub GFM 物联网学前班

ARTS_20200529

凌轩

Java ARTS 打卡计划

阿里巴巴为什么让初始化集合时必须指定大小?

王磊

Java 性能

产业区块链:产业是本质,区块链是工具

CECBC

新基建 CECBC 区块链技术 中国电子

架构师训练营0期开营

刁架构

架构师

Android 通过opencv实现人脸识别,追踪

sar

android OpenCV 人脸识别

使用 R 完成基于 Amazon Athena 交互分析_文化 & 方法_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章