์ผ๋ง ์ ์ฐ๋ฆฌ๋ ๋น ๋ฐ์ดํฐ ์์ ์ ์ํ ETL ๋๊ตฌ๋ฅผ ์ ํํ๋ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ด์ ์ ์ฌ์ฉํ๋ Informatica BDM ์๋ฃจ์ ์ ์ ํ๋ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ฐ๋ฆฌ์๊ฒ ์ ํฉํ์ง ์์์ต๋๋ค. ๊ทธ ์ฌ์ฉ์ Spark-submit ๋ช ๋ น์ ์คํํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ก ์ถ์๋์์ต๋๋ค. ์์น์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋งค์ผ ์ฒ๋ฆฌํ๋ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์๋ ๋ก๊ทธ ์ ํ์ ์์ฅ์ ๋ง์ง ์์์ต๋๋ค. ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ Ab Initio๋ฅผ ์ ํํ์ต๋๋ค. ํ์ผ๋ฟ ์์ฐ์์ ์ ํ์ ๋งค์ฐ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๋ฅผ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ๋ฌ์์์ด์๋ Ab Initio์ ๋ํ ์ ๋ณด๊ฐ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ Habrรฉ์ ๋ํ ๊ฒฝํ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
Ab Initio์๋ ๊ณ ์ ํ PDL ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ํ์ฅํ ์ ์๋ ๊ณ ์ ์ ์ด๊ณ ํน์ดํ ๋ณํ์ด ๋ง์ด ์์ต๋๋ค. ์๊ท๋ชจ ๊ธฐ์ ์ ๊ฒฝ์ฐ ์ด๋ฌํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ ๊ณผ๋ํ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์ฌ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ท๋ชจ๊ฐ Sberov์ ๊ท๋ชจ์ ๊ฐ๊น์ฐ๋ฉด Ab Initio๊ฐ ํฅ๋ฏธ๋ก์ธ ์ ์์ต๋๋ค.
๊ธฐ์ ์ด ์ ์ธ๊ณ์ ์ผ๋ก ์ง์์ ์ถ์ ํ๊ณ ์ํ๊ณ๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ๊ฐ๋ฐ์๋ ETL ๊ธฐ์ ์ ํฅ์ํ๊ณ ์์ ๋ํ ์ง์์ ํฅ์ํ๋ฉฐ PDL ์ธ์ด๋ฅผ ๋ง์คํฐํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๊ณ ๋ก๋ฉ ํ๋ก์ธ์ค์ ๋ํ ์๊ฐ์ ๊ทธ๋ฆผ์ ์ ๊ณตํ๋ฉฐ ๊ฐ๋ฐ์ ๋จ์ํํฉ๋๋ค. ๊ธฐ๋ฅ์ฑ ์ฑ๋ถ์ด ํ๋ถํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ๊ฒ์๋ฌผ์์๋ Ab Initio์ ๊ธฐ๋ฅ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ Hive ๋ฐ GreenPlum ์์ ์ ๋น๊ต ํน์ฑ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
- MDW ํ๋ ์์ํฌ์ ๋ํ ์ค๋ช ๋ฐ GreenPlum์ ๋ํ ์ฌ์ฉ์ ์ ์ ์์
- Hive์ GreenPlum์ Ab Initio ์ฑ๋ฅ ๋น๊ต
- ๊ฑฐ์ ์ค์๊ฐ ๋ชจ๋์์ GreenPlum์ ์ฌ์ฉํ์ฌ Ab Initio ์์
์ด ์ ํ์ ๊ธฐ๋ฅ์ ๋งค์ฐ ๊ด๋ฒ์ํ๊ณ ์ฐ๊ตฌํ๋ ๋ฐ ๋ง์ ์๊ฐ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ ์์
๊ธฐ์ ๊ณผ ์ฌ๋ฐ๋ฅธ ์ฑ๋ฅ ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋งค์ฐ ์ธ์์ ์
๋๋ค. ๊ฐ๋ฐ์์๊ฒ Ab Initio๋ฅผ ์ฌ์ฉํ๋ฉด ํฅ๋ฏธ๋ก์ด ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ ์คํฌ๋ฆฝํธ์ ์ ์ฌํ ์ธ์ด๋ก ์๊ฐ์ ํ๊ฒฝ๊ณผ ๋ค์ด๋ก๋ ๊ฐ๋ฐ์ ํผํฉํ ETL ๊ฐ๋ฐ์ ๋ํ ์๋ก์ด ์๋์
๋๋ค.
๊ธฐ์ ์ ์ํ๊ณ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ผ๋ฉฐ ์ด ๋๊ตฌ๋ ๊ทธ ์ด๋ ๋๋ณด๋ค ์ ์ฉํฉ๋๋ค. Ab Initio๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ๋น์ฆ๋์ค์ ๋ํ ์ง์์ ์ถ์ ํ๊ณ ์ด ์ง์์ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ๋น์ฆ๋์ค๋ฅผ ํ์ฅํ๊ณ ์๋ก์ด ๋น์ฆ๋์ค๋ฅผ ์ด ์ ์์ต๋๋ค. Ab Initio์ ๋์์ผ๋ก๋ ์๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์ธ Informatica BDM๊ณผ ๋น์๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์ธ Apache Spark๊ฐ ์์ต๋๋ค.
Ab Initio์ ๋ํ ์ค๋ช
๋ค๋ฅธ ETL ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก Ab Initio๋ ์ ํ ๋ชจ์์ ๋๋ค.
Ab Initio GDE(๊ทธ๋ํฝ ๊ฐ๋ฐ ํ๊ฒฝ)๋ ๋ฐ์ดํฐ ๋ณํ์ ๊ตฌ์ฑํ๊ณ ์ด๋ฅผ ํ์ดํ ํํ์ ๋ฐ์ดํฐ ํ๋ฆ๊ณผ ์ฐ๊ฒฐํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฒฝ์
๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฌํ ๋ณํ ์งํฉ์ ๊ทธ๋ํ๋ผ๊ณ ํฉ๋๋ค.
๊ธฐ๋ฅ ๊ตฌ์ฑ ์์์ ์
๋ ฅ ๋ฐ ์ถ๋ ฅ ์ฐ๊ฒฐ์ ํฌํธ์ด๋ฉฐ ๋ณํ ๋ด์์ ๊ณ์ฐ๋ ํ๋๋ฅผ ํฌํจํฉ๋๋ค. ์คํ ์์์ ๋ฐ๋ผ ํ์ดํ ํํ์ ํ๋ฆ์ผ๋ก ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๊ทธ๋ํ๋ฅผ ๊ณํ์ด๋ผ๊ณ ํฉ๋๋ค.
์๋ฐฑ ๊ฐ์ง์ ๊ธฐ๋ฅ์ ๊ตฌ์ฑ ์์๊ฐ ์๋๋ฐ ์ด๋ ๋ง์ต๋๋ค. ๊ทธ๋ค ์ค ๋ค์๋ ๊ณ ๋๋ก ์ ๋ฌธํ๋์ด ์์ต๋๋ค. Ab Initio์ ๊ธฐ๋ณธ ๋ณํ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ETL ๋๊ตฌ๋ณด๋ค ๋ ๊ด๋ฒ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Join์๋ ์ฌ๋ฌ ์ถ๋ ฅ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ์ ์ ์ฐ๊ฒฐํ ๊ฒฐ๊ณผ ์ธ์๋ ํค๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ์ถ๋ ฅ ๋ ์ฝ๋๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋ํ ํ ์คํธ ํ์ผ๊ณผ ๋์ผํ ์ด์์ ์ฝ์ ์ ์๊ณ ๋ค๋ฅธ ๋ณํ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ณํ ์์ ์ ๊ฑฐ๋ถ, ์ค๋ฅ ๋ฐ ๋ก๊ทธ๋ฅผ ์ป์ ์๋ ์์ต๋๋ค.
๋๋ ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ์์ ๊ธฐ๋ฅผ ํ
์ด๋ธ ํ์์ผ๋ก ๊ตฌ์ฒดํํ๊ณ ๋์ผํ ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
์๋์ ๋ณํ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ค์บ ๋ณํ์๋ ๋ถ์ ๊ธฐ๋ฅ๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ฑ, Excel ์ฝ๊ธฐ, ์ ๊ทํ, ๊ทธ๋ฃน ๋ด ์ ๋ ฌ, ํ๋ก๊ทธ๋จ ์คํ, SQL ์คํ, DB์ ์กฐ์ธ ๋ฑ ์ด๋ฆ์ด ์์ฒด์ ์ผ๋ก ์ค๋ช ๋๋ ๋ณํ์ด ์์ต๋๋ค. ๊ทธ๋ํ๋ ๋งค๊ฐ๋ณ์ ์ ๋ฌ ๊ฐ๋ฅ์ฑ์ ํฌํจํ์ฌ ๋ฐํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ ์ฒด์ . ๊ทธ๋ํ์ ์ ๋ฌ๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋งค๊ฐ๋ณ์ ์ธํธ๊ฐ ์๋ ํ์ผ์ ๋งค๊ฐ๋ณ์ ์ธํธ(pset)๋ผ๊ณ ํฉ๋๋ค.
์์๋๋ก Ab Initio GDE์๋ EME(Enterprise Meta Environment)๋ผ๋ ์์ฒด ์ ์ฅ์๊ฐ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ก์ปฌ ๋ฒ์ ์ ์ฝ๋๋ก ์์ ํ๊ณ ๊ฐ๋ฐ ๋ด์ฉ์ ์ค์ ์ ์ฅ์์ ์ฒดํฌ์ธํ ์ ์๋ ๊ธฐํ๋ฅผ ๊ฐ์ต๋๋ค.
๊ทธ๋ํ๋ฅผ ์คํํ๋ ๋์์ด๋ ์คํํ ํ์ ๋ณํ์ ์ฐ๊ฒฐํ๋ ํ๋ฆ์ ํด๋ฆญํ๊ณ ์ด๋ฌํ ๋ณํ ์ฌ์ด์ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ํ ์์์ ์คํธ๋ฆผ์ ํด๋ฆญํ๊ณ ์ถ์ ์ธ๋ถ ์ ๋ณด(๋ณํ์ด ์ํ๋ ๋ณ๋ ฌ ์, ์ด๋ค ๋ณ๋ ฌ์ ๋ก๋๋ ๋ผ์ธ ๋ฐ ๋ฐ์ดํธ ์)๋ฅผ ๋ณผ ์๋ ์์ต๋๋ค.
๊ทธ๋ํ์ ์คํ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋๊ณ ์ผ๋ถ ๋ณํ์ ๋จผ์ (XNUMX ๋จ๊ณ์์) ์ํํด์ผ ํ๊ณ , ๋ค์ ๋ณํ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์, ๋ค์ ๋ณํ์ ๋ ๋ฒ์งธ ๋จ๊ณ์์ ์ํํด์ผ ํ๋ค๋ ์ ์ ํ์ํ ์ ์์ต๋๋ค.
๊ฐ ๋ณํ์ ๋ํด ์์ ๋ ์ด์์(์คํ๋ ์์น)์ ์ ํํ ์ ์์ต๋๋ค. ์ฆ, ๋ณ๋ ฌ์ด ์๊ฑฐ๋ ๋ณ๋ ฌ ์ค๋ ๋์์ ๊ฐ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๋์์ ๋ณํ์ด ์คํ๋ ๋ Ab Initio๊ฐ ์์ฑํ๋ ์์ ํ์ผ์ ์๋ฒ ํ์ผ ์์คํ ๊ณผ HDFS ๋ชจ๋์ ๋ฐฐ์น๋ ์ ์์ต๋๋ค.
๊ฐ ๋ณํ์์๋ ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก PDL์์ ์๊ณผ ์ ์ฌํ ๊ณ ์ ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
PDL์ ์ฌ์ฉํ๋ฉด ๋ณํ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ผ๋ฉฐ, ํนํ ๋ฐํ์์ ๋ฐํ์ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ์์์ ์ฝ๋ ์กฐ๊ฐ์ ๋์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
Ab Initio๋ ๋ํ ์์ ํตํด OS์์ ํตํฉ์ด ์ ๋ฐ๋ฌ๋์ด ์์ต๋๋ค. ํนํ Sberbank๋ Linux ksh๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ธ๊ณผ ๋ณ์๋ฅผ ๊ตํํ์ฌ ๊ทธ๋ํ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ธ์์ Ab Initio ๊ทธ๋ํ ์คํ์ ํธ์ถํ๊ณ Ab Initio๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Ab Initio GDE ์ธ์๋ ๋ค์ํ ์ ํ์ด ๋ฐฐ์ก์ ํฌํจ๋์ด ์์ต๋๋ค. ์ด์ ์ฒด์ ๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์ฒด Co>Operation System์ด ์์ต๋๋ค. ๋ค์ด๋ก๋ ํ๋ฆ์ ์์ฝํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์๋ ์ ์ด>์ผํฐ๊ฐ ์์ต๋๋ค. Ab Initio GDE๊ฐ ํ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ์์์ ์ธ ์์ค์์ ๊ฐ๋ฐ์ ์ํํ๊ธฐ ์ํ ์ ํ์ด ์์ต๋๋ค.
MDW ํ๋ ์์ํฌ์ ๋ํ ์ค๋ช ๋ฐ GreenPlum์ ๋ํ ์ฌ์ฉ์ ์ ์ ์์
ํด๋น ์ ํ๊ณผ ํจ๊ป ๊ณต๊ธ์ ์ฒด๋ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๋๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ฑ์ฐ๋ ์ผ๋ฐ์ ์ธ ์์ ์ ์ง์ํ๋๋ก ์ค๊ณ๋ ๊ทธ๋ํ ๊ตฌ์ฑ๊ธฐ์ธ MDW(Metadata Driven Warehouse) ์ ํ์ ๊ณต๊ธํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์ฌ์ฉ์ ์ ์(ํ๋ก์ ํธ๋ณ) ๋ฉํ๋ฐ์ดํฐ ํ์์ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ์ฑ ์ฝ๋ ์์ฑ๊ธฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์
๋ ฅ์ผ๋ก MDW๋ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(Oracle, Teradata ๋๋ Hive)์ ๋ํ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํ ๊ตฌ์ฑ ํ์ผ ๋ฐ ๊ธฐํ ์ค์ ์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก์ ํธ๋ณ ๋ถ๋ถ์ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฐํฌํฉ๋๋ค. ์ ํ์ ๊ธฐ๋ณธ ์ ๊ณต ๋ถ๋ถ์ ๋ชจ๋ธ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ๊ทธ๋ํ์ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ํฐํฐ ์
๋ฐ์ดํธ์ ๋ํ ์ฆ๋ถ ์์
๋ฐ ์ด๊ธฐํ์ ์ฌ๋ฌ ๋ชจ๋์ ๋ํ ๊ทธ๋ํ(๋ฐ pset)๊ฐ ์์ฑ๋ฉ๋๋ค.
Hive์ RDBMS์ ๊ฒฝ์ฐ ์ด๊ธฐํ์ ์ฆ๋ถ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ์๋ก ๋ค๋ฅธ ๊ทธ๋ํ๊ฐ ์์ฑ๋ฉ๋๋ค.
Hive์ ๊ฒฝ์ฐ ๋ค์ด์ค๋ ๋ธํ ๋ฐ์ดํฐ๋ ์ ๋ฐ์ดํธ ์ด์ ์ ํ ์ด๋ธ์ ์๋ ๋ฐ์ดํฐ์ Ab Initio Join์ ํตํด ์ฐ๊ฒฐ๋ฉ๋๋ค. MDW(Hive ๋ฐ RDBMS ๋ชจ๋)์ ๋ฐ์ดํฐ ๋ก๋๋ ๋ธํ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ฟ๋ง ์๋๋ผ ๊ธฐ๋ณธ ํค๊ฐ ๋ธํ๋ฅผ ์์ ํ ๋ฐ์ดํฐ์ ๊ด๋ จ ๊ธฐ๊ฐ์ ๋ซ์ต๋๋ค. ๋ํ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ๋์ง ์์ ๋ถ๋ถ์ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ํ์ง๋ง Hive์๋ ์ญ์ ๋๋ ์ ๋ฐ์ดํธ ์์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ์ํํด์ผ ํฉ๋๋ค.
RDBMS์ ๊ฒฝ์ฐ, RDBMS์๋ ์ค์ ์
๋ฐ์ดํธ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ฆ๋ถ ๋ฐ์ดํฐ ์
๋ฐ์ดํธ์ ๋ํ ๊ทธ๋ํ๊ฐ ๋ ์ต์ ์ผ๋ก ๋ณด์
๋๋ค.
์์ ๋ ๋ธํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๊ฐ ํ
์ด๋ธ์ ๋ก๋๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ธํ๋ ์
๋ฐ์ดํธ ์ด์ ์ ํ
์ด๋ธ์ ์๋ ๋ฐ์ดํฐ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์์ฑ๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ SQL์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ SQL ๋ช
๋ น delete+insert๋ฅผ ์ฌ์ฉํ์ฌ ๋ธํ์ ์ ๋ฐ์ดํฐ๊ฐ ๋์ ํ
์ด๋ธ์ ์ฝ์
๋๊ณ ๊ธฐ๋ณธ ํค๊ฐ ๋ธํ๋ฅผ ์์ ํ ๋ฐ์ดํฐ์ ๊ด๋ จ ๊ธฐ๊ฐ์ด ๋ซํ๋๋ค.
๋ณ๊ฒฝ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ธ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ Hive์ ๊ฒฝ์ฐ Hive์ ์ ๋ฐ์ดํธ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ MDW๊ฐ ์ ์ฒด ํ ์ด๋ธ์ ๋ค์ ์์ฑํด์ผ ํ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ฐ์ดํธํ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ค์ ์ฐ๋ ๊ฒ๋ณด๋ค ๋ ์ข์ ๊ฒ์ ์์ต๋๋ค. ๋ฐ๋ฉด RDBMS์ ๊ฒฝ์ฐ ์ ํ ์์ฑ์๋ ํ ์ด๋ธ ์ฐ๊ฒฐ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ SQL ์ฌ์ฉ์ ๋งก๊ธธ ํ์๊ฐ ์๋ค๊ณ ํ๋จํ์ต๋๋ค.
Sberbank์ ํ๋ก์ ํธ๋ฅผ ์ํด ์ฐ๋ฆฌ๋ GreenPlum์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๊ตฌํ์ ๋ง๋ค์์ต๋๋ค. ์ด๋ MDW๊ฐ Teradata์ฉ์ผ๋ก ์์ฑํ ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋์์ต๋๋ค. ์ด์ ๊ฐ์ฅ ๊ฐ๊น๊ณ ์ต์ ์ ๋คํ ๊ฒ์ Oracle์ด ์๋๋ผ Teradata์์ต๋๋ค. ์๋ํ๋ฉด... MPP ์์คํ ์ด๊ธฐ๋ ํฉ๋๋ค. Teradata์ GreenPlum์ ์์ ๋ฐฉ์๊ณผ ๊ตฌ๋ฌธ์ ์ ์ฌํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๋ค์ํ RDBMS ๊ฐ์ MDW ์ค์ํ ์ฐจ์ด์ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. GreenPlum์์๋ Teradata์ ๋ฌ๋ฆฌ ํ ์ด๋ธ์ ์์ฑํ ๋ ์ ์ ์์ฑํด์ผ ํฉ๋๋ค.
distributed by
ํ ๋ผ๋ฐ์ดํ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฐ๊ณ ์์ต๋๋ค.
delete <table> all
, ๊ทธ๋ฆฌ๊ณ GreenPlum์์๋ ๋ค์๊ณผ ๊ฐ์ด ์๋๋ค.
delete from <table>
Oracle์์๋ ์ต์ ํ ๋ชฉ์ ์ผ๋ก ๋ค์์ ์์ฑํฉ๋๋ค.
delete from t where rowid in (<ัะพะตะดะธะฝะตะฝะธะต t ั ะดะตะปััะพะน>)
, Teradata์ GreenPlum์ด ์์ฑ
delete from t where exists (select * from delta where delta.pk=t.pk)
๋ํ Ab Initio๊ฐ GreenPlum๊ณผ ํจ๊ป ์๋ํ๋ ค๋ฉด Ab Initio ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋์ GreenPlum ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํด์ผ ํ์ต๋๋ค. ์ด๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋์์ ๋์์ GreenPlum์ ์ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ GreenPlum์์ ๋ณ๋ ฌ๋ก ์ฝ๊ณ ๊ฐ ๋ณ๋ ฌ Ab Initio ์ค๋ ๋๊ฐ GreenPlum์์ ๋ฐ์ดํฐ์ ์์ฒด ๋ถ๋ถ์ ์ฝ์ผ๋ ค๋ฉด SQL ์ฟผ๋ฆฌ์ "where" ์น์ ์ Ab Initio๊ฐ ์ดํดํ๋ ๊ตฌ์ฑ์ ๋ฐฐ์นํด์ผ ํ์ต๋๋ค.
where ABLOCAL()
๋ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ์ฌ ์ด ๊ตฌ์ฑ์ ๊ฐ์ ๊ฒฐ์ ํฉ๋๋ค.
ablocal_expr=ยซstring_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))ยป
, ๋ค์๊ณผ ๊ฐ์ด ์ปดํ์ผ๋ฉ๋๋ค.
mod(sk,10)=3
, ์ฆ. ๊ฐ ํํฐ์ ์ ๋ํด ๋ช ์์ ์ธ ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ GreenPlum์ ๋ฉ์์ง๋ฅผ ํ์ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Teradata, Oracle)์ ๊ฒฝ์ฐ Ab Initio๋ ์ด ๋ณ๋ ฌํ๋ฅผ ์๋์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
Hive์ GreenPlum์ Ab Initio ์ฑ๋ฅ ๋น๊ต
Sberbank๋ Hive ๋ฐ GreenPlum๊ณผ ๊ด๋ จํ์ฌ MDW ์์ฑ ๊ทธ๋ํ์ ์ฑ๋ฅ์ ๋น๊ตํ๋ ์คํ์ ์ํํ์ต๋๋ค. ์คํ์ ์ผํ์ผ๋ก Hive์ ๊ฒฝ์ฐ Ab Initio์ ๋์ผํ ํด๋ฌ์คํฐ์ 5๊ฐ์ ๋ ธ๋๊ฐ ์์๊ณ , GreenPlum์ ๊ฒฝ์ฐ ๋ณ๋์ ํด๋ฌ์คํฐ์ 4๊ฐ์ ๋ ธ๋๊ฐ ์์์ต๋๋ค. ์ ๊ฒ๋ค. Hive๋ GreenPlum์ ๋นํด ํ๋์จ์ด ์ด์ ์ด ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ Hive์ GreenPlum์์ ๋์ผํ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์์ ์ ์ํํ๋ ๋ ์์ ๊ทธ๋ํ๋ฅผ ๊ณ ๋ คํ์ต๋๋ค. ๋์์ MDW ๊ตฌ์ฑ๊ธฐ์ ์ํด ์์ฑ๋ ๊ทธ๋ํ๊ฐ ์์๋์์ต๋๋ค.
- Hive ํ ์ด๋ธ์ ๋ฌด์์๋ก ์์ฑ๋ ๋ฐ์ดํฐ์ ์ด๊ธฐ ๋ก๋ + ์ฆ๋ถ ๋ก๋
- ๋์ผํ GreenPlum ํ ์ด๋ธ์ ๋ฌด์์๋ก ์์ฑ๋ ๋ฐ์ดํฐ์ ์ด๊ธฐ ๋ก๋ + ์ฆ๋ถ ๋ก๋
๋ ๊ฒฝ์ฐ ๋ชจ๋(Hive ๋ฐ GreenPlum) ๋์ผํ Ab Initio ํด๋ฌ์คํฐ์์ 10๊ฐ์ ๋ณ๋ ฌ ์ค๋ ๋์ ์ ๋ก๋๋ฅผ ์คํํ์ต๋๋ค. Ab Initio๋ ๊ณ์ฐ์ ์ํด ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ HDFS์ ์ ์ฅํ์ต๋๋ค(Ab Initio์ ๊ฒฝ์ฐ HDFS๋ฅผ ์ฌ์ฉํ MFS ๋ ์ด์์์ ์ฌ์ฉํ์ต๋๋ค). ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฌด์์๋ก ์์ฑ๋ ๋ฐ์ดํฐ ํ ์ค์ด 200๋ฐ์ดํธ๋ฅผ ์ฐจ์งํ์ต๋๋ค.
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.
ํ์ด๋ธ :
Hive์ ์ด๊ธฐ ๋ก๋ฉ
์ฝ์
๋ ํ
+ 6 000 000
+ 60 000 000
+ 600 000 000
์ด๊ธฐํ ๊ธฐ๊ฐ
๋ช ์ด ๋ง์ ๋ค์ด๋ก๋
41
203
1 601
Hive์ ์ฆ๋ถ ๋ก๋ฉ
์ฌ์ฉ ๊ฐ๋ฅํ ํ ์
์คํ ์์ ์ ๋ชฉํ ํ
์ด๋ธ
+ 6 000 000
+ 60 000 000
+ 600 000 000
์ ์ฉ๋๋ ๋ธํ ๋ผ์ธ ์
์คํ ์ค ํ๊ฒ ํ
์ด๋ธ
+ 6 000 000
+ 6 000 000
+ 6 000 000
์ฆ๋ถ ๊ธฐ๊ฐ
๋ช ์ด ๋ง์ ๋ค์ด๋ก๋
88
299
2 541
๊ทธ๋ฆฐํ๋ผ:
GreenPlum์ ์ด๊ธฐ ๋ก๋ฉ
์ฝ์
๋ ํ
+ 6 000 000
+ 60 000 000
+ 600 000 000
์ด๊ธฐํ ๊ธฐ๊ฐ
๋ช ์ด ๋ง์ ๋ค์ด๋ก๋
72
360
3 631
GreenPlum์ ์ฆ๋ถ ๋ก๋ฉ
์ฌ์ฉ ๊ฐ๋ฅํ ํ ์
์คํ ์์ ์ ๋ชฉํ ํ
์ด๋ธ
+ 6 000 000
+ 60 000 000
+ 600 000 000
์ ์ฉ๋๋ ๋ธํ ๋ผ์ธ ์
์คํ ์ค ํ๊ฒ ํ
์ด๋ธ
+ 6 000 000
+ 6 000 000
+ 6 000 000
์ฆ๋ถ ๊ธฐ๊ฐ
๋ช ์ด ๋ง์ ๋ค์ด๋ก๋
159
199
321
Hive์ GreenPlum ๋ชจ๋์ ์ด๊ธฐ ๋ก๋ฉ ์๋๋ ๋ฐ์ดํฐ ์์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ๋ฌ๋ผ์ง๋ฉฐ ๋ ๋์ ํ๋์จ์ด๋ก ์ธํด GreenPlum๋ณด๋ค Hive๊ฐ ์ฝ๊ฐ ๋ ๋น ๋ฆ ๋๋ค.
Hive์ ์ฆ๋ถ ๋ก๋ ์ญ์ ๋์ ํ ์ด๋ธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด์ ์ ๋ก๋๋ ๋ฐ์ดํฐ์ ๋ณผ๋ฅจ์ ์ ํ์ ์ผ๋ก ์์กดํ๋ฉฐ ๋ณผ๋ฅจ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋งค์ฐ ๋๋ฆฌ๊ฒ ์งํ๋ฉ๋๋ค. ์ด๋ ๋์ ํ ์ด๋ธ์ ์์ ํ ๋ค์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ์ด๋ ๊ฑฐ๋ํ ํ ์ด๋ธ์ ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๊ฒ์ด Hive์ ์ข์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
GreenPlum์ ์ฆ๋ถ ๋ก๋๋ ๋์ ํ ์ด๋ธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด์ ์ ๋ก๋๋ ๋ฐ์ดํฐ์ ์์ ๋ฐ๋ผ ์ฝํ๊ฒ ๋ฌ๋ผ์ง๋ฉฐ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์งํ๋ฉ๋๋ค. ์ด๋ ์ญ์ ์์ ์ ํ์ฉํ๋ SQL ์กฐ์ธ ๋ฐ GreenPlum ์ํคํ ์ฒ ๋๋ถ์ ๋ฐ์ํ์ต๋๋ค.
๋ฐ๋ผ์ GreenPlum์ delete+insert ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ธํ๋ฅผ ์ถ๊ฐํ์ง๋ง Hive์๋ ์ญ์ ๋๋ ์ ๋ฐ์ดํธ ์์ ์ด ์์ผ๋ฏ๋ก ์ฆ๋ถ ์ ๋ฐ์ดํธ ์ค์ ์ ์ฒด ๋ฐ์ดํฐ ๋ฐฐ์ด์ ์์ ํ ๋ค์ ์์ฑํด์ผ ํ์ต๋๋ค. ๊ตต์ ๊ธ์จ๋ก ๊ฐ์กฐ ํ์๋ ์ ์ ๋น๊ต๋ ๋ฆฌ์์ค ์ง์ฝ์ ์ธ ๋ค์ด๋ก๋๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ต์ ์ ํด๋นํ๋ฏ๋ก ๊ฐ์ฅ ์ ๋๋ฌ๋ฉ๋๋ค. ์ด ํ ์คํธ์์ GreenPlum์ด Hive๋ฅผ 8๋ฐฐ๋ ์์ฐ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ฑฐ์ ์ค์๊ฐ ๋ชจ๋์์ GreenPlum์ ์ฌ์ฉํ์ฌ Ab Initio ์์
์ด ์คํ์์๋ ๋ฌด์์๋ก ์์ฑ๋ ๋ฐ์ดํฐ ์ฒญํฌ๋ก ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก GreenPlum ํ ์ด๋ธ์ ์ ๋ฐ์ดํธํ๋ Ab Initio์ ๊ธฐ๋ฅ์ ํ ์คํธํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์์ ํ GreenPlum ํ ์ด๋ธ dev42_1_db_usl.TESTING_SUBJ_org_finval์ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค.
์ธ ๊ฐ์ง Ab Initio ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ๊ฒ ์ต๋๋ค.
1) Graph Create_test_data.mp โ 10๊ฐ์ ๋ณ๋ ฌ ์ค๋ ๋์ 6๊ฐ์ ํ์ด ์๋ HDFS์ ๋ฐ์ดํฐ ํ์ผ์ ์์ฑํฉ๋๋ค. ๋ฐ์ดํฐ๋ ๋ฌด์์์ด๋ฉฐ ๊ทธ ๊ตฌ์กฐ๋ ํ ์ด๋ธ์ ์ฝ์ ๋๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
2) ๊ทธ๋ํ mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset โ 10๊ฐ์ ๋ณ๋ ฌ ์ค๋ ๋์์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์
์ ์ด๊ธฐํํ์ฌ MDW์์ ์์ฑ๋ ๊ทธ๋ํ(๊ทธ๋ํ (1)์์ ์์ฑ๋ ํ
์คํธ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ๋จ)
3) ๊ทธ๋ํ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset โ ๊ทธ๋ํ์์ ์์ฑ๋ ์๋ก ์์ ๋ ๋ฐ์ดํฐ(๋ธํ)์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํ์ฌ 10๊ฐ์ ๋ณ๋ ฌ ์ค๋ ๋์์ ํ
์ด๋ธ์ ์ฆ๋ถ ์
๋ฐ์ดํธ๋ฅผ ์ํด MDW์์ ์์ฑ๋ ๊ทธ๋ํ(1)
NRT ๋ชจ๋์์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
- 6๊ฐ์ ํ ์คํธ ๋ผ์ธ ์์ฑ
- ์ด๊ธฐ ๋ก๋๋ฅผ ์ํํ์ฌ ๋น ํ ์ด๋ธ์ 6๊ฐ์ ํ ์คํธ ํ์ ์ฝ์ ํฉ๋๋ค.
- ์ฆ๋ถ ๋ค์ด๋ก๋๋ฅผ 5ํ ๋ฐ๋ณต
- 6๊ฐ์ ํ ์คํธ ๋ผ์ธ ์์ฑ
- 6๊ฐ์ ํ ์คํธ ํ์ ํ ์ด๋ธ์ ์ฆ๋ถ ์ฝ์ ํฉ๋๋ค(์ด ๊ฒฝ์ฐ valid_to_ts ๋ง๋ฃ ์๊ฐ์ ์ด์ ๋ฐ์ดํฐ๋ก ์ค์ ๋๊ณ ๋์ผํ ๊ธฐ๋ณธ ํค๋ฅผ ๊ฐ์ง ์ต์ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋ฉ๋๋ค).
์ด ์๋๋ฆฌ์ค๋ ํน์ ๋น์ฆ๋์ค ์์คํ ์ ์ค์ ์ด์ ๋ชจ๋๋ฅผ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ์ฆ, ์๋นํ ๋ง์ ์์ ์ ๋ฐ์ดํฐ๊ฐ ์ค์๊ฐ์ผ๋ก ๋ํ๋๊ณ ์ฆ์ GreenPlum์ ์์์ง๋๋ค.
์ด์ ์คํฌ๋ฆฝํธ์ ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
2020-06-04 11:49:11์ Create_test_data.input.pset ์์
2020-06-04 11:49:37์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:11์ mdw_load.day_one.current.dev49_37_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:11์ mdw_load.day_one.current.dev50_42_db_usl_testing_subj_org_finval.pset ์๋ฃ
2020-06-04 11:50:42์ Create_test_data.input.pset ์์
2020-06-04 11:51:06์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:11์ mdw_load.regular.current.dev51_06_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:11์ mdw_load.regular.current.dev53_41_db_usl_testing_subj_org_finval.pset ์๋ฃ
2020-06-04 11:53:41์ Create_test_data.input.pset ์์
2020-06-04 11:54:04์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:11์ mdw_load.regular.current.dev54_04_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:11์ mdw_load.regular.current.dev56_51_db_usl_testing_subj_org_finval.pset ์๋ฃ
2020-06-04 11:56:51์ Create_test_data.input.pset ์์
2020-06-04 11:57:14์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:11์ mdw_load.regular.current.dev57_14_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:11์ mdw_load.regular.current.dev59_55_db_usl_testing_subj_org_finval.pset ์๋ฃ
2020-06-04 11:59:55์ Create_test_data.input.pset ์์
2020-06-04 12:00:23์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:12์ mdw_load.regular.current.dev00_23_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:12์ mdw_load.regular.current.dev03_23_db_usl_testing_subj_org_finval.pset ์๋ฃ
2020-06-04 12:03:23์ Create_test_data.input.pset ์์
2020-06-04 12:03:49์ Create_test_data.input.pset ์๋ฃ
42-1-2020 06:04:12์ mdw_load.regular.current.dev03_49_db_usl_testing_subj_org_finval.pset๋ฅผ ์์ํ์ธ์.
42-1-2020 06:04:12์ mdw_load.regular.current.dev06_46_db_usl_testing_subj_org_finval.pset ์๋ฃ
์ด ์ฌ์ง์ด ๋์ต๋๋ค.
๊ทธ๋ํ
์์ ์๊ฐ
์ข
๋ฃ ์๊ฐ
๊ธธ์ด
Create_test_data.input.pset
04.06.2020 11 : 49 : 11
04.06.2020 11 : 49 : 37
00:00:26
mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11 : 49 : 37
04.06.2020 11 : 50 : 42
00:01:05
Create_test_data.input.pset
04.06.2020 11 : 50 : 42
04.06.2020 11 : 51 : 06
00:00:24
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11 : 51 : 06
04.06.2020 11 : 53 : 41
00:02:35
Create_test_data.input.pset
04.06.2020 11 : 53 : 41
04.06.2020 11 : 54 : 04
00:00:23
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11 : 54 : 04
04.06.2020 11 : 56 : 51
00:02:47
Create_test_data.input.pset
04.06.2020 11 : 56 : 51
04.06.2020 11 : 57 : 14
00:00:23
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11 : 57 : 14
04.06.2020 11 : 59 : 55
00:02:41
Create_test_data.input.pset
04.06.2020 11 : 59 : 55
04.06.2020 12 : 00 : 23
00:00:28
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12 : 00 : 23
04.06.2020 12 : 03 : 23
00:03:00
Create_test_data.input.pset
04.06.2020 12 : 03 : 23
04.06.2020 12 : 03 : 49
00:00:26
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12 : 03 : 49
04.06.2020 12 : 06 : 46
00:02:57
6๊ฐ์ ์ฆ๋ถ ๋ผ์ธ์ด 000๋ถ ์์ ์ฒ๋ฆฌ๋๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๋ ๋งค์ฐ ๋น ๋ฅธ ์๋์
๋๋ค.
๋์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ถํฌ๋์ด ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;
๊ทธ๋ํ๊ฐ ์์๋ ์๊ฐ์ ์ฝ์
๋ ๋ฐ์ดํฐ์ ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ Ab Initio์์ ๋งค์ฐ ๋์ ๋น๋๋ก GreenPlum์ ๋ฐ์ดํฐ ์ฆ๋ถ ๋ก๋๋ฅผ ์คํํ๊ณ ์ด ๋ฐ์ดํฐ๋ฅผ GreenPlum์ ์ฝ์
ํ๋ ๋น ๋ฅธ ์๋๋ฅผ ๊ด์ฐฐํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฌผ๋ก ๋ค๋ฅธ ETL ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก Ab Initio๋ ์คํ ์ "์์"ํ๋ ๋ฐ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ XNUMX์ด์ ํ ๋ฒ ์คํํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ฒฐ๋ก
Ab Initio๋ ํ์ฌ Sberbank์์ ESS(Unified Semantic Data Layer)๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํ๋ก์ ํธ์๋ ๋ค์ํ ์ํ ์ฌ์ ์ฒด ์ํ์ ํตํฉ ๋ฒ์ ์ ๊ตฌ์ถํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ ๋ณด๋ ๋ค์ํ ์์ค์์ ๋์ค๋ฉฐ ๊ทธ ๋ณต์ ๋ณธ์ Hadoop์์ ์ค๋น๋ฉ๋๋ค. ๋น์ฆ๋์ค ์๊ตฌ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ค๋นํ๊ณ ๋ฐ์ดํฐ ๋ณํ์ ์ค๋ช ํฉ๋๋ค. Ab Initio๋ ESN์ ์ ๋ณด๋ฅผ ๋ก๋ํ๋ฉฐ ๋ค์ด๋ก๋๋ ๋ฐ์ดํฐ๋ ๋น์ฆ๋์ค ์์ฒด์ ๊ด์ฌ์ด ์์ ๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ ๋งํธ ๊ตฌ์ถ์ ์ํ ์์ค ์ญํ ๋ ํฉ๋๋ค. ๋์์ ์ ํ์ ๊ธฐ๋ฅ์ ํตํด ๋ค์ํ ์์คํ (Hive, Greenplum, Teradata, Oracle)์ ์์ ์๋ก ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ๋น์ฆ๋์ค์ ํ์ํ ๋ค์ํ ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ค๋นํ ์ ์์ต๋๋ค.
Ab Initio์ ๊ธฐ๋ฅ์ ๊ด๋ฒ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํฌํจ๋ MDW ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์ ๋ฐ ๋น์ฆ๋์ค ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฆ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ Ab Initio๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช ํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ๊ธฐ์กด์ ๋ง์ ๊ธฐ๋ฅ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์๋ Sberbank SberProfi DWH/BigData ์ ๋ฌธ ์ปค๋ฎค๋ํฐ์ ์ ๋ฌธ๊ฐ์ ๋๋ค. SberProfi DWH/BigData ์ ๋ฌธ ์ปค๋ฎค๋ํฐ๋ Hadoop ์ํ๊ณ, Teradata, Oracle DB, GreenPlum์ ๋ฌผ๋ก BI ๋๊ตฌ Qlik, SAP BO, Tableau ๋ฑ๊ณผ ๊ฐ์ ์์ญ์์ ์ญ๋ ๊ฐ๋ฐ์ ๋ด๋นํฉ๋๋ค.
์ถ์ฒ : habr.com