2016-06-23 4 views
0

私はWebトラフィック分析のためにApache Flinkを使い始めました。/windowApache Flinkチェーンオペレータ

タイムウィンドウを使用して2つ以上のメトリックを要約する方法が見つかりませんでした。 はfollwing例では、コードは、単語の用法を集約 が、私は言葉を集約する何が必要な場合は、書籍、サイトでは、などの名前を付ける...(ストリーム上の1以上メートル)

val keyValuePair = wordsStream.keyBy(0).timeWindow(Time.seconds(15)) 

答えて

2

私は理解していればストリームのさまざまな属性をグループ化する必要があります。このような場合のために、あなたは簡単なストリーム複製することができます:ストリーム上で複数の操作を呼び出す

val keyValuePair = wordsStream.keyBy(0).timeWindow(Time.seconds(15)) 
val keyValuePair2 = wordsStream.keyBy(1).timeWindow(Time.seconds(15)) 
// and so forth 

を(すなわち、wordsStream)あなたは、同じデータを複数の計算を実行することができます。

+0

ありがとうございます! Flinkで作業するときのベストプラクティスですか?ストームと比較すると2本のボルトでスパウトが似ていますか? –

+0

はい、exacltyです。そしてそれはベストプラクティスの問題ではありません - それを行う唯一の方法です。 :) –

+0

こんにちは@ MatthiasJ.Sax、私はTupple3(key1、key2、count)を持っていると、それらをkey0とkey1(keyBy(x).sum(3).print())私があなたの答えから理解しているように、出力にはまだkey0、key1、countなどの組み合わせが示されていました。意味:このSQLと同等のコードを取得しようとしています。select key0、count(*)、not:select key0、key1、count(*).....意味がありますか? –