Amazon Athena 上的重复数据删除

Sou*_*abh 5 hive presto amazon-athena

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

有没有办法从 S3 文件中删除重复项,以便我们在从 Athena 查询时不会得到它们?

Ahm*_*mal 2

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

我不使用 Athena,但由于它只是 presto,所以我假设您可以做任何可以在 Presto 中完成的事情。

bash 脚本执行以下操作:

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

例如 :

CREATE TABLE mydb.newTable AS
SELECT DISTINCT *
FROM hive.schema.myTable
Run Code Online (Sandbox Code Playgroud)
  • 如果是重复性任务,那么 INSER OVERWRITE 会更好。
  • 不要忘记设置 hive 数据库的位置,以便轻松识别数据目的地。

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

现在您可以安全地读取同一个表,但记录将不同。