考虑下面的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脚本更具可伸缩性。但仍然需要很长的时间去做(从来没有完成,不得不杀后运行一夜)。我们在这里看到了5亿个条目。
查询
SELECT
count(*)
FROM
TableA LEFT OUTER JOIN TableB
ON TableA.id = TableB.id
WHERE
TableB.id IS NULL
AND TableA.id IS NOT NULL
问题
有没有关于更快实现这一目标的工具和方法的建议?
有什么办法可以避免加入吗?
1条答案
按热度按时间s2j5cfk01#
终于可以避免加入了。下面的解决方案很好
解释
将其与来自的数据进行数据比较
Table-1
以及Table-2
有了它Table-3
以及Table-4
所以我们分配一个category
从这组表中标识集合a中的所有ID都将
category = 1
b组的记录category = 2
现在我们求类别值的和,并按ID分组。所以当id在两个集合中都存在时,它的值为3。仅在集合a中存在的ID的值为1,这是丢失的记录。