"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕" рд╣реЕрд▓реЛ, рдЦрдмрд░реЛ рд░рд╣рд┐рд╡рд╛рд╕реА! рдереНрд░реЗрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рдордЬреВрди рдШреЗрдК рдЗрдЪреНрдЫрд┐рдгрд╛рд▒реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рд╣реЗ рдкреБрд╕реНрддрдХ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рд╡рд┐рддрд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдордЬреВрди рдШреЗрддрд▓реНрдпрд╛рдиреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдлреНрдХрд╛ рдЖрдгрд┐ рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдд рдорджрдд рд╣реЛрдИрд▓. рдХрд╛рдлреНрдХрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рддрдГ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЫрд╛рди рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА: рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рддреЗ рд╕рд░реНрд╡ рд╕рд╛рдВрдЧреЗрди. рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдордиреЛрд░рдВрдЬрдХ рд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХрд╕реЗ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдЕрдиреБрднрд╡реА рдХрд╛рдлреНрдХрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдЖрдгрд┐ рдирд╡рд╢рд┐рдХреНрдпрд╛ рдпрд╛ рдкреБрд╕реНрддрдХрд╛рдд рд╢рд┐рдХрддреАрд▓. рд╕реАрд░рд┐рдпрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рд░рдЦреНрдпрд╛ рд╕рдВрдХрд▓реНрдкрдирд╛рдВрд╢реА рдЖрдзреАрдЪ рдкрд░рд┐рдЪрд┐рдд рдЕрд╕рд▓реЗрд▓реЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЖрдгрд┐ рдкреНрд░рдЧрдд Java рдбреЗрд╡реНрд╣рд▓рдкрд░ рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреА рдХреМрд╢рд▓реНрдпреЗ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕ рд╢рд┐рдХрддреАрд▓. рдкреБрд╕реНрддрдХрд╛рдЪрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб Java 8 рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ Java 8 lambda рдПрдХреНрд╕реНрдкреНрд░реЗрд╢рди рд╕рд┐рдВрдЯреЕрдХреНрд╕рдЪрд╛ рд▓рдХреНрд╖рдгреАрдп рд╡рд╛рдкрд░ рдХрд░рддреЛ, рддреНрдпрд╛рдореБрд│реЗ lambda рдлрдВрдХреНрд╢рдиреНрд╕ (рдЕрдЧрджреА рджреБрд╕рд░реНтАНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрддрд╣реА) рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рдЙрддрд╛рд░рд╛. рел.рей. рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рд╡рд┐рдВрдбреЛ рдСрдкрд░реЗрд╢рди

рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд, рдЖрдореНрд╣реА рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреЗ рд╕рд░реНрд╡рд╛рдд рдЖрд╢рд╛рджрд╛рдпрдХ рднрд╛рдЧ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдвреЗ рдЬрд╛рдК. рдЖрддрд╛рдкрд░реНрдпрдВрдд рдЖрдореНрд╣реА рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреНрдпрд╛ рдЦрд╛рд▓реАрд▓ рдкреИрд▓реВрдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЖрд╣реЗ:

  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯреЛрдкреЛрд▓реЙрдЬреА рддрдпрд╛рд░ рдХрд░рдгреЗ;
  • рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд░рд╛рдЬреНрдп рд╡рд╛рдкрд░рдгреЗ;
  • рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХрдиреЗрдХреНрд╢рди рдХрд░рдд рдЖрд╣реЗ;
  • рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рд╡рд╛рд╣ (KStream) рдЖрдгрд┐ рдЕрджреНрдпрддрди рдкреНрд░рд╡рд╛рд╣ (KTable) рдордзреАрд▓ рдлрд░рдХ.

рдкреБрдвреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдордзреНрдпреЗ рдЖрдкрдг рд╣реЗ рд╕рд░реНрд╡ рдШрдЯрдХ рдПрдХрддреНрд░ рдЖрдгреВ. рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЖрдгрдЦреА рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп, рдЖрдкрдг рд╡рд┐рдВрдбреЛрд┐рдВрдЧрдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдЬрд╛рдгреВрди рдШреНрдпрд╛рд▓. рдЖрдордЪреЗ рдкрд╣рд┐рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рд╛рдзреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдЕрд╕реЗрд▓.

рел.рей.рез. рдЙрджреНрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░рд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдЯреЙрдХ рд╡рд┐рдХреНрд░реАрдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг

рдкреНрд░рд╡рд╛рд╣рд┐рдд рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рдЧрдЯ рдХрд░рдгреЗ рд╣реА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд. рд╡реИрдпрдХреНрддрд┐рдХ рдиреЛрдВрджреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдВрдЪреА рддрдкрд╛рд╕рдгреА рдЕрдиреЗрдХрджрд╛ рдЕрдкреБрд░реА рдЕрд╕рддреЗ. рдбреЗрдЯрд╛рдордзреВрди рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд╣рд┐рддреА рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рддреНрдпрд╛рдВрдирд╛ рдЧрдЯрдмрджреНрдз рдХрд░рдгреЗ рдЖрдгрд┐ рдПрдХрддреНрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рддреБрдореНрд╣реА рдПрдХрд╛ рджрд┐рд╡рд╕рд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкрд╛рд░реНтАНрдпрд╛рдЪрд╛ рдкреЛрд╢рд╛рдЦ рдШрд╛рд▓рд╛рд▓ рдЬреНрдпрд╛рд▓рд╛ рдЕрдиреЗрдХ рдЙрджреНрдпреЛрдЧрд╛рдВрдордзреАрд▓ рдХрдВрдкрдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдорднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рдд:, рдкреНрд░рддреНрдпреЗрдХ рдЙрджреНрдпреЛрдЧрд╛рдд рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╢реЗрдЕрд░ рд╡рд┐рдХреНрд░реА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкрд╛рдЪ рдХрдВрдкрдиреНрдпрд╛рдВрдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ.

рдбреЗрдЯрд╛рдЪреЗ рдЗрдЪреНрдЫрд┐рдд рдлреЙрд░реНрдордордзреНрдпреЗ (рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рдд рдмреЛрд▓рдгреЗ) рднрд╛рд╖рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрд╢рд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдЕрдиреЗрдХ рдЪрд░рдгрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓.

  1. рдХрдЪреНрдЪрд╛ рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдорд╛рд╣рд┐рддреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгрд╛рд░рд╛ рд╡рд┐рд╖рдп-рдЖрдзрд╛рд░рд┐рдд рд╕реНрд░реЛрдд рддрдпрд╛рд░ рдХрд░рд╛. рд╢реЗрдЕрд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдкреНрд░рдХрд╛рд░рд╛рддреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рд╕реНрдЯреЙрдХ рдЯреНрд░реЕрдиреНрд╕реЕрдХреНрд╢рди рдкреНрд░рдХрд╛рд░рд╛рддреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЕрдк рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓. рдореБрджреНрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рд╕реНрдЯреЙрдХ рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рд╡рд┐рдХреНрд░реА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рд╡рд┐рдХрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рдорднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдмрджреНрджрд▓ рдбреЗрдЯрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  2. рд╕реНрдЯреЙрдХ рдЪрд┐рдиреНрд╣рд╛рдиреБрд╕рд╛рд░ рд╢реЗрдЕрд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдбреЗрдЯрд╛ рдЧрдЯ. рдПрдХрджрд╛ рдЪрд┐рдиреНрд╣рд╛рдиреБрд╕рд╛рд░ рдЧрдЯрдмрджреНрдз рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рд╣рд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЙрдХ рд╡рд┐рдХреНрд░реА рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреНрдпрд╛ рдЙрдк-рдЯреЛрдЯрд▓рдордзреНрдпреЗ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА KStream.groupBy рдкрджреНрдзрдд KGroupedStream рдкреНрд░рдХрд╛рд░рд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ. рдЖрдгрд┐ KGroupedStream.reduce рдкрджреНрдзрддреАрд╡рд░ рдХреЙрд▓ рдХрд░реВрди рддреБрдореНрд╣реА KTable рдЙрджрд╛рд╣рд░рдг рдорд┐рд│рд╡реВ рд╢рдХрддрд╛.

KGroupedStream рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛рдп рдЖрд╣реЗ

KStream.groupBy рдЖрдгрд┐ KStream.groupByKey рдкрджреНрдзрддреА KGroupedStream рдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛рдд. KGroupedStream рд╣реЗ рдХреА рджреНрд╡рд╛рд░реЗ рдЧрдЯрдмрджреНрдз рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдШрдЯрдирд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪреЗ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЖрд╣реЗ. рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдереЗрдЯ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдЬрд┐рдмрд╛рдд рд╣реЗрддреВ рдирд╛рд╣реА. рддреНрдпрд╛рдРрд╡рдЬреА, KGroupedStream рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдиреЗрд╣рдореА KTable рдордзреНрдпреЗ рд╣реЛрддреЛ. рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рдиреНрд╕рдЪрд╛ рдкрд░рд┐рдгрд╛рдо KTable рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдЖрдгрд┐ рддреЗ рд░рд╛рдЬреНрдп рд╕реНрдЯреЛрдЕрд░ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╣реЗ рд╢рдХреНрдп рдЖрд╣реЗ рдХреА рдкрд░рд┐рдгрд╛рдореА рд╕рд░реНрд╡ рдЕрджреНрдпрддрдиреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдЦрд╛рд▓реА рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рдд рдирд╛рд╣реАрдд.

KTable.groupBy рдкрджреНрдзрдд рдПрдХ рд╕рдорд╛рди KGroupedTable рдкрд░рдд рдХрд░рддреЗ - рдЕрджреНрдпрддрдирд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪреЗ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдХреА рджреНрд╡рд╛рд░реЗ рдкреБрдиреНрд╣рд╛ рдЧрдЯрдмрджреНрдз рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдЪрд▓рд╛ рдереЛрдбрд╛ рдмреНрд░реЗрдХ рдШреЗрдК рдЖрдгрд┐ рдЕрдВрдЬреАрд░ рдкрд╛рд╣реВ. 5.9, рдЬреЗ рдЖрдореНрд╣реА рдХрд╛рдп рд╕рд╛рдзреНрдп рдХреЗрд▓реЗ рддреЗ рджрд░реНрд╢рд╡рд┐рддреЗ. рд╣реЗ рдЯреЛрдкреЛрд▓реЙрдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдкрд░рд┐рдЪрд┐рдд рдЕрд╕рд╛рд╡реЗ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЖрддрд╛ рдпрд╛ рдЯреЛрдкреЛрд▓реЙрдЬреАрдЪрд╛ рдХреЛрдб рдкрд╛рд╣реВ (рд╣реЗ src/main/java/bbejeck/chapter_5/AggregationsAndReducingExample.java рдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.2).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рджрд┐рд▓реЗрд▓рд╛ рдХреЛрдб рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддреЗрдиреЗ рдЖрдгрд┐ рдЕрдиреЗрдХ рдУрд│реАрдВрдордзреНрдпреЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдВрдЪреНрдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдУрд│рдЦрд▓рд╛ рдЬрд╛рддреЛ. рддреБрдореНрд╣рд╛рд▓рд╛ builder.stream рдкрджреНрдзрддреАрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдирд╡реАрди рджрд┐рд╕реВ рд╢рдХрддреЗ: Enum рдкреНрд░рдХрд╛рд░ AutoOffsetReset.EARLIEST (рддреЗрдереЗ рдПрдХ рдирд╡реАрдирддрдо рджреЗрдЦреАрд▓ рдЖрд╣реЗ), Consumed.withOffsetResetPolicy рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реЗ рдореВрд▓реНрдп. рдпрд╛ рдЧрдгрдиреЗрдЪрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ KStream рдХрд┐рдВрд╡рд╛ KTable рд╕рд╛рдареА рдСрдлрд╕реЗрдЯ рд░реАрд╕реЗрдЯ рдзреЛрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рдСрдлрд╕реЗрдЯ рд░реАрд╕реЗрдЯ рдкрд░реНрдпрд╛рдпрд╛рдкреЗрдХреНрд╖рд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрддреЛ.

GroupByKey рдЖрдгрд┐ GroupBy

KStream рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдЧрдЯрдмрджреНрдз рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрди рдкрджреНрдзрддреА рдЖрд╣реЗрдд: GroupByKey рдЖрдгрд┐ GroupBy. рджреЛрдШреЗрд╣реА KGroupedTable рдкрд░рдд рдХрд░рддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдЕрд╕рд╛рд▓ рдХреА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдд рдХрд╛рдп рдлрд░рдХ рдЖрд╣реЗ рдЖрдгрд┐ рдХреЛрдгрддрд╛ рдХрдзреА рд╡рд╛рдкрд░рд╛рдпрдЪрд╛?

GroupByKey рдкрджреНрдзрдд рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ рдЬреЗрд╡реНрд╣рд╛ KStream рдордзреАрд▓ рдХреА рдЖрдзреАрдЪ рд░рд┐рдХрд╛рдореА рдирд╕рддрд╛рдд. рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ, "рдкреБрдиреНрд╣рд╛ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ" рдзреНрд╡рдЬ рдХрдзреАрд╣реА рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдирд╛рд╣реА.

GroupBy рдкрджреНрдзрдд рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЗ рдХреА рддреБрдореНрд╣реА рдЧреНрд░реБрдкрд┐рдВрдЧ рдХреА рдмрджрд▓рд▓реНрдпрд╛ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рдкреБрдирд░реНрд╡рд┐рднрд╛рдЬрди рдзреНрд╡рдЬ рд╕рддреНрдпрд╛рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдЧреНрд░реБрдкрдмрд╛рдп рдкрджреНрдзрддреАрдирдВрддрд░ рдЬреЛрдбрдгреЗ, рдПрдХрддреНрд░реАрдХрд░рдг рдЗ. рдХреЗрд▓реНрдпрд╛рдиреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд░реА-рд╡рд┐рднрд╛рдЬрди рд╣реЛрдИрд▓.
рд╕рд╛рд░рд╛рдВрд╢: рдЬреЗрд╡реНрд╣рд╛ рд╢рдХреНрдп рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА GroupBy рдРрд╡рдЬреА GroupByKey рд╡рд╛рдкрд░рд╛рд╡реЗ.

mapValues тАЛтАЛрдЖрдгрд┐ groupBy рдкрджреНрдзрддреА рдХрд╛рдп рдХрд░рддрд╛рдд рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ, рддрд░ рдЪрд▓рд╛ sum() рдкрджреНрдзрдд (src/main/java/bbejeck/model/ShareVolume.java рдордзреНрдпреЗ рдЖрдврд│рддреЗ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.3) рд╡рд░ рдПрдХ рдирдЬрд░ рдЯрд╛рдХреВрдпрд╛.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
ShareVolume.sum рдкрджреНрдзрдд рд╕реНрдЯреЙрдХ рд╡рд┐рдХреНрд░реА рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреА рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реА рдПрдХреВрдг рд░рдХреНрдХрдо рдкрд░рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдЧрдгрдирд╛ рд╕рд╛рдЦрд│реАрдЪрд╛ рдкрд░рд┐рдгрд╛рдо KTable рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╣реЗ . рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ KTable рдЪреА рднреВрдорд┐рдХрд╛ рд╕рдордЬрд▓реА рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ ShareVolume рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдпреЗрддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рд╕рдВрдмрдВрдзрд┐рдд KTable рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╡реАрдирддрдо рд╡рд░реНрддрдорд╛рди рдЕрдкрдбреЗрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рд╕рд░реНрд╡ рдЕрджреНрдпрддрдиреЗ рдорд╛рдЧреАрд▓ shareVolumeKTable рдордзреНрдпреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрддрд╛рдд, рдкрд░рдВрддреБ рд╕рд░реНрд╡ рдкреБрдвреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд.

рдкреБрдвреЗ, рдпрд╛ KTable рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрдореНрд╣реА рдПрдХрддреНрд░рд┐рддрдкрдгреЗ (рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреБрд╕рд╛рд░) рдкреНрд░рддреНрдпреЗрдХ рдЙрджреНрдпреЛрдЧрд╛рдд рд╕рд░реНрд╡рд╛рдзрд┐рдХ рдкреНрд░рдорд╛рдгрд╛рдд рд╢реЗрдЕрд░реНрд╕рдЪрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкрд╛рдЪ рдХрдВрдкрдиреНрдпрд╛рдВрдХрдбреЗ рдкреЛрд╣реЛрдЪрддреЛ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддреАрд▓ рдЖрдордЪреНрдпрд╛ рдХреГрддреА рдкрд╣рд┐рд▓реНрдпрд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рд░рдЦреНрдпрд╛рдЪ рдЕрд╕рддреАрд▓.

  1. рдЗрдВрдбрд╕реНрдЯреНрд░реАрдиреБрд╕рд╛рд░ рд╡реИрдпрдХреНрддрд┐рдХ рд╢реЗрдЕрд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рдЧрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреБрд╕рд░реЗ рдЧреНрд░реБрдкрдмрд╛рдп рдСрдкрд░реЗрд╢рди рдХрд░рд╛.
  2. рд╢реЗрдЕрд░ рд╡реНрд╣реЙрд▓реНрдпреВрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреЗрдгреЗ рд╕реБрд░реВ рдХрд░рд╛. рдпрд╛рд╡реЗрд│реА рдПрдХрддреНрд░реАрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд-рдЖрдХрд╛рд░рд╛рдЪреА рдкреНрд░рд╛рдзрд╛рдиреНрдп рд░рд╛рдВрдЧ рдЖрд╣реЗ. рдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд-рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд, рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╢реЗрдЕрд░реНрд╕ рд╡рд┐рдХрд▓реНрдпрд╛ рдЧреЗрд▓реЗрд▓реНрдпрд╛ рдлрдХреНрдд рдкрд╛рдЪ рдХрдВрдкрдиреНрдпрд╛рдЪ рдареЗрд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  3. рдорд╛рдЧреАрд▓ рдкрд░рд┐рдЪреНрдЫреЗрджрд╛рдкрд╛рд╕реВрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡реНрд╣реЕрд▓реНрдпреВрд╡рд░ рд░рд╛рдВрдЧрд╛рдВрдЪрд╛ рдирдХрд╛рд╢рд╛ рдмрдирд╡рд╛ рдЖрдгрд┐ рдЙрджреНрдпреЛрдЧрд╛рдиреБрд╕рд╛рд░ рдХреНрд░рдорд╛рдВрдХрд╛рдиреБрд╕рд╛рд░ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рд╢реАрд░реНрд╖ рдкрд╛рдЪ рд╕реНрдЯреЙрдХ рдкрд░рдд рдХрд░рд╛.
  4. рд╡рд┐рд╖рдпрд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрд╡рд░реВрдкрд╛рдд рд▓рд┐рд╣рд╛.

рдЕрдВрдЬреАрд░ рдордзреНрдпреЗ. рдЖрдХреГрддреА 5.10 рдбреЗрдЯрд╛ рдлреНрд▓реЛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЖрд▓реЗрдЦ рджрд╛рдЦрд╡рддреЗ. рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рджреБрд╕рд░реА рдлреЗрд░реА рдЕрдЧрджреА рд╕реЛрдкреА рдЖрд╣реЗ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рдпрд╛ рджреБрд╕-рдпрд╛ рдлреЗрд░реАрдЪреА рд░рдЪрдирд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕рдордЬрд▓реА рдЖрд╣реЗ, рдЖрдореНрд╣реА рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдХрдбреЗ рд╡рд│реВ рд╢рдХрддреЛ (рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ src/main/java/bbejeck/chapter_5/AggregationsAndReducingExample.java рдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рд╛рдкрдбреЗрд▓) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.4) .

рдпрд╛ рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭрд░рдордзреНрдпреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рдВрдЧ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЖрд╣реЗ. рд╣рд╛ рдПрдХ рд╕рд╛рдиреБрдХреВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╣реЗ рдЬреЛ java.util.TreeSet рд╕рд╛рдареА рдЕреЕрдбреЙрдкреНрдЯрд░ рдЖрд╣реЗ рдЬреЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рдЪреНрдпрд╛ рдЙрддрд░рддреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рд╢реАрд░реНрд╖ N рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рддреБрдореНрд╣реА рдЖрдзреАрдЪ groupBy рдЖрдгрд┐ mapValues тАЛтАЛрдХреЙрд▓ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рддреНрдпрд╛рдордзреНрдпреЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА (рдЖрдореНрд╣реА KTable.toStream рдкрджреНрдзрддреАрд▓рд╛ рдХреЙрд▓ рдХрд░рдд рдЖрд╣реЛрдд рдХрд╛рд░рдг KTable.print рдкрджреНрдзрдд рдмрд╣рд┐рд╖реНрдХреГрдд рдЖрд╣реЗ). рдкрд░рдВрддреБ рддреБрдореНрд╣реА рдЕрджреНрдпрд╛рдк aggregate() рдЪреА KTable рдЖрд╡реГрддреНрддреА рдкрд╛рд╣рд┐рд▓реА рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреНрдпрд╛рд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдереЛрдбрд╛ рд╡реЗрд│ рдШрд╛рд▓рд╡реВ.

рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдд рдЕрд╕реЗрд▓, KTable рд▓рд╛ рдХрд╛рдп рд╡реЗрдЧрд│реЗ рдмрдирд╡рддреЗ рддреЗ рдореНрд╣рдгрдЬреЗ рд╕рдорд╛рди рдХреА рд╕рд╣ рд░реЗрдХреЙрд░реНрдб рдЕрджреНрдпрддрдиреЗ рдорд╛рдирд▓реЗ рдЬрд╛рддрд╛рдд. рдХреЗрдЯреЗрдмрд▓ рдЬреБрдиреА рдиреЛрдВрдж рдмрджрд▓реВрди рдирд╡реАрди рдиреЛрдВрджрд╡рддреЗ. рдПрдХрддреНрд░реАрдХрд░рдг рдЕрд╢рд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рд╣реЛрддреЗ: рд╕рдорд╛рди рдХреА рд╕рд╣ рдирд╡реАрдирддрдо рд░реЗрдХреЙрд░реНрдб рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рд░реЗрдХреЙрд░реНрдб рдпреЗрддреЛ, рддреЗрд╡реНрд╣рд╛ рддреЛ рдЕреЕрдбрд░ рд╡рд╛рдкрд░реВрди FixedSizePriorityQueue рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ (рдПрдХреВрдг рдкрджреНрдзрдд рдХреЙрд▓рдордзреАрд▓ рджреБрд╕рд░рд╛ рдкреЕрд░рд╛рдореАрдЯрд░), рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рдХреАрд╕рд╣ рджреБрд╕рд░рд╛ рд░реЗрдХреЙрд░реНрдб рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡рдЬрд╛рдмрд╛рдХреА рд╡рд╛рдкрд░реВрди рдЬреБрдиреЗ рд░реЗрдХреЙрд░реНрдб рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ (рддрд┐рд╕рд░реЗ рдкреЕрд░рд╛рдореАрдЯрд░ рдПрдХреВрдг рдкрджреНрдзрдд рдХреЙрд▓).

рдпрд╛ рд╕рд░реНрд╡рд╛рдВрдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЖрдордЪрд╛ рдПрдЧреНрд░реАрдЧреЗрдЯрд░, FixedSizePriorityQueue, рд╕рд░реНрд╡ рдореВрд▓реНрдпреЗ рдПрдХрд╛ рдХреАрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ N рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рдЯреНрд░реЗрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯреЙрдХреНрд╕рдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдВрдЪреА рдПрдХрддреНрд░рд┐рдд рд░рдХреНрдХрдо рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдХрдорд┐рдВрдЧ рдПрдВрдЯреНрд░реАрдордзреНрдпреЗ рдЖрддрд╛рдкрд░реНрдпрдВрдд рд╡рд┐рдХрд▓реЗрд▓реНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рдЪреА рдПрдХреВрдг рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рддреЗ. KTable рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯрдЪреНрдпрд╛ рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрд╢рдирдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рдареЗрд╡рддрд╛ рд╕рдзреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛ рдХрдВрдкрдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рдЪреА рд╕рд░реНрд╡рд╛рдзрд┐рдХ рдЦрд░реЗрджреА-рд╡рд┐рдХреНрд░реА рдЖрд╣реЗ рдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рджреЗрдИрд▓.

рдЖрдореНрд╣реА рджреЛрди рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдЧреЛрд╖реНрдЯреА рдХрд░рд╛рдпрд▓рд╛ рд╢рд┐рдХрд▓реЛ:

  • рд╕рд╛рдорд╛рдиреНрдп рдХреА рджреНрд╡рд╛рд░реЗ KTable рдордзреАрд▓ рдореВрд▓реНрдпреЗ рдЧрдЯ рдХрд░рд╛;
  • рдпрд╛ рдЧрдЯрдмрджреНрдз рдореВрд▓реНрдпрд╛рдВрд╡рд░ рд░реЛрд▓рдЕрдк рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдг рдпрд╛рд╕рд╛рд░рдЦреА рдЙрдкрдпреБрдХреНрдд рдХреНрд░рд┐рдпрд╛ рдХрд░рд╛.

рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреВрди рдлрд┐рд░рдгрд╛рд▒реНрдпрд╛ рдбреЗрдЯрд╛рдЪрд╛ рдЕрд░реНрде рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдд рдХреЛрдгрддреА рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╣реА рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд╢реА рдХрд░рд╛рд╡реА рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.

рдЖрдореНрд╣реА рдпрд╛ рдкреБрд╕реНрддрдХрд╛рдд рдЖрдзреА рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рдкреНрд░рдореБрдЦ рд╕рдВрдХрд▓реНрдкрдирд╛ рджреЗрдЦреАрд▓ рдПрдХрддреНрд░ рдЖрдгрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рдкреНрд░рдХрд░рдг 4 рдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ, рд╕реНрдерд╛рдирд┐рдХ рд░рд╛рдЬреНрдп рдХрд┐рддреА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдпрд╛рд╡рд░ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддреАрд▓ рдкрд╣рд┐рд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдиреЗ рд╣реЗ рджрд╛рдЦрд╡реВрди рджрд┐рд▓реЗ рдХреА рд╕реНрдерд╛рдирд┐рдХ рд░рд╛рдЬреНрдп рдЗрддрдХреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдХрд╛ рдЖрд╣реЗтАФрддреБрдореНрд╣реА рдЖрдзреАрдЪ рдХреЛрдгрддреА рдорд╛рд╣рд┐рддреА рдкрд╛рд╣рд┐рд▓реА рдЖрд╣реЗ рдпрд╛рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡реВ рджреЗрддреЗ. рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рд╡реЗрд╢ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдВрдм рдЯрд╛рд│рддреЛ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рддреНрд░реБрдЯреА-рдкреНрд░рддрд┐рд░реЛрдзрдХ рдмрдирд╡рддреЛ.

рдХреЛрдгрддреЗрд╣реА рд░реЛрд▓рдЕрдк рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рди рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рддреБрдореНрд╣реА рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрдЕрд░рдЪреЗ рдирд╛рд╡ рдирдореВрдж рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд░реЛрд▓рдЕрдк рдЖрдгрд┐ рдПрдЧреНрд░реАрдЧреЗрд╢рди рдСрдкрд░реЗрд╢рдиреНрд╕ KTable рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ, рдЖрдгрд┐ KTable рдЬреБрдиреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреНрдпрд╛ рдЬрд╛рдЧреА рдирд╡реАрди рдкрд░рд┐рдгрд╛рдо рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рд╡рд╛рдкрд░рддреЗ. рддреБрдореНрд╣реА рдкрд╛рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕рд░реНрд╡ рдЕрджреНрдпрддрдиреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╡рд░ рдкрд╛рдард╡рд▓реА рдЬрд╛рдд рдирд╛рд╣реАрдд рдЖрдгрд┐ рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХрд╛рд░рдг рдПрдХрддреНрд░рд┐рдд рдСрдкрд░реЗрд╢рдиреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдорд╛рд╣рд┐рддреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рддреБрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдерд┐рддреА рд▓рд╛рдЧреВ рди рдХреЗрд▓реНрдпрд╛рд╕, KTable рд╕рд░реНрд╡ рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рд░реЛрд▓рдЕрдк рдкрд░рд┐рдгрд╛рдо рдлреЙрд░рд╡рд░реНрдб рдХрд░реЗрд▓.

рдкреБрдвреЗ, рдЖрдореНрд╣реА рдСрдкрд░реЗрд╢рдиреНрд╕ рдЬрд╕реЗ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд▓рд╛рд╡рдзреАрдд рдПрдХрддреНрд░рд┐рдд рдХрд░рдгреЗ - рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рдСрдкрд░реЗрд╢рдиреНрд╕ рдкрд╛рд╣реВ.

рел.рей.реи. рд╡рд┐рдВрдбреЛ рдСрдкрд░реЗрд╢рдиреНрд╕

рдорд╛рдЧреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдд, рдЖрдореНрд╣реА рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдХреЙрдиреНрд╡реНрд╣реЛрд▓реНрдпреВрд╢рди рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдг рд╕рд╛рджрд░ рдХреЗрд▓реЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдиреЗ рд╕реНрдЯреЙрдХ рд╡рд┐рдХреНрд░реА рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреЗ рд╕рддрдд рд░реЛрд▓-рдЕрдк рдХреЗрд▓реЗ, рддреНрдпрд╛рдирдВрддрд░ рдПрдХреНрд╕рдЪреЗрдВрдЬрд╡рд░ рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╡реНрдпрд╛рдкрд╛рд░ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдкрд╛рдЪ рд╕рдорднрд╛рдЧрд╛рдВрдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗрд▓реЗ.

рдХрдзреАрдХрдзреА рдЕрд╕реЗ рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреЗ рд░реЛрд▓-рдЕрдк рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ. рдЖрдгрд┐ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХреЗрд╡рд│ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдд рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЧреЗрд▓реНрдпрд╛ 10 рдорд┐рдирд┐рдЯрд╛рдВрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрдиреАрдЪреНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рд╕рд╣ рдХрд┐рддреА рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдпрд╛рдЪреА рдЧрдгрдирд╛ рдХрд░рд╛. рдХрд┐рдВрд╡рд╛ рдЧреЗрд▓реНрдпрд╛ 15 рдорд┐рдирд┐рдЯрд╛рдВрдд рдирд╡реАрди рдЬрд╛рд╣рд┐рд░рд╛рдд рдмреЕрдирд░рд╡рд░ рдХрд┐рддреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдХреНрд▓рд┐рдХ рдХреЗрд▓реЗ. рдПрдЦрд╛рджреЗ ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рдЕрд╕реЗ рдСрдкрд░реЗрд╢рди рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рдХрд░реВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рдард░рд╛рд╡рд┐рдХ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА рд▓рд╛рдЧреВ рд╣реЛрдгрд╛рд░реНтАНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╣ (рдЯрд╛рдЗрдо рд╡рд┐рдВрдбреЛ).

рдЦрд░реЗрджреАрджрд╛рд░рд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдирд┐рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдореЛрдЬрдгреЗ

рдкреБрдвреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рд╡реНрдпрд╛рдкрд╛рд░реНтАНрдпрд╛рдВрдордзреАрд▓ рд╕реНрдЯреЙрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдКтАФрдПрдХрддрд░ рдореЛрдареНрдпрд╛ рд╕рдВрд╕реНрдерд╛ рдХрд┐рдВрд╡рд╛ рд╕реНрдорд╛рд░реНрдЯ рд╡реИрдпрдХреНрддрд┐рдХ рдлрд╛рдпрдирд╛рдиреНрд╕рд░.

рдпрд╛ рдЯреНрд░реЕрдХрд┐рдВрдЧрдЪреА рджреЛрди рд╕рдВрднрд╛рд╡реНрдп рдХрд╛рд░рдгреЗ рдЖрд╣реЗрдд. рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдореНрд╣рдгрдЬреЗ рдмрд╛рдЬрд╛рд░рд╛рддреАрд▓ рдиреЗрддреЗ рдХрд╛рдп рдЦрд░реЗрджреА/рд╡рд┐рдХреНрд░реА рдХрд░рдд рдЖрд╣реЗрдд рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬрд░ рд╣реЗ рдореЛрдареЗ рдЦреЗрд│рд╛рдбреВ рдЖрдгрд┐ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдЧреБрдВрддрд╡рдгреВрдХрджрд╛рд░рд╛рдВрдирд╛ рд╕рдВрдзреА рджрд┐рд╕рд▓реА, рддрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдзреЛрд░рдгрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдгреНрдпрд╛рдд рдЕрд░реНрде рдЖрд╣реЗ. рджреБрд╕рд░реЗ рдХрд╛рд░рдг рдореНрд╣рдгрдЬреЗ рдмреЗрдХрд╛рдпрджреЗрд╢реАрд░ рдЗрдирд╕рд╛рдЗрдбрд░ рдЯреНрд░реЗрдбрд┐рдВрдЧрдЪреА рдХреЛрдгрддреАрд╣реА рд╕рдВрднрд╛рд╡реНрдп рдЪрд┐рдиреНрд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЗрдЪреНрдЫрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдкреНрд░реЗрд╕ рд░реАрд▓рд┐рдЭрд╕рд╣ рдореЛрдареНрдпрд╛ рд╡рд┐рдХреНрд░реАрдЪреНрдпрд╛ рд╕реНрдкрд╛рдЗрдХреНрд╕рдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрдмрдВрдзрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.

рдЕрд╢рд╛ рдЯреНрд░реЕрдХрд┐рдВрдЧрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдЪрд░рдгрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:

  • рд╕реНрдЯреЙрдХ-рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рд╖рдпрд╛рд╡рд░реВрди рд╡рд╛рдЪрдирд╛рд╕рд╛рдареА рдПрдХ рдкреНрд░рд╡рд╛рд╣ рддрдпрд╛рд░ рдХрд░рдгреЗ;
  • рдЦрд░реЗрджреАрджрд╛рд░ рдЖрдпрдбреА рдЖрдгрд┐ рд╕реНрдЯреЙрдХ рдЪрд┐рдиреНрд╣рд╛рдиреБрд╕рд╛рд░ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрдЪреЗ рдЧрдЯрдмрджреНрдз рдХрд░рдгреЗ. groupBy рдкрджреНрдзрддреАрд▓рд╛ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рдиреЗ KGroupedStream рдХреНрд▓рд╛рд╕рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдорд┐рд│рддреЗ;
  • KGroupedStream.windowedBy рдкрджреНрдзрдд рдЯрд╛рдЗрдо рд╡рд┐рдВрдбреЛрдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдкрд░рдд рдХрд░рддреЗ, рдЬреЗ рд╡рд┐рдВрдбреЛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд╡рд┐рдВрдбреЛ рдкреНрд░рдХрд╛рд░рд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рдПрдХрддрд░ TimeWindowedKStream рдХрд┐рдВрд╡рд╛ SessionWindowedKStream рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ;
  • рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рдирд╕рд╛рдареА рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдЦреНрдпрд╛. рд╡рд┐рдВрдбреЛ рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдлреНрд▓реЛ рдард░рд╡рддреЛ рдХреА рдпрд╛ рдореЛрдЬрдгреАрдордзреНрдпреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдХреЙрд░реНрдб рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рддреЗ рдХреА рдирд╛рд╣реА;
  • рд╡рд┐рд╖рдпрд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рд╣рд┐рдгреЗ рдХрд┐рдВрд╡рд╛ рд╡рд┐рдХрд╛рд╕рд╛рджрд░рдореНрдпрд╛рди рддреЗ рдХрдиреНрд╕реЛрд▓рд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреЗ.

рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреЗ рдЯреЛрдкреЛрд▓реЙрдЬреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреЗ рд╕реНрдкрд╖реНрдЯ рдЪрд┐рддреНрд░ рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓. рдЪрд▓рд╛ рдЕрдВрдЬреАрд░ рд╡рд░ рдПрдХ рдирдЬрд░ рдЯрд╛рдХреВрдпрд╛. рел.резрез.

рдкреБрдвреЗ, рдЖрдореНрд╣реА рд╡рд┐рдВрдбреЛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдкрд╛рд╣реВ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"

рд╡рд┐рдВрдбреЛрдЪреЗ рдкреНрд░рдХрд╛рд░

рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдордзреНрдпреЗ рддреАрди рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЦрд┐рдбрдХреНрдпрд╛ рдЖрд╣реЗрдд:

  • рд╕рддреНрд░реАрдп
  • "рдЯрдВрдмрд▓рд┐рдВрдЧ" (рдЯрдВрдмрд▓рд┐рдВрдЧ);
  • рд╕рд░рдХрдгреЗ/рд╣реЙрдкрд┐рдВрдЧ.

рдХреЛрдгрддрд╛ рдирд┐рд╡рдбрд╛рдпрдЪрд╛ рд╣реЗ рддреБрдордЪреНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪреНрдпрд╛ рдЧрд░рдЬрд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ. рдЯрдВрдмрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдЬрдВрдкрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рд╡реЗрд│-рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗрдд, рддрд░ рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрджреНрд╡рд╛рд░реЗ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗрддтАФрд╕рддреНрд░рд╛рдЪрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рдХреЗрд╡рд│ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХрд┐рддреА рд╕рдХреНрд░рд┐рдп рдЖрд╣реЗ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЛ. рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдореБрдЦреНрдп рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА рд╕рд░реНрд╡ рд╡рд┐рдВрдбреЛрдЪреЗ рдкреНрд░рдХрд╛рд░ рдиреЛрдВрджреАрдВрдЪреНрдпрд╛ рддрд╛рд░рдЦреЗрд╡рд░/рд╡реЗрд│реЗрдЪреНрдпрд╛ рд╢рд┐рдХреНрдХреНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рддрд╛рдд, рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд╡реЗрд│реЗрд╡рд░ рдирд╛рд╣реА.

рдкреБрдвреЗ, рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рдЖрдордЪреЗ рдЯреЛрдкреЛрд▓реЙрдЬреА рд▓рд╛рдЧреВ рдХрд░рддреЛ. рд╕рдВрдкреВрд░реНрдг рдХреЛрдб рдлрдХреНрдд рдкрд╣рд┐рд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд рджрд┐рд▓рд╛ рдЬрд╛рдИрд▓; рдЗрддрд░ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛрд╕рд╛рдареА рд╡рд┐рдВрдбреЛ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рд╢рд┐рд╡рд╛рдп рдХрд╛рд╣реАрд╣реА рдмрджрд▓рдгрд╛рд░ рдирд╛рд╣реА.

рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ

рд╕реЗрд╢рди рд╡рд┐рдВрдбреЛ рдЗрддрд░ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЦрд┐рдбрдХреНрдпрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЦреВрдк рд╡реЗрдЧрд│реНрдпрд╛ рдЕрд╕рддрд╛рдд. рддреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрдиреБрд╕рд╛рд░ (рдХрд┐рдВрд╡рд╛ рдЖрдкрдг рдЯреНрд░реЕрдХ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдШрдЯрдХрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрдиреБрд╕рд╛рд░) рд╡реЗрд│реЗрдиреБрд╕рд╛рд░ рдорд░реНрдпрд╛рджрд┐рдд рдирд╛рд╣реАрдд. рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддреЗрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдиреБрд╕рд╛рд░ рдорд░реНрдпрд╛рджрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.

рдЖрдХреГрддреА 5.12 рд╕рддреНрд░ рд╡рд┐рдВрдбреЛрдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ. рд▓рд╣рд╛рди рд╕рддреНрд░ рддреНрдпрд╛рдЪреНрдпрд╛ рдбрд╛рд╡реАрдХрдбреАрд▓ рд╕рддреНрд░рд╛рдд рд╡рд┐рд▓реАрди рд╣реЛрдИрд▓. рдЖрдгрд┐ рдЙрдЬрд╡реАрдХрдбреАрд▓ рд╕рддреНрд░ рд╡реЗрдЧрд│реЗ рдЕрд╕реЗрд▓ рдХрд╛рд░рдг рддреЗ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддреЗрдЪреНрдпрд╛ рджреАрд░реНрдШ рдХрд╛рд▓рд╛рд╡рдзреАрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ. рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рддрд╛рдд, рдкрд░рдВрддреБ рдкреНрд░рд╡реЗрд╢ рдХреЛрдгрддреНрдпрд╛ рд╕рддреНрд░рд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╡рд┐рд╖реНрдЯреНрдпрд╛рдВрдордзреВрди рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдк рд╡рд╛рдкрд░рддрд╛рдд.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"

рд╕реНрдЯреЙрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рд╡рд╛рдкрд░рдгреЗ

рд╡рд┐рдирд┐рдордп рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рд╡рд╛рдкрд░реВ. рд╕рддреНрд░ рд╡рд┐рдВрдбреЛрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реВрдЪреА 5.5 рдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реА рдЖрд╣реЗ (рдЬреА src/main/java/bbejeck/chapter_5/CountingWindowingAndKTableJoinExample.java рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рддреБрдореНрд╣реА рдпрд╛ рдЯреЛрдкреЛрд▓реЙрдЬреАрдордзреАрд▓ рдмрд╣реБрддрд╛рдВрд╢ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЖрдзреАрдЪ рдкрд╛рд╣рд┐рд▓реНрдпрд╛ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдВрдирд╛ рдпреЗрдереЗ рдкреБрдиреНрд╣рд╛ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рдкрд░рдВрддреБ рдпреЗрдереЗ рдЕрдиреЗрдХ рдирд╡реАрди рдШрдЯрдХ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдВрдЪреА рдЖрдкрдг рдЖрддрд╛ рдЪрд░реНрдЪрд╛ рдХрд░реВ.

рдХреЛрдгрддреЗрд╣реА рдЧреНрд░реБрдкрдмрд╛рдп рдСрдкрд░реЗрд╢рди рд╡рд┐рд╢реЗрд╖рдд: рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рди (рдПрдХрддреНрд░реАрдХрд░рдг, рд░реЛрд▓рдЕрдк рдХрд┐рдВрд╡рд╛ рдореЛрдЬрдгреА) рдХрд░рддреЗ. рддреБрдореНрд╣реА рдПрдХрддрд░ рдЪрд╛рд▓реВ рдПрдХреВрдг рдПрдХрддреНрд░реАрдХрд░рдг рдХрд┐рдВрд╡рд╛ рд╡рд┐рдВрдбреЛ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд░реВ рд╢рдХрддрд╛, рдЬреЗ рдПрдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реЗрд│реЗрдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдЦрд╛рддреЗ рд░реЗрдХреЙрд░реНрдб рдШреЗрддреЗ.

рд╕реВрдЪреА 5.5 рдордзреАрд▓ рдХреЛрдб рд╕рддреНрд░ рд╡рд┐рдВрдбреЛрдордзреАрд▓ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдореЛрдЬрддреЛ. рдЕрдВрдЬреАрд░ рдордзреНрдпреЗ. 5.13 рдпрд╛ рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдЯрдкреНрдкреНрдпрд╛рдЯрдкреНрдкреНрдпрд╛рдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

windowedBy(SessionWindows.with(twentySeconds).until(20Minutes)) рд╡рд░ рдХреЙрд▓ рдХрд░реВрди рдЖрдореНрд╣реА 15 рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдЕрдВрддрд░рд╛рд▓ рдЖрдгрд┐ 20 рдорд┐рдирд┐рдЯрд╛рдВрдЪреНрдпрд╛ рд╕рд╛рддрддреНрдп рдЕрдВрддрд░рд╛рд╕рд╣ рд╕рддреНрд░ рд╡рд┐рдВрдбреЛ рддрдпрд╛рд░ рдХрд░рддреЛ. 20 рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдордзреНрдпрд╛рдВрддрд░рд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЪрд╛рд▓реВ рд╕рддреНрд░рд╛рдЪреНрдпрд╛ рд╕рдорд╛рдкреНрддреАрдЪреНрдпрд╛ XNUMX рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдЖрдд рдХрд┐рдВрд╡рд╛ рдЪрд╛рд▓реВ (рд╕рдХреНрд░рд┐рдп) рд╕рддреНрд░рд╛рдордзреНрдпреЗ рдпреЗрдгрд╛рд░реА рдХреЛрдгрддреАрд╣реА рдПрдВрдЯреНрд░реА рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕реЗрд▓.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдкреБрдвреЗ, рд╕рддреНрд░ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдХреЛрдгрддреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рдЖрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ - рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЧрдгрдирд╛ рдХрд░рд╛. рдЗрдирдХрдорд┐рдВрдЧ рдПрдВрдЯреНрд░реА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рд╡рд┐рдВрдбреЛрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдкрдбрд▓реНрдпрд╛рд╕ (рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдкрдЪреНрдпрд╛ рджреЛрдиреНрд╣реА рдмрд╛рдЬреВрд▓рд╛), рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╡реАрди рд╕рддреНрд░ рддрдпрд╛рд░ рдХрд░рддреЛ. рдзрд╛рд░рдгрд╛ рдордзреНрдпрд╛рдВрддрд░ рдореНрд╣рдгрдЬреЗ рдард░рд╛рд╡рд┐рдХ рд╡реЗрд│реЗрд╕рд╛рдареА рд╕рддреНрд░ рд░рд╛рдЦрдгреЗ рдЖрдгрд┐ рд╕рддреНрд░рд╛рдЪреНрдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддреЗрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рд╡рд┐рд╕реНрддрд╛рд░рд▓реЗрд▓реНрдпрд╛ рдкрд░рдВрддреБ рддрд░реАрд╣реА рд╕рдВрд▓рдЧреНрди рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЕрд╢рд╛ рдЙрд╢реАрд░рд╛ рдбреЗрдЯрд╛рд╕рд╛рдареА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА рдирд╡реАрди рд╕рддреНрд░рд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдЖрдгрд┐ рд╕рдорд╛рдкреНрддреА рд╕рд░реНрд╡рд╛рдд рдЬреБрдиреА рдЖрдгрд┐ рдирд╡реАрдирддрдо рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдкрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

рд╕рддреНрд░реЗ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдореЛрдЬрдгреА рдкрджреНрдзрддреАрддреАрд▓ рдХрд╛рд╣реА рдиреЛрдВрджреА рдкрд╛рд╣реВ (рддрдХреНрддрд╛ 5.1).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЬреЗрд╡реНрд╣рд╛ рд░реЗрдХреЙрд░реНрдб рдпреЗрддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рддреНрдпрд╛рдЪ рдХреАрд╕рд╣ рд╡рд┐рджреНрдпрдорд╛рди рд╕рддреНрд░реЗ рд╢реЛрдзрддреЛ, рд╢реЗрд╡рдЯрдЪреА рд╡реЗрд│ рд╡рд░реНрддрдорд╛рди рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдк - рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдордзреНрдпрд╛рдВрддрд░ рдЖрдгрд┐ рдкреНрд░рд╛рд░рдВрдн рд╡реЗрд│ рд╡рд░реНрддрдорд╛рди рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдк + рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдордзреНрдпрд╛рдВрддрд░рд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, рдЯреЗрдмрд▓рд╡рд░реВрди рдЪрд╛рд░ рдиреЛрдВрджреА. 5.1 рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдПрдХрд╛рдЪ рд╕рддреНрд░рд╛рдд рд╡рд┐рд▓реАрди рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

1. рд░реЗрдХреЙрд░реНрдб 1 рдкреНрд░рдердо рдпреЗрддреЛ, рдореНрд╣рдгреВрди рдкреНрд░рд╛рд░рдВрдн рд╡реЗрд│ рд╕рдорд╛рдкреНрддреАрдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреНрдпрд╛ рдмрд░реЛрдмрд░реАрдЪреА рдЖрд╣реЗ рдЖрдгрд┐ 00:00:00 рдЖрд╣реЗ.

2. рдкреБрдвреЗ, рдПрдВрдЯреНрд░реА 2 рдпреЗрддреЗ, рдЖрдгрд┐ рдЖрдореНрд╣реА рд╕рддреНрд░ рд╢реЛрдзрддреЛ рдЬреЗ 23:59:55 рдЪреНрдпрд╛ рдЖрдзреА рд╕рдВрдкрдд рдирд╛рд╣реАрдд рдЖрдгрд┐ 00:00:35 рдирдВрддрд░ рд╕реБрд░реВ рд╣реЛрдд рдирд╛рд╣реАрдд. рдЖрдореНрд╣рд╛рд▓рд╛ рд░реЗрдХреЙрд░реНрдб 1 рд╕рд╛рдкрдбрддреЛ рдЖрдгрд┐ рд╕рддреНрд░ 1 рдЖрдгрд┐ 2 рдПрдХрддреНрд░ рдХрд░рддреЛ. рдЖрдореНрд╣реА рд╕рддреНрд░ 1 рдЪреА рд╕реБрд░реБрд╡рд╛рдд рд╡реЗрд│ (рдкреВрд░реНрд╡реА) рдЖрдгрд┐ рд╕рддреНрд░ 2 (рдирдВрддрд░) рдЪреА рд╕рдорд╛рдкреНрддреА рд╡реЗрд│ рдШреЗрддреЛ, рдЬреЗрдгреЗрдХрд░реВрди рдЖрдордЪреЗ рдирд╡реАрди рд╕рддреНрд░ 00:00:00 рд╡рд╛рдЬрддрд╛ рд╕реБрд░реВ рд╣реЛрдИрд▓ рдЖрдгрд┐ 00 рд╡рд╛рдЬрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдИрд▓: 00:15.

3. рд░реЗрдХреЙрд░реНрдб 3 рдЖрд▓рд╛, рдЖрдореНрд╣реА 00:00:30 рдЖрдгрд┐ 00:01:10 рджрд░рдореНрдпрд╛рди рд╕рддреНрд░реЗ рд╢реЛрдзрддреЛ рдЖрдгрд┐ рдПрдХрд╣реА рд╕рд╛рдкрдбрдд рдирд╛рд╣реА. рдХреА 123-345-654,FFBE, 00:00:50 рд╡рд╛рдЬрддрд╛ рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реЗ рдЖрдгрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрдгрд╛рд░реЗ рджреБрд╕рд░реЗ рд╕рддреНрд░ рдЬреЛрдбрд╛.

4. рд░реЗрдХреЙрд░реНрдб 4 рдЖрд▓рд╛ рдЖрдгрд┐ рдЖрдореНрд╣реА 23:59:45 рдЖрдгрд┐ 00:00:25 рджрд░рдореНрдпрд╛рди рд╕рддреНрд░реЗ рд╢реЛрдзрдд рдЖрд╣реЛрдд. рдпрд╛ рд╡реЗрд│реА 1 рдЖрдгрд┐ 2 рджреЛрдиреНрд╣реА рд╕рддреНрд░реЗ рдЖрдврд│рддрд╛рдд. рд╕рд░реНрд╡ рддреАрди рд╕рддреНрд░реЗ рдПрдХрд╛рдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд, 00:00:00 рдЪреА рдкреНрд░рд╛рд░рдВрдн рд╡реЗрд│ рдЖрдгрд┐ 00:00:15 рдЪреА рд╕рдорд╛рдкреНрддреА рд╡реЗрд│.

рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрд╡рд░реВрди, рдЦрд╛рд▓реАрд▓ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░рдХрд╛рд╡реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ:

  • рд╕рддреНрд░реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛ рдирд╛рд╣реАрдд. рд╕рддреНрд░рд╛рдЪрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рджрд┐рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрддреАрд▓ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ;
  • рдбреЗрдЯрд╛рдордзреАрд▓ рддрд╛рд░реАрдЦ/рд╡реЗрд│ рд╕реНрдЯреЕрдореНрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛рдд рдХреА рдЗрд╡реНрд╣реЗрдВрдЯ рд╡рд┐рджреНрдпрдорд╛рди рд╕рддреНрд░рд╛рдордзреНрдпреЗ рдЖрд╣реЗ рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд╛рд▓рд╛рд╡рдзреА рджрд░рдореНрдпрд╛рди.

рдкреБрдвреЗ рдЖрдкрдг рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛ - тАЬрдЯрдВрдмрд▓рд┐рдВрдЧтАЭ рд╡рд┐рдВрдбреЛрдмрджреНрджрд▓ рдЪрд░реНрдЪрд╛ рдХрд░реВ.

"рдЯрдВрдмрд▓рд┐рдВрдЧ" рдЦрд┐рдбрдХреНрдпрд╛

рдЯрдВрдмрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдард░рд╛рд╡рд┐рдХ рдХрд╛рд▓рд╛рд╡рдзреАрдд рдШрдбрдгрд╛рд▒реНрдпрд╛ рдШрдЯрдирд╛ рдХреЕрдкреНрдЪрд░ рдХрд░рддрд╛рдд. рдЕрд╢реА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рджрд░ 20 рд╕реЗрдХрдВрджрд╛рдВрдиреА рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрдиреАрдЪреЗ рд╕рд░реНрд╡ рд╕реНрдЯреЙрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЕрдкреНрдЪрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рддреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрддреАрд▓ рд╕рд░реНрд╡ рдШрдЯрдирд╛ рдЧреЛрд│рд╛ рдХрд░рд╛рд▓. 20-рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдордзреНрдпрд╛рдВрддрд░рд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА, рд╡рд┐рдВрдбреЛ рдлрд┐рд░рддреЗ рдЖрдгрд┐ рдирд╡реАрди 20-рд╕реЗрдХрдВрдж рдирд┐рд░реАрдХреНрд╖рдг рдордзреНрдпрд╛рдВрддрд░рд╛рдХрдбреЗ рдЬрд╛рддреЗ. рдЖрдХреГрддреА 5.14 рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рд╢реЗрд╡рдЯрдЪреНрдпрд╛ 20 рд╕реЗрдХрдВрджрд╛рдд рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдШрдЯрдирд╛ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА, рдПрдХ рдирд╡реАрди рд╡рд┐рдВрдбреЛ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ.

рд╕реВрдЪреА 5.6 рдХреЛрдб рджрд╛рдЦрд╡рддреЗ рдЬреЗ рджрд░ 20 рд╕реЗрдХрдВрджрд╛рдВрдиреА рд╕реНрдЯреЙрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЕрдкреНрдЪрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯрдВрдмрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛрдЪрд╛ рд╡рд╛рдкрд░ рджрд░реНрд╢рд╡рддреЗ (src/main/java/bbejeck/chapter_5/CountingWindowingAndKtableJoinExample.java рдордзреНрдпреЗ рдЖрдврд│рддреЗ).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
TimeWindows.of рдореЗрдердб рдХреЙрд▓рдордзреНрдпреЗ рдпрд╛ рдЫреЛрдЯреНрдпрд╛ рдмрджрд▓рд╛рд╕рд╣, рддреБрдореНрд╣реА рдЯрдВрдмрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рд╣реЗ рдЙрджрд╛рд╣рд░рдг till() рдкрджреНрдзрддреАрд▓рд╛ рдХреЙрд▓ рдХрд░рдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди 24 рддрд╛рд╕рд╛рдВрдЪрд╛ рдбреАрдлреЙрд▓реНрдЯ рдзрд╛рд░рдгрд╛ рдЕрдВрддрд░рд╛рд▓ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдИрд▓.

рд╢реЗрд╡рдЯреА, рд╡рд┐рдВрдбреЛ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреНрдпрд╛ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ - "рд╣реЙрдкрд┐рдВрдЧ" рд╡рд┐рдВрдбреЛрдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.

рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ ("рдЙрдбреА рдорд╛рд░рдгреЗ") рдЦрд┐рдбрдХреНрдпрд╛

рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ/рд╣реЙрдкрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдЯрдВрдмрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рд╕рд╛рд░рдЦреНрдпрд╛рдЪ рдЕрд╕рддрд╛рдд, рдкрд░рдВрддреБ рдереЛрдбреНрдпрд╛ рдлрд░рдХрд╛рдиреЗ. рдЕрд▓реАрдХрдбреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рд╡рд┐рдВрдбреЛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рд╡реЗрд│ рдордзреНрдпрд╛рдВрддрд░ рд╕рдВрдкреЗрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдд рдирд╛рд╣реАрдд. рддреЗ рд╡рд┐рдВрдбреЛ рдХрд╛рд▓рд╛рд╡рдзреАрдкреЗрдХреНрд╖рд╛ рдХрдореА рдкреНрд░рддреАрдХреНрд╖рд╛ рдЕрдВрддрд░рд╛рдирдВрддрд░ рдирд╡реАрди рдЧрдгрдирд╛ рд╕реБрд░реВ рдХрд░рддрд╛рдд.

рдЯрдВрдмрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдЬрдВрдкрд┐рдВрдЧ рд╡рд┐рдВрдбреЛрдордзреАрд▓ рдлрд░рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЛрдЬрдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдХрдбреЗ рдкрд░рдд рдЬрд╛рдК рдпрд╛. рдЖрдордЪреЗ рдзреНрдпреЗрдп рдЕрдЬреВрдирд╣реА рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдореЛрдЬрдгреНрдпрд╛рдЪреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдХрд╛рдЙрдВрдЯрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕рдВрдкреВрд░реНрдг рд╡реЗрд│ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рддреНрдпрд╛рдРрд╡рдЬреА, рдЖрдореНрд╣реА рдХрдореА рдЕрдВрддрд░рд╛рдиреЗ рдХрд╛рдЙрдВрдЯрд░ рдЕрдкрдбреЗрдЯ рдХрд░реВ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА рддрд░реАрд╣реА рджрд░ 20 рд╕реЗрдХрдВрджрд╛рдВрдиреА рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдореЛрдЬреВ, рдкрд░рдВрддреБ рдЕрдВрдЬреАрд░ рдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рджрд░ 5 рд╕реЗрдХрдВрджрд╛рдВрдиреА рдХрд╛рдЙрдВрдЯрд░ рдЕрджреНрдпрддрдирд┐рдд рдХрд░реВ. рел.резрел. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдореНрд╣реА рдУрд╡реНрд╣рд░рд▓реЕрдкрд┐рдВрдЧ рдбреЗрдЯрд╛рд╕рд╣ рддреАрди рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдВрдбреЛрд╕рд╣ рд╕рдорд╛рдкреНрдд рдХрд░рддреЛ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рд╕реВрдЪреА 5.7 рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдб рджрд░реНрд╢рд╡рддреЗ (src/main/java/bbejeck/chapter_5/CountingWindowingAndKtableJoinExample.java рдордзреНрдпреЗ рдЖрдврд│рддреЗ).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
AdvanceBy() рдкрджреНрдзрддреАрдд рдХреЙрд▓ рдЬреЛрдбреВрди рдЯрдВрдмрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛрд▓рд╛ рд╣реЙрдкрд┐рдВрдЧ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рдмрдЪрдд рдордзреНрдпрд╛рдВрддрд░ 15 рдорд┐рдирд┐рдЯреЗ рдЖрд╣реЗ.

рдПрдХрддреНрд░реАрдХрд░рдг рдкрд░рд┐рдгрд╛рдо рд╡реЗрд│ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдХрд╕реЗ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рд╛рдпрдЪреЗ рддреЗ рддреБрдореНрд╣реА рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рдкрд╛рд╣рд┐рд▓реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдЦрд╛рд▓реАрд▓ рддреАрди рдЧреЛрд╖реНрдЯреА рддреБрдореНрд╣реА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛рд╡реНрдпрд╛рдд рдЕрд╢реА рдорд╛рдЭреА рдЗрдЪреНрдЫрд╛ рдЖрд╣реЗ:

  • рд╕рддреНрд░ рд╡рд┐рдВрдбреЛрдЪрд╛ рдЖрдХрд╛рд░ рдХрд╛рд▓рд╛рд╡рдзреАрдиреБрд╕рд╛рд░ рдорд░реНрдпрд╛рджрд┐рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрджреНрд╡рд╛рд░реЗ рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ;
  • "рдЯрдВрдмрд▓рд┐рдВрдЧ" рд╡рд┐рдВрдбреЛ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрддреАрд▓ рдШрдЯрдирд╛рдВрдЪреЗ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ;
  • рдЬрдВрдкрд┐рдВрдЧ рд╡рд┐рдВрдбреЛрдЪрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЗ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕рд░реНрд╡ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдУрд╡реНрд╣рд░рд▓реЕрдкрд┐рдВрдЧ рдПрдВрдЯреНрд░реА рдЕрд╕реВ рд╢рдХрддрд╛рдд.

рдкреБрдвреЗ, рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА KTable рдкрд░рдд KStream рдордзреНрдпреЗ рдХрд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рдпрдЪреЗ рддреЗ рдЖрдкрдг рд╢рд┐рдХреВ.

рел.рей.рей. KStream рдЖрдгрд┐ KTable рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрдд рдЖрд╣реЗ

рдзрдбрд╛ 4 рдордзреНрдпреЗ, рдЖрдореНрд╣реА рджреЛрди KStream рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЬреЛрдбрдгреНрдпрд╛рдмрджреНрджрд▓ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА. рдЖрддрд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ KTable рдЖрдгрд┐ KStream рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ рддреЗ рд╢рд┐рдХрд╛рдпрдЪреЗ рдЖрд╣реЗ. рд╣реЗ рдЦрд╛рд▓реАрд▓ рд╕рд╛рдзреНрдпрд╛ рдХрд╛рд░рдгрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реВ рд╢рдХрддреЗ. KStream рд╣рд╛ рд░реЗрдХреЙрд░реНрдбрдЪрд╛ рдПрдХ рдкреНрд░рд╡рд╛рд╣ рдЖрд╣реЗ, рдЖрдгрд┐ KTable рд╣рд╛ рд░реЗрдХреЙрд░реНрдб рдЕрджреНрдпрддрдирд╛рдВрдЪрд╛ рдкреНрд░рд╡рд╛рд╣ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ KTable рдордзреАрд▓ рдЕрджреНрдпрддрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд░реЗрдХреЙрд░реНрдб рдкреНрд░рд╡рд╛рд╣рд╛рдд рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╛рдпрдЪрд╛ рдЕрд╕рддреЛ.

рдЪрд▓рд╛ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕реНрдЪреЗрдВрдЬ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░ рдбреЗрдЯрд╛ рдШреЗрдК рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЙрджреНрдпреЛрдЧрд╛рдВрд╕рд╛рдареА рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬрдЪреНрдпрд╛ рдмрд╛рддрдореНрдпрд╛рдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХрд░реВ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕рд▓реЗрд▓рд╛ рдХреЛрдб рдкрд╛рд╣рддрд╛ рд╣реЗ рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ.

  1. рд╕реНрдЯреЙрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░реАрд▓ рдбреЗрдЯрд╛рд╕рд╣ KTable рдСрдмреНрдЬреЗрдХреНрдЯрдЪреЗ KStream рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░рд╛, рддреНрдпрд╛рдирдВрддрд░ рдпрд╛ рд╕реНрдЯреЙрдХ рдЪрд┐рдиреНрд╣рд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЙрджреНрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░ рджрд░реНрд╢рд╡рд┐рдгрд╛рд░реА рдХреА рд╕рд╣ рдХреА рдмрджрд▓рд╛.
  2. рдПрдХ KTable рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рд╛ рдЬреЛ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдмрд╛рддрдореНрдпрд╛рдВрд╕рд╣ рд╡рд┐рд╖рдпрд╛рд╡рд░реАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдЪрддреЛ. рдпрд╛ рдирд╡реАрди KTable рдЪреЗ рдЙрджреНрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░рд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.
  3. рдЙрджреНрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░рд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░реАрд▓ рдорд╛рд╣рд┐рддреАрд╕рд╣ рдмрд╛рддрдореНрдпрд╛ рдЕрджреНрдпрддрдиреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рд╛.

рдЖрддрд╛ рдпрд╛ рдХреГрддреА рдЖрд░рд╛рдЦрдбреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд╢реА рдХрд░рд╛рдпрдЪреА рддреЗ рдкрд╛рд╣реВ.

KTable рд▓рд╛ KStream рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛

KTable рд▓рд╛ KStream рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

  1. KTable.toStream() рдкрджреНрдзрддреАрд╡рд░ рдХреЙрд▓ рдХрд░рд╛.
  2. KStream.map рдореЗрдердбрд▓рд╛ рдХреЙрд▓ рдХрд░реВрди, рдЗрдВрдбрд╕реНрдЯреНрд░реА рдирд╛рд╡рд╛рдиреЗ рдХреА рдмрджрд▓рд╛, рдЖрдгрд┐ рдирдВрддрд░ Windowed рдЙрджрд╛рд╣рд░рдгрд╛рддреВрди TransactionSummary рдСрдмреНрдЬреЗрдХреНрдЯ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рд╛.

рдЖрдореНрд╣реА рдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╕рд╛рдЦрд│реА рдХрд░реВ (рдХреЛрдб src/main/java/bbejeck/chapter_5/CountingWindowingAndKtableJoinExample.java рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.8).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЖрдореНрд╣реА KStream.map рдСрдкрд░реЗрд╢рди рдХрд░рдд рдЕрд╕рд▓реНтАНрдпрд╛рдореБрд│реЗ, рдкрд░рдд рдЖрд▓реЗрд▓рд╛ KStream рдЗрдВрд╕реНтАНрдЯрдиреНтАНрд╕ рдЬреЛрдбрдгреАрдордзреНтАНрдпреЗ рд╡рд╛рдкрд░рд▓реНтАНрдпрд╛рд╡рд░ рд╕реНтАНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдкреБрдиреНтАНрд╣рд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдЖрдореНрд╣реА рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдг рдХреЗрд▓реА рдЖрд╣реЗ, рдкреБрдвреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЙрдХ рдмрд╛рддрдореНрдпрд╛ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА KTable рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╕реНрдЯреЙрдХ рдмрд╛рддрдореНрдпрд╛рдВрд╕рд╛рдареА KTable рдЪреА рдирд┐рд░реНрдорд┐рддреА

рд╕реБрджреИрд╡рд╛рдиреЗ, KTable рдСрдмреНрдЬреЗрдХреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдбрдЪреА рдлрдХреНрдд рдПрдХ рдУрд│ рд▓рд╛рдЧрддреЗ (рдХреЛрдб src/main/java/bbejeck/chapter_5/CountingWindowingAndKtableJoinExample.java рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.9).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА Serde рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА, рдХрд╛рд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ Serdes рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рддрд╕реЗрдЪ, EARLIEST рдЧрдгрдиреЗрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рд╕рд╛рд░рдгреА рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛рдЪ рдиреЛрдВрджреАрдВрдиреА рднрд░рд▓реЗрд▓реА рдЕрд╕рддреЗ.

рдЖрддрд╛ рдЖрдкрдг рдЕрдВрддрд┐рдо рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЬрд╛рдК рд╢рдХрддреЛ - рдХрдиреЗрдХреНрд╢рди.

рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрдгрдирд╛ рдбреЗрдЯрд╛рд╕рд╣ рдмрд╛рддрдореНрдпрд╛ рдЕрджреНрдпрддрдиреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ

рдХрдиреЗрдХреНрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ рдХрдареАрдг рдирд╛рд╣реА. рд╕рдВрдмрдВрдзрд┐рдд рдЙрджреНрдпреЛрдЧрд╛рд╕рд╛рдареА рд╕реНрдЯреЙрдХ рдиреНрдпреВрдЬ рдирд╕рд▓реНрдпрд╛рд╕ рдЖрдореНрд╣реА рд▓реЗрдлреНрдЯ рдЬреЙрдИрди рд╡рд╛рдкрд░реВ (рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб src/main/java/bbejeck/chapter_5/CountingWindowingAndKtableJoinExample.java рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.10).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рд╣рд╛ leftJoin рдСрдкрд░реЗрдЯрд░ рдЕрдЧрджреА рд╕реЛрдкрд╛ рдЖрд╣реЗ. Chapter 4 рдордзреАрд▓ рдЬреЛрдбрдгреНрдпрд╛рдВрдкреНрд░рдорд╛рдгреЗ, JoinWindow рдкрджреНрдзрдд рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдд рдирд╛рд╣реА рдХрд╛рд░рдг KStream-KTable рдЬреЙрдИрди рдХрд░рддрд╛рдирд╛, рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╕рд╛рдареА KTable рдордзреНрдпреЗ рдлрдХреНрдд рдПрдХрдЪ рдПрдВрдЯреНрд░реА рдЕрд╕рддреЗ. рдЕрд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╡реЗрд│реЗрдд рдорд░реНрдпрд╛рджрд┐рдд рдирд╛рд╣реА: рд░реЗрдХреЙрд░реНрдб рдПрдХрддрд░ рдХреЗрдЯреЗрдмрд▓рдордзреНрдпреЗ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдЖрд╣реЗ. рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖: KTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рдХрдореА рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рд╕рд╣ KStream рд╕рдореГрджреНрдз рдХрд░реВ рд╢рдХрддрд╛.

рдЖрддрд╛ рдЖрдкрдг KStream рдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯ рд╕рдореГрджреНрдз рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдорд╛рд░реНрдЧ рдкрд╛рд╣реВ.

рел.рей.рек. рдЧреНрд▓реЛрдмрд▓рдХреЗрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕

рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рд╡рд╛рд╣ рд╕рдореГрджреНрдз рдХрд░рдгреНрдпрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдд рд╕рдВрджрд░реНрдн рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ. рдзрдбрд╛ 4 рдордзреНрдпреЗ рддреБрдореНрд╣реА рджреЛрди KStream рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди рдкрд╛рд╣рд┐рд▓реЗ, рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдд рддреБрдореНрд╣реА KStream рдЖрдгрд┐ KTable рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди рдкрд╛рд╣рд┐рд▓реЗ. рдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдирд╡реАрди рдкреНрд░рдХрд╛рд░ рдХрд┐рдВрд╡рд╛ рдореВрд▓реНрдпрд╛рд╕рд╛рдареА рдХреА рдореЕрдк рдХрд░рддрд╛рдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪреЗ рдкреБрдиреНрд╣рд╛ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдХрдзреАрдХрдзреА рдкреБрдирд░реНрд╡рд┐рднрд╛рдЬрди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЖрдгрд┐ рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣ рддреЗ рдЖрдкреЛрдЖрдк рдХрд░рддреЗ. рд░реА-рд╡рд┐рднрд╛рдЬрди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд╛рд░рдг рдХреА рдмрджрд▓рд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рд░реЗрдХреЙрд░реНрдб рдирд╡реАрди рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рд╕рдВрдкрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд, рдЕрдиреНрдпрдерд╛ рдХрдиреЗрдХреНрд╢рди рдЕрд╢рдХреНрдп рд╣реЛрдИрд▓ (рдпрд╛рдЪреА рдЪрд░реНрдЪрд╛ рдзрдбрд╛ 4 рдордзреНрдпреЗ, рдЙрдкрд╡рд┐рднрд╛рдЧ 4.2.4 рдордзреАрд▓ тАЬрдбреЗрдЯрд╛ рдкреБрдиреНрд╣рд╛-рд╡рд┐рднрд╛рдЬрдитАЭ рдордзреНрдпреЗ рдХреЗрд▓реА рдЖрд╣реЗ).

рдкреБрдирд░реНрд╡рд┐рднрд╛рдЬрдирд╛рдЪреА рдХрд┐рдВрдордд рдЖрд╣реЗ

рдкреБрдирд░реНрд╡рд┐рднрд╛рдЬрдирд╛рд╕рд╛рдареА рдЦрд░реНрдЪ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд - рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рд╖рдп рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ, рджреБрд╕рд░реНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдордзреНрдпреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ; рдпрд╛рдЪрд╛ рдЕрд░реНрде рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░реАрд▓ рд▓реЗрдЦрди рдЖрдгрд┐ рд╡рд╛рдЪрдирд╛рдореБрд│реЗ рд╡рд╛рдврд▓реЗрд▓реА рд╡рд┐рд▓рдВрдмрддрд╛ рджреЗрдЦреАрд▓ рдЖрд╣реЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдкреИрд▓реВ рдХрд┐рдВрд╡рд╛ рдкрд░рд┐рдорд╛рдгрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рдЬреЙрдЗрдиреНрд╕ рдЪреЗрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдирд╡реАрди рдХреАрд╕рд╣ рд░реЗрдХреЙрд░реНрдб рдореЕрдк рдХрд░рдгреЗ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд╡рд┐рднрд╛рдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреБрдиреНрд╣рд╛ рдЪрд╛рд▓рд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд▓рд╣рд╛рди рдбреЗрдЯрд╛рд╕реЗрдЯрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдд рдЖрд╣реЗ

рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рдЪреА рдорд╛рддреНрд░рд╛ рддреБрд▓рдиреЗрдиреЗ рд▓рд╣рд╛рди рдЕрд╕рддреЗ, рдореНрд╣рдгреВрди рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рддреА рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рд╕рд╣рдЬрдкрдгреЗ рдмрд╕реВ рд╢рдХрддрд╛рдд. рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрд╕рд╛рдареА, рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЧреНрд▓реЛрдмрд▓рдХреЗрдЯреЗрдмрд▓ рдХреНрд▓рд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

GlobalKTable рдЙрджрд╛рд╣рд░рдгреЗ рдЕрджреНрд╡рд┐рддреАрдп рдЖрд╣реЗрдд рдХрд╛рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбреНрд╕рд╡рд░ рд╕рд░реНрд╡ рдбреЗрдЯрд╛рдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдмрдирд╡рддреЛ. рдЖрдгрд┐ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рдЙрдкрд╕реНрдерд┐рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдордЪреЗ рд░реЗрдлрд░рдиреНрд╕ рдбреЗрдЯрд╛ рдХреА рджреНрд╡рд╛рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рд╕рд░реНрд╡ рд╡рд┐рднрд╛рдЬрдирд╛рдВрд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЕрд╕реЗрд▓. рддреБрдореНрд╣реА GlobalKTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╡рд╛рдкрд░реВрди рдХреАрд▓реЗрд╕ рдЬреЙрдИрди рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдкреИрдХреА рдПрдХрд╛рдХрдбреЗ рдкрд░рдд рдЬрд╛рдК рдпрд╛.

рдХреЗрд╕реНрдЯреНрд░реАрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд▓рд╛ рдЧреНрд▓реЛрдмрд▓рдХреЗрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╢реА рдЬреЛрдбрдд рдЖрд╣реЗ

рдЙрдкрд╡рд┐рднрд╛рдЧ 5.3.2 рдордзреНрдпреЗ, рдЖрдореНрд╣реА рдЦрд░реЗрджреАрджрд╛рд░рд╛рдВрджреНрд╡рд╛рд░реЗ рд╡рд┐рдирд┐рдордп рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреЗ рд╡рд┐рдВрдбреЛ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗрд▓реЗ. рдпрд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕рд▓реЗ:

{customerId='074-09-3705', stockTicker='GUTM'}, 17
{customerId='037-34-5184', stockTicker='CORK'}, 16

рдпрд╛ рдирд┐рдХрд╛рд▓рд╛рдВрдиреА рдЙрджреНрджреЗрд╢ рдкреВрд░реНрдг рдХреЗрд▓рд╛ рдЕрд╕рддрд╛, рдЧреНрд░рд╛рд╣рдХрд╛рдЪреЗ рдирд╛рд╡ рдЖрдгрд┐ рдХрдВрдкрдиреАрдЪреЗ рд╕рдВрдкреВрд░реНрдг рдирд╛рд╡ рджреЗрдЦреАрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ рдЕрд╕рддреЗ рддрд░ рддреЗ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдард░рд▓реЗ рдЕрд╕рддреЗ. рдЧреНрд░рд╛рд╣рдХрд╛рдЪреЗ рдирд╛рд╡ рдЖрдгрд┐ рдХрдВрдкрдиреАрдЪреЗ рдирд╛рд╡ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЬреЛрдбрдгреА рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рддреБрдореНрд╣рд╛рд▓рд╛ рджреЛрди рдХреА рдореЕрдкрд┐рдВрдЧ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд╡рд┐рднрд╛рдЬрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. GlobalKTable рд╕рд╣ рддреБрдореНрд╣реА рдЕрд╢рд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдХрд┐рдВрдордд рдЯрд╛рд│реВ рд╢рдХрддрд╛.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕реВрдЪреА 5.11 рдордзреАрд▓ рдХрд╛рдЙрдВрдЯрд╕реНрдЯреНрд░реАрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд░реВ (рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб src/main/java/bbejeck/chapter_5/GlobalKTableExample.java рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ) рдЖрдгрд┐ рддреНрдпрд╛рд╕ рджреЛрди GlobalKTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╢реА рдЬреЛрдбреВ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЖрдореНрд╣реА рдпрд╛рдкреВрд░реНрд╡реАрдЪ рдпрд╛рдмрджреНрджрд▓ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рддреНрдпрд╛рдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдкрдг рдореА рд▓рдХреНрд╖рд╛рдд рдШреЗрддреЛ рдХреА toStream().map рдлрдВрдХреНрд╢рдирдордзреАрд▓ рдХреЛрдб рд╡рд╛рдЪрдиреАрдпрддреЗрд╕рд╛рдареА рдЗрдирд▓рд╛рдЗрди рд▓реЕрдореНрдмрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдирдРрд╡рдЬреА рдлрдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рдЕреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдкреБрдвреАрд▓ рдкрд╛рдпрд░реА рдореНрд╣рдгрдЬреЗ GlobalKTable рдЪреНрдпрд╛ рджреЛрди рдЙрджрд╛рд╣рд░рдгреЗ рдШреЛрд╖рд┐рдд рдХрд░рдгреЗ (рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓рд╛ рдХреЛрдб src/main/java/bbejeck/chapter_5/GlobalKTableExample.java рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.12).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╡рд┐рд╖рдпрд╛рдВрдЪреА рдирд╛рд╡реЗ рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╡рд░реНрдгрди рдХреЗрд▓реА рдЖрд╣реЗрдд.

рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕рд░реНрд╡ рдШрдЯрдХ рддрдпрд╛рд░ рдЖрд╣реЗрдд, рдлрдХреНрдд рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ (рдЬреЗ src/main/java/bbejeck/chapter_5/GlobalKTableExample.java рдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ) (рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5.13).

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЬрд░реА рдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рджреЛрди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕рд▓реЗ рддрд░реА, рддреЗ рд╕рд╛рдЦрд│реАрдиреЗ рдмрд╛рдВрдзрд▓реЗрд▓реЗ рдЖрд╣реЗрдд рдХрд╛рд░рдг рддреНрдпрд╛рдВрдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдкрд░рд┐рдгрд╛рдо рд╡реЗрдЧрд│рд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА. рдкрд░рд┐рдгрд╛рдо рд╕рдВрдкреВрд░реНрдг рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╡рд░реАрд▓ рдЬреЙрдИрди рдСрдкрд░реЗрд╢рди рдЪрд╛рд▓рд╡рд╛рд▓, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд│рддреАрд▓:

{customer='Barney, Smith' company="Exxon", transactions= 17}

рд╕рд╛рд░ рдмрджрд▓рд▓рд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╣реЗ рдкрд░рд┐рдгрд╛рдо рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рджрд┐рд╕рдд рдЖрд╣реЗрдд.

рддреБрдореНрд╣реА рдзрдбрд╛ 4 рдкрд░реНрдпрдВрдд рдХрд╛рдЙрдВрдЯ рдбрд╛рдЙрди рдХреЗрд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдЖрдзреАрдЪ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреЗ рдХрдиреЗрдХреНрд╢рди рдХреГрддреАрдд рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗрдд. рддреЗ рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╕реВрдЪреАрдмрджреНрдз рдЖрд╣реЗрдд. рел.реи. рд╣реЗ рд╕рд╛рд░рдгреА рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреА 5.2 рдиреБрд╕рд╛рд░ рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рдХреНрд╖рдорддрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреЗ; рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдмрджрд▓реВ рд╢рдХрддреЗ.

"рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдЗрди рдЕреЕрдХреНрд╢рди" рд╣реЗ рдкреБрд╕реНрддрдХ. рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рдХрд╛рдорд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ рд╕рд░реНрд╡реНрд╣рд┐рд╕реЗрд╕"
рдЧреЛрд╖реНрдЯреА рдЧреБрдВрдбрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреАрдВрдЪрд╛ рдЖрдврд╛рд╡рд╛ рдШреЗрдКрдпрд╛: рддреБрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдерд┐рддреА рд╡рд╛рдкрд░реВрди рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо (KStream) рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рд╕реНрдЯреНрд░реАрдо (KTable) рдХрдиреЗрдХреНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛, рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рдЪрд╛ рдЖрдХрд╛рд░ рдЦреВрдк рдореЛрдард╛ рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА GlobalKTable рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдЧреНрд▓реЛрдмрд▓рдХреЗрдЯреЗрдмрд▓реНрд╕ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЛрдбрд╡рд░ рд╕рд░реНрд╡ рд╡рд┐рднрд╛рдЬрдирд╛рдВрдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдмрдирд╡рддрд╛рдд, рдХреА рдХреЛрдгрддреНрдпрд╛ рд╡рд┐рднрд╛рдЬрдирд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рдпрд╛рдЪреА рдкрд░реНрд╡рд╛ рди рдХрд░рддрд╛ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ.

рдкреБрдвреЗ рдЖрдкрдг рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдкрд╛рд╣реВ, рдЬреНрдпрд╛рдореБрд│реЗ рдЖрдкрдг рдХрд╛рдлреНрдХрд╛ рд╡рд┐рд╖рдпрд╛рддреАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╕реНрдерд┐рддреАрддреАрд▓ рдмрджрд▓ рдкрд╛рд╣реВ рд╢рдХрддреЛ.

рел.рей.рел. рдкреНрд░рд╢реНрдирд╛рд░реНрдердХ рд╕реНрдерд┐рддреА

рдЖрдореНрд╣реА рдЖрдзреАрдЪ рдЕрдиреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдордзреНрдпреЗ рд░рд╛рдЬреНрдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЖрдгрд┐ рдиреЗрд╣рдореА рдХрдиреНрд╕реЛрд▓рд╡рд░ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЛ (рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рд╣реЗрддреВрдВрд╕рд╛рдареА) рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдВрдирд╛ рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ (рдЙрддреНрдкрд╛рджрди рд╣реЗрддреВрдВрд╕рд╛рдареА) рд▓рд┐рд╣рд╛. рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рддреЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдлреНрдХрд╛ рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рдкрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓.

рдпрд╛ рд╡рд┐рд╖рдпрд╛рдВрд╡рд░реАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреЗ рд╣реЗ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреЗ рднреМрддрд┐рдХ рджреГрд╢реНрдп рдорд╛рдирд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЖрдордЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдВрд╕рд╛рдареА, рдЖрдореНрд╣реА рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдордзреАрд▓ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдЪреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ: тАЬ...рдПрдХ рднреМрддрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреНрдпрд╛рдордзреНрдпреЗ рдХреНрд╡реЗрд░реАрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЕрд╕рддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреА рд░рд┐рдореЛрдЯ рдбреЗрдЯрд╛рдЪреА рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдд, рдХрд┐рдВрд╡рд╛ рд╕рд╛рд░рдгреАрдЪреНрдпрд╛ рдкрдВрдХреНрддреА рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рд╕реНрддрдВрднрд╛рдВрдЪрд╛ рдЙрдкрд╕рдВрдЪ рдЕрд╕реВ рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдореАрд▓ рд╣реЛрдК рд╢рдХрддреЛ, рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓рд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рд░рдгреА рдЕрд╕реВ рд╢рдХрддреЗ" (https://en.wikipedia.org/wiki /Materialized_view).

рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрдЕрд░реНрд╕рд╡рд░ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡реНрд╣ рдХреНрд╡реЗрд░реА рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реА рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ рдереЗрдЯ рд╡рд╛рдЪрддрд╛ рдпреЗрддрд╛рдд. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрдЕрд░рдЪреА рдХреНрд╡реЗрд░реА рд╣реА рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ. рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рддреБрдордЪрд╛ ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреБрдХреВрдирд╣реА рд╕реНрдерд┐рддреА рд╡рд┐рд╕рдВрдЧрдд рдмрдирд╡рдгреНрдпрд╛рдЪреА рдХрд╛рд│рдЬреА рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА.

рд░рд╛рдЬреНрдп рд╕реНрдЯреЛрдЕрд░реНрд╕рдЪреА рдереЗрдЯ рдХреНрд╡реЗрд░реА рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреБрдореНрд╣реА рдХрд╛рдлреНрдХрд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдХрдбреВрди рдкреНрд░рдердо рдбреЗрдЯрд╛ рдЖрдгрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдбреЕрд╢рдмреЛрд░реНрдб рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджреЗрдЦреАрд▓ рд╡рд╛рдврд╡рддреЗ, рдХрд╛рд░рдг рдкреБрдиреНрд╣рд╛ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА:

  • рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕реНрдерд╛рдирд┐рдХрддреЗрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рддреЗ рджреНрд░реБрддрдкрдгреЗ рдНрдХреНрд╕реЗрд╕ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд;
  • рдбреЗрдЯрд╛рдЪреЗ рдбреБрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ, рдХрд╛рд░рдг рддреЗ рдмрд╛рд╣реНрдп рд╕рдВрдЪрдпрдирд╛рд╡рд░ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдирд╛рд╣реА.

рдореБрдЦреНрдп рдЧреЛрд╖реНрдЯ рддреБрдореНрд╣реА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛рд╡реА рдЕрд╢реА рдорд╛рдЭреА рдЗрдЪреНрдЫрд╛ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рдордзреВрди рдереЗрдЯ рд╕реНрдерд┐рддреАрдЪреА рдЪреМрдХрд╢реА рдХрд░реВ рд╢рдХрддрд╛. рдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд┐рд│рдгрд╛рд▒реНрдпрд╛ рд╕рдВрдзреАрдВрдЪрд╛ рдЕрддрд┐рд░реЗрдХ рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рдХрд╛рдлреНрдХрд╛ рдХрдбреАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдРрд╡рдЬреА рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд░реЗрдХреЙрд░реНрдб рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдЖрдкрдг рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╣ рд╕реНрдЯреЗрдЯ рд╕реНрдЯреЛрдЕрд░реНрд╕рдЪреА рдХреНрд╡реЗрд░реА рдХрд░реВ рд╢рдХрддрд╛. рд░рд╛рдЬреНрдп рд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рдереЗрдЯ рдХреНрд╡реЗрд░реА рдореНрд╣рдгрдЬреЗ рдХрдореА рдХреЛрдб (рдЧреНрд░рд╛рд╣рдХ рдирд╛рд╣реА) рдЖрдгрд┐ рдХрдореА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ (рдкрд░рд┐рдгрд╛рдо рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА).

рдЖрдореНрд╣реА рдпрд╛ рдзрдбреНрдпрд╛рдд рдереЛрдбрд╛рд╕рд╛ рдЧреНрд░рд╛рдЙрдВрдб рдХрд╡реНрд╣рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдЖрддреНрддрд╛рд╕рд╛рдареА рд░рд╛рдЬреНрдп рд╕реНрдЯреЛрдЕрд░реНрд╕ рд╡рд┐рд░реБрджреНрдзрдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЪрд░реНрдЪрд╛ рд╕реЛрдбреВ. рдкрдг рдХрд╛рд│рдЬреА рдХрд░реВ рдирдХрд╛: рдзрдбрд╛ 9 рдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╣ рдПрдХ рд╕рд╛рдзрд╛ рдбреЕрд╢рдмреЛрд░реНрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░реВ. рд╣реЗ рдпрд╛ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреАрд▓ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдХреНрд╡реЗрд░реА рдЖрдгрд┐ рддреБрдореНрд╣реА рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░реАрдореНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдХрд╕реЗ рдЬреЛрдбреВ рд╢рдХрддрд╛ рд╣реЗ рджрд╛рдЦрд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░реЗрд▓.

рд╕рд╛рд░рд╛рдВрд╢

  • KStream рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдШрдЯрдирд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдЗрдиреНрд╕рд░реНрдЯрд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрддрд╛рдд. KTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЕрдкрдбреЗрдЯ рд╕реНрдЯреНрд░реАрдореНрд╕рдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд, рдЬрд╕реЗ рдХреА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдЕрдкрдбреЗрдЯреНрд╕. KTable рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рдЖрдХрд╛рд░ рд╡рд╛рдврдд рдирд╛рд╣реА, рдЬреБрдиреНрдпрд╛ рдиреЛрдВрджреА рдирд╡реАрди рдмрджрд▓рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА KTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд.
  • рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рдСрдкрд░реЗрд╢рдиреНрд╕ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдЯрд╛рдЗрдо рдмрдХреЗрдЯрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реВ рд╢рдХрддрд╛.
  • GlobalKTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рддреБрдореНрд╣реА рд╡рд┐рднрд╛рдЬрдирд╛рдЪреА рдкрд░реНрд╡рд╛ рди рдХрд░рддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдд рдХреБрдареЗрд╣реА рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрддрд╛.
  • KStream, KTable рдЖрдгрд┐ GlobalKTable рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди рд╢рдХреНрдп рдЖрд╣реЗрдд.

рдЖрддрд╛рдкрд░реНрдпрдВрдд, рдЖрдореНрд╣реА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп KStream DSL рд╡рд╛рдкрд░реВрди рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЬрд░реА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рджреГрд╖реНрдЯреАрдХреЛрди рддреБрдореНрд╣рд╛рд▓рд╛ рдиреАрдЯрдиреЗрдЯрдХреЗ рдЖрдгрд┐ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ, рддрд░реАрд╣реА рддреЗ рд╡рд╛рдкрд░рдгреЗ рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рджрд░реНрд╢рд╡рддреЗ. DSL KStream рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдореНрд╣рдгрдЬреЗ рдирд┐рдпрдВрддреНрд░рдгрд╛рдЪреА рдбрд┐рдЧреНрд░реА рдХрдореА рдХрд░реВрди рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдЪреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рд╡рд╛рдврд╡рдгреЗ. рдкреБрдвреАрд▓ рдкреНрд░рдХрд░рдгрд╛рдордзреНрдпреЗ, рдЖрдореНрд╣реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╣рдБрдбрд▓рд░ рдиреЛрдб API рдкрд╛рд╣реВ рдЖрдгрд┐ рдЗрддрд░ рдЯреНрд░реЗрдб-рдСрдл рд╡рд╛рдкрд░реВрди рдкрд╛рд╣реВ. рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдкреВрд░реНрд╡реАрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд▓рд╛рдВрдм рдЕрд╕рддреАрд▓, рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рдгрд╛рд░реЗ рдЬрд╡рд│рдкрд╛рд╕ рдХреЛрдгрддреЗрд╣реА рд╣рдБрдбрд▓рд░ рдиреЛрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрдореНрд╣реА рд╕рдХреНрд╖рдо рд╣реЛрдК.

тЖТ рдкреБрд╕реНрддрдХрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓ рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддрд╛рдд рдкреНрд░рдХрд╛рд╢рдХрд╛рдЪреА рд╡реЗрдмрд╕рд╛рдЗрдЯ

тЖТ Habrozhiteli рд╕рд╛рдареА рдХреВрдкрди рд╡рд╛рдкрд░реВрди 25% рд╕реВрдЯ - рдХрд╛рдлреНрдХрд╛ рдкреНрд░рд╡рд╛рд╣

тЖТ рдкреБрд╕реНрддрдХрд╛рдЪреНрдпрд╛ рдХрд╛рдЧрджреА рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА рдкреИрд╕реЗ рджрд┐рд▓реНрдпрд╛рд╡рд░, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкреБрд╕реНрддрдХ рдИ-рдореЗрд▓рджреНрд╡рд╛рд░реЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рдИрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛