์๋
ํ๋ธ๋ฅด! ์ง๊ธ OTUS์์ ์๋ก์ด ๊ฐ์ข ์คํธ๋ฆผ ๋ฑ๋ก์ด ์งํ ์ค์
๋๋ค.
๋ฐ์ดํฐ ๊ด๋ฆฌ
๊ฐ๋ ฅํ ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค๋ ํธ์ํฐ ์์ง๋์ด๋ง์ ํต์ฌ ์์น์
๋๋ค. BigQuery๋ฅผ ํ๋ซํผ์ ๊ตฌํํ๋ฉด์ ๋ฐ์ดํฐ ๊ฒ์, ์ก์ธ์ค ์ ์ด, ๋ณด์ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธ์ ์ค์ ์ ๋ก๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ ํ์ฅํ์ต๋๋ค.
BigQuery๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ๊ณ ์ก์ธ์คํ ์ ์์ง๋ง ๋ฐ์ดํฐ ์ ์ถ์ ๋ฐฉ์งํ๋ ค๋ฉด ์ด์ ๋ํ ์ด๋ ์ ๋ ์ ์ด๊ฐ ํ์ํ์ต๋๋ค. ๋ค๋ฅธ ๋๊ตฌ ์ค์์ ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ํํ์ต๋๋ค.
๋๋ฉ์ธ ์ ํ ๊ณต์ : ์ฌ์ฉ์๊ฐ BigQuery ๋ฐ์ดํฐ ์ธํธ๋ฅผ Twitter ์ธ๋ถ ์ฌ์ฉ์์ ๊ณต์ ํ์ง ๋ชปํ๋๋ก ํ๋ ๋ฒ ํ ๊ธฐ๋ฅ์ ๋๋ค.VPC ์๋น์ค ์ ์ด : ๋ฐ์ดํฐ ์ ์ถ์ ๋ฐฉ์งํ๊ณ ์ฌ์ฉ์๊ฐ ์๋ ค์ง IP ์ฃผ์ ๋ฒ์์์ BigQuery์ ์ก์ธ์คํ๋๋ก ์๊ตฌํ๋ ์ ์ด์ ๋๋ค.
๋ณด์์ ์ํด AAA(์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ๊ฐ์ฌ) ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ์ต๋๋ค.
- ์ธ์ฆ: ์์ ์์ฒญ์๋ GCP ์ฌ์ฉ์ ๊ณ์ ์ ์ฌ์ฉํ๊ณ ํ๋ก๋์ ์์ฒญ์๋ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ต๋๋ค.
- ์น์ธ: ๊ฐ ๋ฐ์ดํฐ ์ธํธ์๋ ์์ ์ ์๋น์ค ๊ณ์ ๊ณผ ๋ ์ ๊ทธ๋ฃน์ด ํ์ํ์ต๋๋ค.
- ๊ฐ์ฌ: ์ฌ์ด ๋ถ์์ ์ํด ์์ธํ ์ฟผ๋ฆฌ ์คํ ์ ๋ณด๊ฐ ํฌํจ๋ BigQuery Stackdriver ๋ก๊ทธ๋ฅผ BigQuery ๋ฐ์ดํฐ ์ธํธ๋ก ๋ด๋ณด๋์ต๋๋ค.
Twitter ์ฌ์ฉ์์ ๊ฐ์ธ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋๋ก ํ๋ ค๋ฉด ๋ชจ๋ BigQuery ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ฑ๋กํ๊ณ , ๊ฐ์ธ ๋ฐ์ดํฐ์ ์ฃผ์์ ๋ฌ๊ณ , ์ ์ ํ ์ ์ฅ์ ์ ์งํ๊ณ , ์ฌ์ฉ์๊ฐ ์ญ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ญ์ (์คํฌ๋ ์ดํ)ํด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ตฌ๊ธ์ ๋ณด์๋ค
Twitter์์๋ BigQuery์ ๋ฐ์ดํฐ์ธํธ์ ๋ํด ๋ค ๊ฐ์ง ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฏผ๊ฐ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋์ด๋์ด ์์ต๋๋ค.
- ๋งค์ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ธํธ๋ ์ต์ ๊ถํ ์์น์ ๋ฐ๋ผ ํ์์ ๋ฐ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ ๋ฐ์ดํฐ ์ธํธ์๋ ๋ณ๋์ ๋ ์ ๊ทธ๋ฃน์ด ์์ผ๋ฉฐ ๊ฐ๋ณ ๊ณ์ ๋ณ๋ก ์ฌ์ฉ๋์ ์ถ์ ํฉ๋๋ค.
- ์ค๊ฐ ๋ฏผ๊ฐ๋ ๋ฐ์ดํฐ ์ธํธ(์ํฐ๋ ํด์ฑ์ ์ฌ์ฉํ ๋จ๋ฐฉํฅ ๊ฐ๋ช )์๋ ๊ฐ์ธ ์๋ณ ์ ๋ณด(PII)๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ ๋ ๋ง์ ์ง์ ๊ทธ๋ฃน์ด ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฌธ์ ์ ๋ฐ์ดํฐ ์ ์ฉ์ฑ ๊ฐ์ ์ ์ ํ ๊ท ํ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ง์๋ค์ ์ค์ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์์ง ๋ชปํ ์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ฌ์ฉ์ ์ ๊ณ์ฐ๊ณผ ๊ฐ์ ๋ถ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ์ฌ์ฉ์ ์๋ณ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ฏผ๊ฐ๋๊ฐ ๋ฎ์ ๋ฐ์ดํฐ์ธํธ์ ๋๋ค. ์ด๋ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ด์ ์์๋ ์ข์ ์ ๊ทผ ๋ฐฉ์์ด์ง๋ง ์ฌ์ฉ์ ์์ค ๋ถ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ณต๊ฐ ๋ฐ์ดํฐ ์ธํธ(Twitter ์ธ๋ถ์ ๊ณต๊ฐ๋จ)๋ ๋ชจ๋ Twitter ์ง์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ก๊น
์ ๊ฒฝ์ฐ ์์ฝ๋ ์์
์ ์ฌ์ฉํ์ฌ BigQuery ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ด๊ฑฐํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ ์ด์ด(
์์คํ ๊ธฐ๋ฅ
BigQuery๋ ๊ด๋ฆฌํ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ ์์คํ ๊ด๋ฆฌ๋ ์ฌ๋ฌด ์ ๋ฌด์ Twitter์ SREํ์ ๊ฐ์ ์ํฌ ํ์๊ฐ ์์์ต๋๋ค. ์คํ ๋ฆฌ์ง์ ์ปดํจํ ๋ชจ๋์ ๋ ๋ง์ ์ฉ๋์ ์ ๊ณตํ๋ ๊ฒ์ ์ฌ์ ์ต๋๋ค. Google ์ง์ํ์ ํฐ์ผ์ ์์ฑํ์ฌ ์ฌ๋กฏ ์์ฝ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ ํ์๋น์ค ์ฌ๋กฏ ํ ๋น, ๋ชจ๋ํฐ๋ง์ ์ํ ๋์๋ณด๋ ๊ฐ์ ๋ฑ ๊ฐ์ ํ ์ ์๋ ์์ญ์ ํ์ ํ๊ณ ํด๋น ์์ฒญ์ Google์ ์ ์ถํ์ต๋๋ค.
๋น์ฉ
์๋น ๋ถ์์ ๋ฐ๋ฅด๋ฉด BigQuery์ Presto์ ์ฟผ๋ฆฌ ๋น์ฉ์ ๋์ผํ ์์ค์ด์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋กฏ์ ๊ตฌ์
ํ์ต๋๋ค
BigQuery์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด GCS ๋น์ฉ ์ธ์ ๋น์ฉ๋ ๋ฐ์ํ์ต๋๋ค. Scalding๊ณผ ๊ฐ์ ๋๊ตฌ์๋ GCS์ ๋ฐ์ดํฐ์ธํธ๊ฐ ํ์ํ๋ฉฐ BigQuery์ ์ก์ธ์คํ๋ ค๋ฉด ๋์ผํ ๋ฐ์ดํฐ์ธํธ๋ฅผ BigQuery ํ์์ผ๋ก ๋ก๋ํด์ผ ํ์ต๋๋ค.
์์ญ ํํ๋ฐ์ดํธ์ ๋๋ฌผ๊ฒ ์ฟผ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ BigQuery์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ๋น์ฉ ํจ์จ์ ์ด์ง ์๋ค๊ณ ํ๋จํ๊ณ Presto๋ฅผ ์ฌ์ฉํ์ฌ GCS์ ๋ฐ์ดํฐ ์ธํธ์ ์ง์ ์ก์ธ์คํ์ต๋๋ค. ์ด๋ฅผ ์ํด BigQuery ์ธ๋ถ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ดํด๋ณด๊ณ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
์ฐ๋ฆฌ๋ ์ํ ์ถ์ ์ดํ BigQuery์ ๋ง์ ๊ด์ฌ์ ๋ณด์์ต๋๋ค. BigQuery์ ๋ ๋ง์ ๋ฐ์ดํฐ์ธํธ์ ๋ช ๋ น์ด๋ฅผ ์ถ๊ฐํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ BigQuery ์คํ ๋ฆฌ์ง๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋ Scalding๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ ๋๊ตฌ์ฉ ์ปค๋ฅํฐ๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. BigQuery ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์ ์์ค์ ๋ณด๊ณ ์์ ๋ฉ๋ชจ๋ฅผ ์์ฑํ๊ธฐ ์ํด Looker ๋ฐ Apache Zeppelin๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ดํด๋ณด๊ณ ์์ต๋๋ค.
Google๊ณผ์ ํ๋ ฅ์ ๋งค์ฐ ์์ฐ์ ์ด๋ฉฐ ์ด ํํธ๋์ญ์ ๊ณ์ ๋ฐ์ ์์ผ ๋๊ฐ ์ ์๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ฐ๋ฆฌ๋ Google๊ณผ ํ๋ ฅํ์ฌ ์์ฒด์ ์ผ๋ก ๊ตฌํํ์ต๋๋ค.
๋ค์์ Google์ ๋ํ ์ต์ฐ์ ๊ธฐ๋ฅ ์์ฒญ ์ค ์ผ๋ถ์ ๋๋ค.
- ํธ๋ฆฌํ ๋ฐ์ดํฐ ์์ ๋ฐ LZO-Thrift ํ์ ์ง์์ ์ํ ๋๊ตฌ์ ๋๋ค.
- ์๊ฐ๋ณ ์ธ๋ถํ
- ํ ์ด๋ธ, ํ, ์ด ์์ค ๊ถํ๊ณผ ๊ฐ์ ์ก์ธ์ค ์ ์ด๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- BigQuery
์ธ๋ถ ๋ฐ์ดํฐ ์์ค Hive Metastore ํตํฉ ๋ฐ LZO-Thrift ํ์ ์ง์. - BigQuery ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ ํตํฉ ๊ฐ์
- ์ฌ๋กฏ ํ ๋น ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ํ ์ ํ ์๋น์ค์ ๋๋ค.
๊ฒฐ๋ก
๋ฐ์ดํฐ ๋ถ์, ์๊ฐํ, ๋จธ์ ๋ฌ๋์ ์์ ํ ๋ฐฉ์์ผ๋ก ๋ฏผ์ฃผํํ๋ ๊ฒ์ด ๋ฐ์ดํฐ ํ๋ซํผ ํ์ ์ต์ฐ์ ๊ณผ์ ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ๋๊ตฌ๋ก Google BigQuery์ Data Studio๋ฅผ ํ์ ํ๊ณ ์๋ ์ ์ ์ฌ์ ์ผ๋ก BigQuery Alpha๋ฅผ ์ถ์ํ์ต๋๋ค.
BigQuery์ ์ฟผ๋ฆฌ๋ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ Google ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ํ์ดํ๋ผ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ณํํ์ง๋ง, ๋ณต์กํ ํ์ดํ๋ผ์ธ์ ๊ฒฝ์ฐ ์์ฒด Airflow ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ถํด์ผ ํ์ต๋๋ค. ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ณต๊ฐ์์๋ BigQuery์ ์ธ์ฆ, ์น์ธ, ๊ฐ์ฌ ์๋น์ค๊ฐ ์ฐ๋ฆฌ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค. ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ ์งํ๋ ค๋ฉด ๋ ๋ง์ ์ ์ฐ์ฑ์ด ํ์ํ๊ณ ์์ฒด ์์คํ ์ ๊ตฌ์ถํด์ผ ํ์ต๋๋ค. ๊ด๋ฆฌํ ์๋น์ค์ธ BigQuery๋ ์ฌ์ฉ์ด ์ฌ์ ์ต๋๋ค. ์ฟผ๋ฆฌ ๋น์ฉ์ ๊ธฐ์กด ๋๊ตฌ์ ์ ์ฌํ์ต๋๋ค. BigQuery์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด GCS ๋น์ฉ ์ธ์ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค.
์ ๋ฐ์ ์ผ๋ก BigQuery๋ ์ผ๋ฐ์ ์ธ SQL ๋ถ์์ ์ ํฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ BigQuery์ ๋ง์ ๊ด์ฌ์ ๊ฐ๊ณ ์์ผ๋ฉฐ BigQuery๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ง์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ , ๋ ๋ง์ ํ์ ๊ตฌ์ฑํ๊ณ , ๋ ๋ง์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. Twitter๋ Scalding, Spark, Presto ๋ฐ Druid์ ๊ฐ์ ๋๊ตฌ์ ์กฐํฉ์ด ํ์ํ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ ๋ถ์ ๋๊ตฌ๋ฅผ ์ง์์ ์ผ๋ก ๊ฐํํ๊ณ ์ฌ์ฉ์์๊ฒ ์ฐ๋ฆฌ ์ ํ์ ๊ฐ์ฅ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ํํ ์ง์นจ์ ์ ๊ณตํ ๊ณํ์ ๋๋ค.
๊ฐ์ฌ์ ๋ง
์ด ํ๋ก์ ํธ๋ฅผ ์ํด ํ๋ฅญํ ํ๋ ฅ๊ณผ ๋ ธ๋ ฅ์ ํด์ค ๊ณต๋ ์ ์์ด์ ํ ๋๋ฃ์ธ Anju Jha์ Will Pascucci์๊ฒ ๊ฐ์ฌ์ ๋ง์์ ์ ํ๊ณ ์ถ์ต๋๋ค. ๋ํ ์ฐ๋ฆฌ์๊ฒ ๋์์ ์ค Twitter์ Google ์ฌ๋ฌ ํ์ ์์ง๋์ด์ ๊ด๋ฆฌ์, ๊ท์คํ ํผ๋๋ฐฑ์ ์ ๊ณตํ Twitter์ BigQuery ์ฌ์ฉ์์๊ฒ๋ ๊ฐ์ฌ์ ๋ง์์ ์ ํ๊ณ ์ถ์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ค๋ฉด ๋ค์์ ํ์ธํ์ธ์.
์ถ์ฒ : habr.com