我正在使用RStudio对BigQuery中存储的大型数据集进行分析。该数据集是私有的,并且来自一家大型零售商,该零售商通过BigQuery与我共享了该数据集以运行所需的分析。 我使用bigrquery库将R连接到BigQuery,但是找不到以下两个问题的答案:
1)当我使用R运行分析时(例如首先使用SELECT获取数据并将其存储在R中的数据框中),那么数据是否以某种方式本地存储在我的笔记本电脑上?该公司担心机密性,可能不希望我将数据存储在本地,而是将其保留在云中。但是那时候甚至可以使用R吗?
2)我的BigQuery免费版本每月有1 TB的数据用于分析。如果我在R中使用select来获取数据,例如,它告诉我“已处理18.1 GB”,但是如果我在R上运行分析而不是在BigQuery上运行查询,是否还会用完1 TB吗?如果不增加成本,那我想知道在BigQuery上而不是在R上运行查询有什么好处,如果前者最终可能会花我钱呢?
最佳 珍妮佛
答案 0 :(得分:1)
据我所知,Google的BigQuery是一个完全基于云的数据库。这意味着,当您在BigQuery上运行查询或报表时,它会在云中发生,而不是在本地发生(即不在R中发生)。这并不是说您的源数据可能是本地数据;实际上,如您所见,您可以从R上传本地数据集。但是,查询将在云中执行,然后将结果集返回给R。
关于您的其他问题,BigQuery表中的源数据将保留在云中,并且您本地拥有的数据的唯一公开对象是您可以从R执行的任何查询的结果。显然,如果您在每个表上运行SELECT *
,就可以看到特定数据库中的所有数据。因此,我不确定您的设置中到底有多少分离的关注点。
关于定价,来自BigQuery documentation on pricing:
查询定价是指运行SQL命令和用户定义函数的成本。 BigQuery使用一种度量标准对查询收费:处理的字节数。无论数据是存储在BigQuery中还是存储在外部数据源(例如Google Cloud Storage,Google Drive或Google Cloud Bigtable)中,您都需要为处理的字节数付费。
因此,您每月可获得1TB的免费数据处理量,之后您将开始计费。
答案 1 :(得分:0)
除非您显式保存到文件,否则R会将数据存储在内存中。但是,由于会话的工作方式,RStudio基本上会保留会话的副本,除非您告知您不这样做,这就是为什么它会在退出切换项目时询问您是否要保存会话的原因。为了确保不存储任何内容,您应该做的事情是当一天结束(或任何其他事情)时,使用“环境”选项卡中的扫帚图标删除环境中的所有内容。或者,您可以分别删除数据框或其他对象rm(obj)
或转到环境窗口,然后将“列表”更改为“网格”,然后选择要删除的单个对象。请参阅此How do I clear only a few specific objects from the workspace?,它解决了我的答案的这一部分(但这不是重复的问题)。