考虑以下2个数据流
1. Front End Box ----> S3 Bucket-1
2. Front End Box ----> Kafka --> Storm ---> S3 Bucket-2
来自框的日志正在转移到S3存储桶。要求是用流2替换流1。
现在需要在Bucket-1
和Bucket-2
之间验证数据,以保证可以使用流量2。
尝试了以下技术选项:
1. Python : boto3 Apis
2. Qubole
两者都在有限的数据集上工作,qubole比python脚本更具可扩展性。但是它仍然需要很长时间才能完成(从未完成,不得不在隔夜运行后杀死)。我们在这里看到了五亿条款。
查询
SELECT
count(*)
FROM
TableA LEFT OUTER JOIN TableB
ON TableA.id = TableB.id
WHERE
TableB.id IS NULL
AND TableA.id IS NOT NULL
问题
对工具的任何建议,如何更快地实现这一目标?
有没有办法避免加入?
答案 0 :(得分:0)
最后能够避免加入。以下解决方案正常
select sum_cat, count(*)
FROM
(
select id, sum(category) as sum_cat
from
(
select distinct id, 1 as category
from Table-1
UNION ALL
select distinct id, 1 as category
from Table-2
UNION ALL
select distinct id, 2 as category
from Table-3
UNION ALL
select distinct id, 2 as category
from Table-4
)all_ids
group by log_id
)a
group by sum_cat;
解释
Table-1
和Table-2
中的数据与Table-3
和Table-4
category
category = 1
,而B集记录有category = 2