【发布时间】:2019-03-19 06:26:53
【问题描述】:
有人可以帮我了解哪种方法最有效。
第一个表 users_of_interest_table 有一列 users 有大约 1,000 个唯一用户 ID。
第二个表app_logs_table 有一个users 列和一个app_log 列。该表有超过 10 亿行和超过 1000 万的唯一用户。
为users_of_interest 中的用户获取所有应用日志数据的最有效方法是什么。到目前为止,这是我想出的。
选项 1:使用内部联接
SELECT
u.users, a.app_logs
FROM
users_of_interest_table u
INNER JOIN
app_logs_table a
ON
u.users = a.users
选项 2:Where 子句中的子查询
SELECT
a.users, a.app_logs
FROM
app_logs_table a
WHERE
a.users IN (SELECT u.users FROM users_of_interest_table u)
【问题讨论】:
-
您的用户表的大小是多少?它只包含 Ids 吗?
-
users_of_interest表只包含 Ids 并且有 1000 行。
标签: hive inner-join where