我正在使用 AWS Personalize,其中一项服务配额是“至少 1000 条记录,其中至少包含 25 个唯一用户,每个用户至少有 2 条记录”,我知道我的原始数据有这些数字,但我正在尝试找到一种方法来保证这些数字将始终得到满足,即使查询是由其他人在未来运行的。
最简单的方法是使用完整的数据集,但现在我们正在努力实现 POC,所以这并不是我的第一选择。我只计算出现次数就涵盖了“每个记录两个”部分,但我不知道如何保证最少 25 个用户。
重要的是要说我的数据在保存时不会以任何方式打乱。
我的查询
SELECT C.productid AS ITEM_ID,
A.userid AS USER_ID,
A.createdon AS "TIMESTAMP",
B.fromaddress_countryname AS "LOCATION"
FROM A AS orders
JOIN B AS sub_orders ON orders.order_id = sub_orders.order_id
JOIN C AS order_items ON orders.order_id = order_items.order_id
WHERE orders.userid IN (
SELECT orders.userid
FROM A AS ORDERS
GROUP BY orders.userid
HAVING count(*) > 2
)
LIMIT 10
因为我在 AWS Athena 中,所以我使用 LIMIT 来查询一个子集。