1

ラムダ アーキテクチャに関する Nathan Marz の本を読みました。私は実際にこのソリューションの概念実証を行っています。

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, パスタ) - (2, パスタ2) - (3, パスタ)

数量リクエスト (id_article, quantity) の場合: (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")
          );

問題は、結果をマージする方法がわからないことです。Cascalog と HDFS のデータとの結合を実行するにはどうすればよいですか?

4

1 に答える 1