问题描述
目前我们使用 orc file format 将传入流量存储在 s3 中用于欺诈检测分析
我们确实选择了 orc 文件格式,原因如下
- 压缩
- 以及使用 athena 查询数据的能力
问题:
这不是问题,但随着数据每天显着增长~2GB every day
。下载 10Gb 文件读取、写入和上传是一个非常昂贵的过程
问题: 有没有办法使用另一种文件格式,它也提供附加/插入功能,并且可以被 athena 用来查询?
从这个 article 它说 avro
是文件格式,但不确定
- 是否可以使用 athena 进行查询?
- 还有其他问题吗?
Note: My skill on big data technologies is on beginner level
解决方法
如果您的表未分区,只需将新的 orc 文件复制 (aws s3 cp
) 到表的目标 s3 路径,它们将立即可用于通过 Athena 进行查询。
如果您的表是分区,您可以将新文件复制到与您的特定分区对应的路径。在将新文件复制到分区结束时,您需要将该分区添加或更新到 Athena 的 Metastore。
例如,如果您的表由 date
分区,那么您需要运行此查询以确保您的分区被添加/更新:
alter table dataset.tablename add if not exists
partition (date = YYYYMMDD)
location 's3://your-bucket/path_to_table/date=YYYYMMDD/'