Я перехожу с MySQL на Amazon DynamoDB и Elastic MapReduce.Hive несколько подзапросов и групп по
У меня есть запрос ниже, который работает с MySQL, и у меня есть одна и та же таблица на улье и нужны те же результаты, что и для MySQL (представления продукта для last_week, last_month и last_year).
SELECT product_id,
SELECT COUNT(product_id) from dev_product_views_hive as P2 where P2.product_id=P.product_id and created >= DATE_SUB(NOW(), INTERVAL 1 WEEK) as weekly,
SELECT count(product_id) from dev_product_views_hive as P3 where P3.product_id=P.product_id and created >= DATE_SUB(NOW(), INTERVAL 1 MONTH) as monthly,
SELECT count(product_id) from dev_product_views_hive as P4 where P4.product_id=P.product_id and created >= DATE_SUB(NOW(), INTERVAL 1 YEAR) as yearly
from dev_product_views_hive as P group by product_id;
Я понял, как получить результаты, например за прошлый месяц с улья:
SELECT product_id, COUNT(product_id) as views from dev_product_views_hive WHERE created >= UNIX_TIMESTAMP(CONCAT(DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP()), 31)," ","00:00:00")) GROUP BY product_id;
, но мне нужно группированных результаты, как я получаю с MySql:
product_id views_last_week views_last_month views_last_year
2 564 2460 29967
4 980 3986 54982
Можно сделать это с улей?
Спасибо заранее,
амер
Вы пробовали? –
Да, всегда получайте ошибку синтаксического анализа, я не знаю, как правильно записать эти подзапросы MySQL в hiveql. Hiveql не такой синтаксис, как MySQL. – trkich
hive ql поддерживает подзапросы только в разделе –