我阅读了 Nathan Marz 关于 lambda 架构的书。我实际上是在证明这个解决方案的概念。
我很难构建我的 Jcascalog 查询。
这是我们感兴趣的节俭模式中的一部分:
union ArticlePropertyValue {
1: decimal quantity,
2: string name;
}
union ArticleID {
1: int id;
}
struct ArticleProperty {
1: required ArticleID id;
2: required ArticlePropertyValue property;
}
union DataUnit {
1: TicketProperty ticket_property;
2: ArticleProperty article_property;
}
我用 Pail 将一些数据存储到文件夹中:/home/tickets
现在我想对这个数据提出一个请求:我想得到按文章名称分组的数量总和。所以首先我需要得到名称,然后是数量。对于每个我可以获得文章的 ID。
例如,对于名称 request(id_article, name),我将得到以下结果:(1, pasta) - (2, pasta2) - (3, pasta)
对于数量请求(id_article,数量):(1, 2) - (2, 1) - (3, 1)
Tap source = splitDataTap("/home/florian/Workspace/tickets");
Api.execute(
new StdoutTap(),
new Subquery("?name", "?sum")
.predicate(source, "_", "?data")
.predicate(new ExtractArticleName(), "?data")
.out("?id", "?name")
.predicate(new ExtractArticleQuantity(), "?data")
.out("?id", "?quantity")
.predicate(new Sum(), "?quantity")
.out("?sum")
);
问题是我不怎么合并结果?如何在 HDFS 中加入 Cascalog 和数据?