์ผ๊ด„ ์ž‘์—…์˜ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋‚™์˜ค ํ•ญ๋ชฉ์€ ์ž‘์—…์ด ๋™์‹œ์— ์™„๋ฃŒ๋˜์ง€ ์•Š๋„๋ก ํ•˜์—ฌ Dataflow ์ž‘์—… ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚ค๋Š” ์ž‘์—… ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

์ผ๊ด„ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋‚™์˜ค ํ•ญ๋ชฉ์€ ๋‹ค์Œ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์ž‘์—… ํ•ญ๋ชฉ์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

  • ๊ฐ™์€ ์Šคํ…Œ์ด์ง€์— ์žˆ๋Š” ๋‹ค๋ฅธ ์ž‘์—… ํ•ญ๋ชฉ๋ณด๋‹ค ์™„๋ฃŒํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
  • ์Šคํ…Œ์ด์ง€ ๋‚ด์—์„œ ๋™์‹œ ๋กœ๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  • ์ƒˆ ์ž‘์—…์ด ์‹œ์ž‘๋˜์ง€ ์•Š๋„๋ก ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ๋‚™์˜ค ํ•ญ๋ชฉ์œผ๋กœ ์ธํ•ด ์ž‘์—…์˜ ์ ์€ ๋น„์œจ์ด ์ง„ํ–‰๋˜์–ด ์ž‘์—…์˜ ์ „์ฒด ์ง€์—ฐ์„ ์ดˆ๋ž˜ํ•˜๋ฏ€๋กœ ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dataflow๋Š” ์ผ๊ด„ ์ž‘์—… ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. Dataflow๊ฐ€ ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๊ฐ์ง€ํ•˜๋ฉด ๋‚™์˜ค ํ•ญ๋ชฉ์˜ ์›์ธ๋„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”์—์„œ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ณด๊ธฐ

Dataflow ์ž‘์—…์„ ์‹œ์ž‘ํ•œ ํ›„ Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ง€๋œ ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚™์˜ค ํ•ญ๋ชฉ์€ ์Šคํ…Œ์ด์ง€ ๋˜๋Š” ์ž‘์—…์ž๋ณ„๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚™์˜ค ํ•ญ๋ชฉ์ด ์žˆ๋Š” ์Šคํ…Œ์ด์ง€๋ฅผ ์ฐพ์€ ๋‹ค์Œ ๊ฐ ๋‹จ๊ณ„ ๋‚ด์—์„œ ๋‚™์˜ค ํ•ญ๋ชฉ์ด ๋ฐœ์ƒํ•œ ์ž‘์—…์ž๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ณด๊ธฐ

๋‹จ๊ณ„๋ณ„๋กœ ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Dataflow ์ž‘์—… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์ž‘์—…์œผ๋กœ ์ด๋™

  2. ์ž‘์—… ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ž‘์—… ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์‹คํ–‰ ์„ธ๋ถ€์ •๋ณด ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ทธ๋ž˜ํ”„ ๋ทฐ ๋ชฉ๋ก์—์„œ ์Šคํ…Œ์ด์ง€ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๊ทธ๋ž˜ํ”„์—๋Š” ๊ฐ ์Šคํ…Œ์ด์ง€ ๋‚ด์—์„œ ๊ฐ์ง€๋œ ๋ชจ๋“  ๋‚™์˜ค ํ•ญ๋ชฉ์˜ ์ง‘๊ณ„ ์ˆ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  5. ์Šคํ…Œ์ด์ง€์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์Šคํ…Œ์ด์ง€ ๋ง‰๋Œ€ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค. ์Šคํ…Œ์ด์ง€์˜ ์ž‘์—…์ž๋ฅผ ๋ณด๋ ค๋ฉด ์„ธ๋ถ€์ •๋ณด ํŒจ๋„์—์„œ ์ž‘์—…์ž ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ž๋ณ„ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ณด๊ธฐ

์ž‘์—…์ž๋ณ„๋กœ ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Dataflow ์ž‘์—… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์ž‘์—…์œผ๋กœ ์ด๋™

  2. ์ž‘์—… ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ž‘์—… ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์‹คํ–‰ ์„ธ๋ถ€์ •๋ณด ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ทธ๋ž˜ํ”„ ๋ทฐ ๋ชฉ๋ก์—์„œ ์ž‘์—…์ž ์ง„ํ–‰ ์ƒํ™ฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ๋‹จ๊ณ„๋ณ„ ์ž‘์—…์ž ํ•„ํ„ฐ๋ง ๋ชฉ๋ก์—์„œ ๋‹จ๊ณ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๊ทธ๋ž˜ํ”„์—๋Š” ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ ๊ฐ์ง€๋œ ๋‚™์˜ค ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‚™์˜ค ํ•ญ๋ชฉ์ด ์ฒ˜์Œ ๊ฐ์ง€๋œ ์ง€์ ์€ ๋ง‰๋Œ€์—์„œ ์Œ์˜์ด ์–ด๋‘ก์Šต๋‹ˆ๋‹ค.

  6. ์ž‘์—…์ž์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํ•ด๋‹น ์ž‘์—…์ž์˜ ๋ง‰๋Œ€ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค.

์Šคํ…Œ์ด์ง€ ์ •๋ณด ํŒจ๋„์˜ ๋‚™์˜ค ํ•ญ๋ชฉ ์„ธ๋ถ€์ •๋ณด ์„น์…˜์—๋Š” ํŽ˜์ด์ง€์— ํ‘œ์‹œ๋œ ๋ชจ๋“  ์ž‘์—…์ž์˜ ๋‚™์˜ค ํ•ญ๋ชฉ์ด ๋‹ค์Œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

  • ๋‚™์˜ค ํ•ญ๋ชฉ์ด ๊ฐ์ง€๋œ ์‹œ์ž‘ ์‹œ๊ฐ„
  • ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๊ฒฝํ—˜ํ•œ ์ž‘์—…์ž
  • ์›์ธ(์•Œ๋ ค์ง„ ๊ฒฝ์šฐ)

์ผ๊ด„ ์ž‘์—…์˜ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ฌธ์ œ ํ•ด๊ฒฐ

Dataflow๋Š” ์ผ๊ด„ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚™์˜ค ํ•ญ๋ชฉ์˜ ์›์ธ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•ซํ‚ค. ํ•ซํ‚ค๋Š” ๋™์ผํ•œ PCollection์˜ ๋‹ค๋ฅธ ํ‚ค๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜ ํ•ซํ‚ค๋กœ ์ธํ•œ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ๋А๋ฆฐ ์ž‘์—…์ž. ๋А๋ฆฐ ์ž‘์—…์ž์—์„œ ์ž‘์—… ํ•ญ๋ชฉ์€ ํ‰์†Œ๋ณด๋‹ค ๋А๋ฆฌ๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋А๋ฆฐ ์ž‘์—…์ž์˜ ์ฒ˜๋ฆฌ ์†๋„๋Š” ๋™์ผ ์Šคํ…Œ์ด์ง€์—์„œ ๋น„์Šทํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ž์˜ ์ฒ˜๋ฆฌ ์†๋„๋ณด๋‹ค ๋А๋ฆฐ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. CPU ๋ถ€์กฑ, ์Šค๋ž˜์‹ฑ, ๋จธ์‹  ์•„ํ‚คํ…์ฒ˜, ์ค‘๋‹จ๋œ ์ž‘์—…์ž ํ”„๋กœ์„ธ์Šค ๋“ฑ ์—ฌ๋Ÿฌ ์š”์ธ์œผ๋กœ ์ธํ•ด ์ž‘์—…์ž ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†๋„๊ฐ€ ๋А๋ ค์ง€๋ฉด Dataflow๊ฐ€ ์ž๋™์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์—์„œ ๋А๋ฆฐ ์ž‘์—…์ž๋กœ ์ธํ•œ ๋‚™์˜ค ํ•ญ๋ชฉ ์ž๋™ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ์›์ธ. ์›์ธ์ด ํ™•์ธ๋˜์ง€ ์•Š์€ ๋‚™์˜ค ํ•ญ๋ชฉ์˜ ๊ฒฝ์šฐ '๋А๋ฆฌ๊ฑฐ๋‚˜ ์ค‘๋‹จ๋œ ์ž‘์—… ๋ฌธ์ œ ํ•ด๊ฒฐ'์—์„œ ๋А๋ฆฐ ์ผ๊ด„ ์ž‘์—…์˜ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‹จ๊ณ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•ซํ‚ค๋กœ ์ธํ•œ ๋‚™์˜ค ํ•ญ๋ชฉ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋‹ค์–‘ํ•œ ์š”์ธ์œผ๋กœ ์ธํ•ด ๋‚™์˜ค ํ•ญ๋ชฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์›์ธ ์ค‘ ํ•˜๋‚˜๋Š” ํ•ซํ‚ค์˜ ์กด์žฌ์ž…๋‹ˆ๋‹ค. ํ•ซํ‚ค๋Š” ๋™์ผํ•œ PCollection์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ‚ค๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค. ํ•ซํ‚ค๋Š” Dataflow๊ฐ€ ์š”์†Œ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œํ•œํ•˜๋ฏ€๋กœ ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dataflow๊ฐ€ ํ•ซํ‚ค๋กœ ์ธํ•ด ๋‚™์˜ค ํ•ญ๋ชฉ์„ ๊ฐ์ง€ํ•˜๋ฉด ๋‚™์˜ค ํ•ญ๋ชฉ ์„ธ๋ถ€์ •๋ณด ํŒจ๋„์— Hot Key๊ฐ€ ์›์ธ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Dataflow๋Š” ํ•ซํ‚ค์˜ ํ‚ค ๊ฐ’์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‚ค ๊ฐ’์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ hotKeyLoggingEnabled ํŒŒ์ดํ”„๋ผ์ธ ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„์‚ฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์˜ ๊ฐ’์ด ๋ถˆ๊ท ํ˜•ํ•˜๋‹ค๋ฉด ๋‹ค์Œ ์กฐ์น˜ ์‹คํ–‰์„ ๊ณ ๋ คํ•ด ๋ณด์„ธ์š”.

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”. ParDo ๋ณ€ํ™˜์„ ์ ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ‚ค-๊ฐ’ ์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Java ์ž‘์—…์˜ ๊ฒฝ์šฐ Combine.PerKey.withHotKeyFanout ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Python ์ž‘์—…์˜ ๊ฒฝ์šฐ CombinePerKey.with_hot_key_fanout ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Dataflow Shuffle ์‚ฌ์šฉ ์„ค์ •

์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ดํ”„๋ผ์ธ์ด SQL ๋ณ€ํ™˜์˜ ์ผ๋ถ€๋กœ JOIN ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ํ™•์žฅ๋œ JOIN ์ž‘์—…์˜ ์ผ๋ถ€๋กœ ์ˆ˜ํ–‰๋˜๋Š” GroupByKey๋กœ ์ง€์ •๋œ ํ‚ค๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๊ณผ๋„ํ•œ ๋ฐ์ดํ„ฐ ์–‘์ด ํฌํ•จ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ beam-issue/28186์˜ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋А๋ฆฐ ์ž‘์—…์ž๋กœ ์ธํ•œ ๋‚™์˜ค ํ•ญ๋ชฉ ์ž๋™ ํ•ด๊ฒฐ

๋А๋ฆฐ ์ž‘์—…์ž๋Š” Dataflow์—์„œ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์ง€๋งŒ ์ž‘์—… ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Dataflow๋Š” ๋А๋ฆฐ ์ž‘์—…์ž๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์„ ๋•Œ ์ž‘์—…์ž๋กœ ์ธํ•ด ๋‚™์˜ค ํ•ญ๋ชฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ํ•ด๊ฒฐ์„ ์‹œ๋„ํ•  ๋•Œ๋Š” ํ˜ธ์ŠคํŠธ ์œ ์ง€๋ณด์ˆ˜ ์ด๋ฒคํŠธ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฒคํŠธ๋Š” ์ •๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” Compute Engine ์œ ์ง€๋ณด์ˆ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ž‘์—…์ž์˜ ํ˜ธ์ŠคํŠธ ์œ ์ง€๋ณด์ˆ˜ ์ •์ฑ…์— ๋”ฐ๋ผ ์ž‘์—…์ž๋Š” ๋ผ์ด๋ธŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ˆ˜ํ–‰๋˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ˆ˜ํ–‰๋  ๋•Œ๋Š” ์›Œํฌ๋กœ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž‘์—…์ž๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋œ ๊ฒฝ์šฐ์—๋Š” ๋А๋ฆฐ ์ž‘์—…์ž์—์„œ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์ด ์†์‹ค๋˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๋А๋ฆฐ ์ž‘์—…์ž๊ฐ€ ๊ฐ์ง€๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐ๋˜๋ฉด job-message ๋กœ๊ทธ์— ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Slow worker ... detected and automatically remediated ...

๋А๋ฆฐ ์ž‘์—…์ž๊ฐ€ ๋‚™์˜ค ํ•ญ๋ชฉ์ด ์•„๋‹ˆ๋ฉด ์ถ”๊ฐ€ ์กฐ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ด ์‹คํŒจํ•˜๋ฉด ๋А๋ฆฐ ์ž‘์—…์ž๋กœ ์ธํ•ด Dataflow ๋ชจ๋‹ˆํ„ฐ๋ง ์ธํ„ฐํŽ˜์ด์Šค์— ๋‚™์˜ค ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ์ง€๋ณด์ˆ˜ ์ด๋ฒคํŠธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์š”์ฒญ๊ณผ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ์— ํ• ๋‹น๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋ฉด ์ž๋™ ํ•ด๊ฒฐ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ• ๋‹น๋Ÿ‰์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ '๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ํ• ๋‹น๋Ÿ‰ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ'์˜ ๋ฆฌ์ „ ์ธก์ •ํ•ญ๋ชฉ์— ๋Œ€ํ•œ API ๋น„์œจ ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋” ๋†’์€ ํ• ๋‹น๋Ÿ‰ ๋น„์œจ์„ ์š”์ฒญํ•˜๋ ค๋ฉด 'ํ• ๋‹น๋Ÿ‰ ๋ณด๊ธฐ ๋ฐ ๊ด€๋ฆฌ'์˜ ๋” ๋†’์€ ํ• ๋‹น๋Ÿ‰ ํ•œ๋„ ์š”์ฒญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„