在我的EC2实例中,从公共S3实例读取CSV文件对于RShiny应用程序来说很慢

时间:2017-12-14 20:54:41

标签: r amazon-s3 amazon-ec2 shiny

我正在构建一个我正在EC2实例中托管的Web应用程序。它是一个RShiny应用程序,我已经在我的实例上安装了ShinyServer。虽然我正在考虑切换到数据库(这需要我学习如何设置数据库,并将其连接到我的代码),但目前该应用程序需要加载我保存在S3存储桶中的6个CSV文件。这些文件是公开的,所以我可以阅读它们。

以下是将CSV文件读入应用程序的两种不同方法:

library(RCurl) 
library(readr)

my.df <- read_csv('mycsvfile.csv')
myy.df <- read.csv(
    textConnection(
        getURL("https://s3.amazonaws.com/mybucket/mycsvfile.csv")),
   sep=",", 
   header = TRUE, 
   stringsAsFactors = FALSE)

第一种方法使用readr的read_csv函数。我在本地计算机上使用此功能,但由于我的EC2实例中没有CSV文件,因此我无法将其用于托管应用程序。第二种方法使用RCurl从S3存储桶中获取文件。

我的问题是这个 - 在本地阅读需要<1秒,而从S3获取需要大约7-10秒。对于6个CSV文件,此问题很快就会增加。除了在我的EC2实例上创建数据库之外,我是否有更快捷的方式将CSV文件读入我的托管应用程序?

谢谢!

编辑 - 我正在将文件写入实例。我可能会设置一个git repo,它将实例与我的本地机器连接起来,以使其更好地工作。

0 个答案:

没有答案