首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon Athena上的重复数据删除

Amazon Athena上的重复数据删除
EN

Stack Overflow用户
提问于 2017-08-13 18:02:11
回答 4查看 8.1K关注 0票数 3

我们有流媒体应用程序在S3上存储数据。S3分区可能具有重复的记录。我们通过雅典娜查询S3中的数据。

有没有一种方法可以从S3文件中删除重复项,这样我们在从雅典娜查询时就不会得到它们?

EN

回答 4

Stack Overflow用户

发布于 2017-08-15 15:27:58

您可以编写一个小的bash脚本,该脚本执行hive/spark/presto查询来读取dat,删除重复项,然后将其写回S3。

我不使用雅典娜,但是因为它只是一个Presto,所以我假设你可以在presto中做任何能做的事情。

bash脚本执行以下操作:

  • 读取数据并应用不同的筛选器(或要应用的任何逻辑),然后将其插入到另一个位置。

例如:

代码语言:javascript
复制
CREATE TABLE mydb.newTable AS
SELECT DISTINCT *
FROM hive.schema.myTable

  • 如果是周期性任务,则INSER OVERWRITE会更好。
  • 不要忘记设置配置单元数据库的位置,以便轻松标识数据目标。

语法参考:https://prestodb.io/docs/current/sql/create-table.html

使用aws s3 CLI command.

  • Move

删除旧数据目录中的新数据

现在,您可以安全地读取相同的表,但记录将是不同的。

票数 2
EN

Stack Overflow用户

发布于 2019-08-31 03:11:11

请使用CTAS:

代码语言:javascript
复制
CREATE TABLE new_table
WITH (
      format = 'Parquet',
      parquet_compression = 'SNAPPY')
AS SELECT DISTINCT *
FROM old_table;

参考:https://docs.aws.amazon.com/athena/latest/ug/ctas-examples.html

票数 1
EN

Stack Overflow用户

发布于 2017-08-16 11:26:53

我们不能删除重复的雅典娜,因为它在文件上工作,它有工作绕过。

因此,在s3中如何从文件中删除重复记录,最简单方法是使用外壳脚本。

使用distinct选项编写select查询。

注意:两者都是成本高昂的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45659174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档