sql—在两个大数据流中查找客户条目的有效方法

klh5stk1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(229)

如果我有一个每天能给我1000万条记录的数据流(流a),还有一个每天能给我10亿条记录的数据流(流b),那么什么是查看数据中是否存在重叠的有效方法?
更具体地说,如果流a中有一个客户访问了一个网页,而同一个客户访问了流b中的另一个网页,我如何判断该客户同时访问了这两个网页?
我最初的想法是将记录放入关系数据库并进行连接,但我知道这是非常低效的。
什么是更有效的方法?如何使用hadoop或spark这样的工具来实现这一点?

xpszyzbs

xpszyzbs1#

连接应该是处理此问题的有效方法。您应该对这两个数据集进行排序,或者在customerid上建立一个索引(索引将按customerid排序)。由于索引,sql引擎将知道集合是有序的,并且应该能够非常有效地进行连接。
如果您只查找customerid同时位于这两个位置的示例,那么它可能是一个sql查询,如下所示:

Select Distinct A.CustomerID 
From A 
  Inner Join B 
    on A.CustomerID = B.CustomerID

相关问题