Google์€ ๋…ผ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด Logica๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

Google์€ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ๋ฐ ํ”„๋กœ๊ทธ๋žจ์„ SQL๋กœ ๋ณ€ํ™˜ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ƒˆ๋กœ์šด ์„ ์–ธ์  ๋…ผ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ Logica๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์–ธ์–ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋…ผ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฒฐ๊ณผ SQL ์ฝ”๋“œ๋Š” Google BigQuery ์ €์žฅ์†Œ ๋˜๋Š” PostgreSQL ๋ฐ SQLite DBMS์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด์— ๋Œ€ํ•œ ์ง€์›์€ ์•„์ง ์‹คํ—˜์ ์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ์ง€์›๋˜๋Š” SQL ์–ธ์–ด์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆด ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Logica๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์–ธ์–ด์ธ Yedalog๋ฅผ ๊ณ„์† ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ‘œ์ค€ SQL์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Logica์˜ ์ฟผ๋ฆฌ๋Š” ์ผ๋ จ์˜ ๋…ผ๋ฆฌ๋ฌธ ํ˜•์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ, ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋Œ€ํ™”ํ˜• Jupyter Notebook ์…ธ์—์„œ Logica๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2020๋…„ ๋‰ด์Šค์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์–ธ๊ธ‰๋œ ์‚ฌ๋žŒ๋“ค์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ Logica ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ GDELT ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: @OrderBy(Mentions, โ€œmentions descโ€); @Limit(๋ฉ˜์…˜, 10); Mentions(์‚ฌ๋žŒ:, ์–ธ๊ธ‰? += 1) independent :- gdelt-bq.gdeltv2.gkg(persons:, date:), Substr(ToString(date), 0, 4) == โ€œ2020โ€, the_persons == Split (์‚ฌ๋žŒ, ";"), the_persons์˜ ์‚ฌ๋žŒ; $ logica ์–ธ๊ธ‰.l ์‹คํ–‰ ์–ธ๊ธ‰ +โ€”โ€”โ€”โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”-+ | ์‚ฌ๋žŒ | ์–ธ๊ธ‰_ํšŸ์ˆ˜ | +โ€”โ€”โ€”โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”-+ | ๋„๋„๋“œ ํŠธ๋Ÿผํ”„ | 3077130 | | ๋กœ์Šค์•ค์ ค๋ ˆ์Šค | 1078412 | | ์กฐ ๋ฐ”์ด๋“  | 1054827 | | ์กฐ์ง€ ํ”Œ๋กœ์ด๋“œ | 872919 | | ๋ณด๋ฆฌ์Šค ์กด์Šจ | 674786 | | ๋ฒ„๋ฝ ์˜ค๋ฐ”๋งˆ | 438181 | | ๋ธ”๋ผ๋””๋ฏธ๋ฅด ํ‘ธํ‹ด | 410587 | | ๋ฒ„๋‹ˆ ์ƒŒ๋”์Šค | 387383 | | ์•ค๋“œ๋ฅ˜ ์ฟ ์˜ค๋ชจ | 345462 | | ๋ผ์Šค๋ฒ ๊ฐ€์Šค | 325487 | +โ€”โ€”โ€”โ€”โ€”-+โ€”โ€”โ€”โ€”โ€”-+

SQL๋กœ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š๊ณ  ์ฟผ๋ฆฌ ๋ถ€๋ถ„์˜ ์žฌ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง€๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์—ฌ๋Ÿฌ ์ค„ ์ฒด์ธ์„ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐ˜๋ณต ๊ณ„์‚ฐ์˜ ๊ฒฝ์šฐ SQL์€ ๋ทฐ์™€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ ์ž‘์—…์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ณ ๊ธ‰ ์–ธ์–ด์˜ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ•จ์ˆ˜์— ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Œ). Logica๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ณ  ํŠน์ • ์ด๋ฆ„๊ณผ ์—ฐ๊ด€๋˜๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋กœ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘๊ณ  ์ดํ•ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋…ผ๋ฆฌ ๋ธ”๋ก์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€