我在S3上有一堆文件,只包含MD5,每行一个 . 我创建了一个AWS Athena表来对MD5运行重复数据删除查询 . 在这些文件和表格中总共有数亿个MD5 .
雅典娜表创建查询:
CREATE EXTERNAL TABLE IF NOT EXISTS database.md5s (
`md5` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'field.delim' = ','
) LOCATION 's3://bucket/folder/';
以下是我尝试过的所有“重复数据删除”查询(这些查询应该都是相同的):
SELECT DISTINCT md5
FROM md5s;`
SELECT md5
FROM md5s
GROUP BY md5;
SELECT md5
FROM md5s
GROUP BY DISTINCT md5;
SELECT DISTINCT md5
FROM md5s
GROUP BY DISTINCT md5;
来自Athena的所有结果输出.csvs仍然重复MD5 . 是什么赋予了?
Is Athena Doing Partial Deduplication? - 更奇特的是,如果我在Athena中执行 COUNT(DISTINCT md5)
,我获得的计数与导出时返回的行数不同 .
雅典娜
-
COUNT(DISTINCT md5)
:97,533,226
出口不同MD5的 -
记录:97,581,616
-
结果导出中有14,790个重复项,因此 both the COUNT(DISTINCT) counts are bad, and the results export are bad.
Is Athena CREATING Duplicates on Export? - 情节变粗 . 如果我在Athena表中查询Athena结果导出中重复的MD5之一,我只从表中获得一个结果/行 . 我使用 LIKE
查询对此进行了测试,以确保空格不会导致问题 . 这意味着Athena正在向导出添加重复项 . 结果中至少有两个相同的MD5 .
select
md5,
to_utf8(md5)
from md5s
where md5 like '%0061c3d72c2957f454eef9d4b05775d7%';
Are Athena's Counts & Results File Both Wrong? - 我使用MySQL重复了这些相同的记录,最终获得了97,531,010个独特的MD5 . Athenas计数和结果详情如下 .
雅典娜
-
COUNT(DISTINCT md5)
:97,533,226
出口不同MD5的 -
记录:97,581,616
-
结果导出中有14,790个重复项,所以似乎 both the COUNT(DISTINCT) counts are bad, and the results export are bad.
I think this is an Athena bug - 我是开发团队来解决这个问题,并且会更新这篇文章 .
以下是其他用户看到相同问题的相关AWS论坛帖子 . https://forums.aws.amazon.com/thread.jspa?messageID=764702
1 回答
我已经与AWS团队确认,这是在提出问题时AWS Athena的一个已知错误 . 我不确定这是否已经解决 .