使用 Athena 查询多个 S3 存储桶的最佳方式

问题描述 投票:0回答:2

我的组织将长期数据存储在多个 S3 存储桶中。鉴于不同区域的数据格式是一致的,我想创建一个可以使用 Athena 查询的表,而不是指定特定的存储桶。

最初(基于这里之前的问题)我认为执行此操作的方法是创建两个表,然后创建一个主表,例如:

*英国用户。 -> 英国的 s3 存储桶 *americanUsers -> 美国的 s3 存储桶

然后使用 SQL 创建主表

CREATE TABLE users
AS SELECT * britishUsers UNION SELECT * americanUsers;

我的问题是,我相信这些类型的表 (CTAS) 将数据复制到另一个 S3 位置,从隐私角度来看,这是有问题的。我也不确定随着更多数据添加到辅助表中,该表是否会更新。视图是这里前进的最佳方式吗?

amazon-web-services amazon-s3 amazon-athena
2个回答
1
投票

创建视图作为选择确实可以避免复制。数据也将保持最新。

隐私问题可能会带来额外的要求(数据局部性除外),例如匿名化和同意管理。恕我直言,这会导致创建一个特定的表和仅您可以使用的数据的副本。您必须定期更新此表以包含最近的更新。您需要捕获记录中的最新更新以跟踪更改。


0
投票

我同意@MarcC的回应。我使用类似的模式将历史数据与当前数据与全部并集连接起来。这不是性能最佳的选项,但使用视图可以根据需要提供格式化或转换数据的额外好处。

© www.soinside.com 2019 - 2024. All rights reserved.