2016-08-05 60 views
1

假設我們有一個事件流與具有以下兩個屬性的事件:在fieldsgrouping上使用多個字段會發生什麼?

{"first_name", "last_name"} 

,我們分區上使用這兩種屬性fieldsgrouping

​​

處理螺栓由兩個任務並行和以下事件按指定順序進入流:

1: {"foo", "foo"} 
2: {"bar", "bar"} 
3: {"foo", "bar"} 

現在事件1和事件2分別進入任務1和2,事件3會發生什麼?如果它轉到任一任務,它將打破字段組屬性。

風暴如何處理這個?或者我不明白fieldsgrouping正確嗎?


編輯:

想到這裏多一點,我可能誤解fieldsgrouping的行爲。如果兩個字段被認爲耦合,則事件1,2和3每個都被視爲一個獨立的分區。解決問題。

但是,這並不是立即從官方documentation明確我可以找到fieldsgrouping

如果有人能指點我更詳細的文檔。

+1

你自己的觀察是正確的。三個元組分別屬於不同的「邏輯分區」,因爲它們在所有字段上都不相同。因此,沒有問題。我也認爲,文檔是準確的(可能並不完整):「字段分組:該字段被分組中指定的字段分區[...]」它表示「字段」,即複數。即使該示例僅使用一個字段進行分組,如果外插此,很明顯對於多個分組字段,如果兩個元組屬於同一組/分區,則所有字段值必須相同。 –

回答

1

你是按名字分組的名字,意思是不是所有具有相同名字的元組都會在同一個目的地上結束,但是具有相同名字和姓氏的元組將會。

Storm Applied(3.5.3節)有一個很好的例子,它基於按時間間隔和城市對街道入住進行分組,而不是僅使用時間間隔。基本上,後者是在相同的時間間隔內創建所有街頭簽到的瓶頸,最終以同樣的方式結束,不管城市如何。通過將城市添加到字段分組中,他們保留了將所有街道入住簽到的要求,並同時消除了瓶頸。

相關問題