Presto๋ facebook์์ ์์ฒญ๋๊ฒ ํฐ ํํ๋ฐ์ดํธ๊ธ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ถ์ํ๊ธฐ ์ํด 2012๋ ์ kickoff๋ ํ๋ก์ ํธ์ ใด๋ใ .๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ถ์ถํ ๋ ์ฌ์ฉ๋๋ ํด์ ๋๋ค.๋ค์ํ ์์ค ์ง์hive ๋ฉํ์คํ ์ด, RDBMS, ์๋ง์กด s3 ๋ฑ ๋ค์ํ ์
shard์ replica๋ elasticserarch์์ ํฌ๊ฒ ์ฌ์ฉํ๋ ๊ฐ๋ ์ด์ง๋ง.๋น๋จ elasticsearch ๋ฟ๋ง ์๋๋ผ db์์๋ ์ฐ์ด๋ ๊ฐ๋ ์ด๋ค.RAID๋ ์ฌ๋ฌ๊ฐ์ ํ๋๋์คํฌ๋ฅผ ์ฉ๋์ ๋ง๊ฒ ๊ตฌ์ฑํด ์ฌ์ฉํ๋ ๊ธฐ์ ์ด๋ค.์ ์ฅ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ๋ถํ ์ ์ฅ์ ํ๊ฑฐ๋
zookeeper๋ ๋ถ์ฐ ์ฝ๋๋ค์ด์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์คํ์์ค ํ๋ก์ ํธ์ด๋ค. ์ง์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ ์กฐ์จํ์ง ์๊ณ ์กฐ์จํ๋ ๊ฒ์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ์ด๋ค. API๋ฅผ ์ด์ฉํด ๋๊ธฐํ๋ ๋ง์คํฐ ์ ์ถ ๋ฑ์ ์์ ์ ๊ตฌํํ ์ ์์ด์ ๊ฐํธํ๋ค. ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
mysql workbench ์์ ๋ฐ์ดํฐ dump๋ฅผ export, importํ ์ ์์ต๋๋ค.๋ฉ๋ด server > Data Exportexportํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๋ฉด ์ฐ์ธก์ ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ๋ชฉ๋ก์ด ๋ณด์ ๋๋ค.๋ชจ๋ ์ ํํ ํ ์๋ Export to Dum
mysql์ ์ฌ์ฉํ์ฌ db๋ฅผ ์ฌ์ฉ ์, ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํด๋์ด์ผ ๋ง์ผ์ ๊ฒฝ์ฐ db์ ์ ๋ณด๊ฐ ๋ ๋ผ๊ฐ ๊ฒฝ์ฐ ๋ฐฑ์ ๋ณธ์ ๋ฐํ์ผ๋ก ๋ณต๊ตฌํ ์ ์์ผ๋ฏ๋ก db ์ ๋ณด๋ฅผ ๋ฐฑ์ ํ๋ ์์ ์ ํ์ํฉ๋๋ค.๋ฐฑ์ ์ ์ํด ์ฌ์ฉํ ํด์ xtrabackup์ ๋๋ค.Percona์์ ๋ง๋ ๋ฐฑ์ ์ ํธ๋ฆฌํฐ๋ก M
SQL Server ํธ๋์ญ์ ๋ก๊ทธ์ ๋ชจ๋ ๋ ์ฝ๋๋ LSN(๋ก๊ทธ ์ํ์ค ๋ฒํธ)์ผ๋ก ๊ณ ์ ํ๊ฒ ์๋ณ๋ฉ๋๋ค. LSN์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ์์์ ๋ฐ๋ผ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋๋ค. ์๋ฅผ ๋ค์ด LSN2๊ฐ LSN1๋ณด๋ค ํฐ ๊ฒฝ์ฐ ๋ก๊ทธ ๋ ์ฝ๋ LSN1์ ํด๋นํ๋ ๋ณ๊ฒฝ์ด ๋จผ์ ๋ฐ์ํ๊ณ ๋ก๊ทธ ๋ ์ฝ๋ L
ํธ๋์ญ์ ์ ์์ ์ ์์ ์ฑ ์ ๋ณด์ฅํด์ฃผ๋ ๊ฒ์ด๋ค. ์ฆ, ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ์ ๋ชจ๋ ์๋ฒฝํ๊ฒ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋๋ ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒฝ์ฐ์๋ ์ ์ํ๋ก ๋ณต๊ตฌํด์ ์์ ์ ์ผ๋ถ๋ง ์ ์ฉ๋๋ ํ์์ด ๋ฐ์ํ์ง ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ์ฌ์ฉ์์ ์ ์ฅ์์๋ ์์ ์ ๋ ผ๋ฆฌ์ ๋จ์๋ก ์ดํด๋ฅผ ํ ์
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ง์ ํ๋ฉฐ ๋๋์ ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์กฐํํ๋ ๋ฐ ํนํ๋์์ผ๋ฉฐ ์คํค๋ง ์์ด ์ฌ์ฉ ๊ฐ๋ฅํ๊ฑฐ๋ ๋์จํ ์คํค๋ง๋ฅผ ์ ๊ณตํ๋ ์ ์ฅ์๋ฅผ ๋งํ๋ค.์ข ๋ฅ๋ง๋ค ์ฐ๊ธฐ/์ฝ๊ธฐ ์ฑ๋ฅ ํนํ, 2 ์ฐจ ์ธ๋ฑ์ค ์ง์, ์คํ ์ค๋ฉ ์ง์ ๊ฐ์ ๊ณ ์ ํ ํน์ง์ ๊ฐ์ง๋ค. ๋๋์ ๋ฐ์ด
๋ถ์ฐ ์ฒ๋ฆฌ์ ํ์์ฑ์ ์ดํดํ๊ธฐ ์ํด์๋ ๋ณ๋ ฌ์ฒ๋ฆฌ์ ๋ํด์ ๋จผ์ ์์์ผํฉ๋๋ค.๋ถ์ฐ ์ฒ๋ฆฌ์ ์ดํด์ ๊ธฐ๋ณธ์ด ๋๋ ์๊ณ ๋ฆฌ์ฆ์ด Divide and Conquerโ ์ ๋๋ค.์ด๋ ์๊ณ ๋ฆฌ์ฆ์์ ์ ๋ ฌ, ํ์์์ ํํ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ด์ฃ .๋ณต์กํ๊ณ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ฐ์ดํฐ๋ก
ML pipeline์ ์๋ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด ์ฌ๋ฌ ๊ตฌ์ฑ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ML pipeline์ ๋ชจ๋ธ ํ์ต์ ์์ฑํ๋ ๋ฐ ํ์ํ ์ํฌํ๋ก์ฐ๋ฅผ ์ฒด๊ณํํ๊ณ ์๋ํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.ML pipeline์ ๋ฐ์ดํฐ ์ถ์ถ ๋ฐ ์ ์ฒ๋ฆฌ๋ถํฐ ๋ชจ๋ธ ํ์ต, ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ์
ETL์ Extract, Transfron, Load์ ์ฝ์๋ก ์ฌ๋ฌ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ฐ์ดํฐ ์ ์ฅ์, ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๋๋ ๋ฐ์ดํฐ ๋ ์ดํฌ์ ๊ฒฐํฉํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.DB์์ SQL์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค.์๋์ sour
๋ฆฌ๋ ์ค ์ปค๋์ ๋ฆฌ๋ ์ค ์ด์์ฒด์ ์ ์ฃผ์ ๊ตฌ์ฑ ์์์ด์ ์ปดํจํฐ ํ๋์จ์ด์ ํ๋ก์ธ์ค๋ฅผ ์๋ ํต์ฌ ์ธํฐํ์ด์ค์ ๋๋ค.์ปค๋์ด๋ผ๋ ์ด๋ฆ์ ๋จ๋จํ ๊ป์ง ์์ ์จ์์ฒ๋ผ os ๋ด์ ์์นํ๊ณ ์ ํ๊ธฐ, ๋ ธํธ๋ถ, ์๋ฒ ๋๋ ์ปดํจํฐ ์ ํ์ ๊ด๊ณ์์ด ํ๋์จ์ด ๋ชจ๋ ์ฃผ์ ๊ธฐ๋ฅ์ ์ ์ดํ๊ธฐ ๋๋ฌธ์ ๋ถ
์ด๋ฒ ํฌ์คํ ์์๋ GitOps๊ฐ ๋ฌด์์ธ๊ฐ์ ๋ํด์ ์์๋ณด๊ณ ๊ทธ ๊ตฌํ์ฒด์ธ ArgoCD์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.GitOps๋ Weaveworks๋ผ๋ ํ์ฌ์์ ์ฒ์ ์ฐ๊ธฐ ์์ํ์๊ณ CI/CD ํ์ดํ๋ผ์ธ ์ค ํน๋ณํ Delivery์ ์ด์ ์ ๊ฐ์ง๊ณ ํ์ํ ๊ฐ๋ ์ ๋๋ค.GitOps
GitOps๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด์๋ ๋ถ๋ค๊ป์๋ ์์ ํฌ์คํ ํ ๊ธ์ ์ดํด๋ด์ฃผ์๋ฉด ๋์๋์ค ๊ฒ๋๋ค.GitOps๋ ํต์ฌ์ ๋งค๋ํ์คํธ๊ฐ ์ ์๋์ด ์๋ Git ์ ์ฅ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด, Git ์ ์ฅ์์ ๋ด์ฉ๊ณผ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๋๊ธฐํ ํด์ฃผ๋ ์์ด์ ํธ๊ฐ ๋ณ๊ฒฝ ๋ด์ญ์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์
Kubernetes๋ ์์ฒด์ ์ผ๋ก self-healing์ด ๊ฐ๋ฅํ๋ฐ์.์์คํ ์ด ์ํฅ์ ๋ฐ์ ๋๋ง๋ค pod, container ๋จ์๋ก ์ํ๋ฅผ ๊ฐ์งํ๊ณ , ๋น์ ์์ ์ธ ๊ฒฝ์ฐ ์์ฒด์ ์ผ๋ก ๊ต์ฒดํ์ฌ ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ์งํ ์ ์๋๋ก ๋์์ค๋๋ค.Self-healing Kubernet
์ํคํผ๋์์ ๋ฐ๋ฅด๋ฉด SPOF๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.๋จ์ผ ๊ณ ์ฅ ์ (single point of failure, SPOF)๋ ์์คํ ๊ตฌ์ฑ ์์ ์ค์์, ๋์ํ์ง ์์ผ๋ฉด ์ ์ฒด ์์คํ ์ด ์ค๋จ๋๋ ์์๋ฅผ ๋งํ๋ค. ์๋ฅผ ๋ค์ด ์ด๋๋ท ์ผ์ด๋ธ๊ณผ ์ ์, ์ด๋๋ท ํ๋ธ(HUB), ์ ์ ๋จ๋ง๋ค
Name node is in safe mode.์์ ๊ฐ์ ์๋ฌ๋๋ฌธ์ hdfs ์ฒ๋ฆฌ๋ฅผ ๋ชป ํ ๋๋ ์๋ฌ์๋ ๋์ค๊ฒ ์ง๋ง safe mode๋ฅผ ๊บผ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ค์๋ ธ๋๊ฐ ์์ ์, ์งํ๋๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.fsimage๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉeditlog๋ฅผ ์ฝ์ด fsimage์ ๋ฐ์ (์ฒดํฌํฌ์ธํ )๋ฐ์ดํฐ๋ ธ๋๊ฐ ๋ธ๋ก๋ฆฌํฌํธ๋ฅผ ๋ณด๋ด์คsafemode์ ์ง์ ํ๊ณ , ๋ฐ์ดํฐ๋ ธ๋๊ฐ ๋ณด๋ด์ค ๋ธ๋ก๋ฆฌํฌํธ ์ ๋ณด๋ฅผ ํ ๋๋ก ๋ธ๋ก ๋ณต์ ์๊ฐ ์ผ์ ์์ค๊น์ง
HDFS๋ Hadoop File System์ ์ฝ์๋ก ํ๋ก ํ์ผ ์์คํ ์ ์๋ฏธํฉ๋๋ค.HDFS๋ ๋ง๊ทธ๋๋ก ํ๋ก์ด ์คํ๋๋ ํ์ผ์ ๊ด๋ฆฌํด์ฃผ๋ ์์คํ ์ ๋๋ค.์ด๋ ํฌ๊ฒ NameNode, DataNode๋ก ๊ตฌ์ฑ๋์ด์ ธ ์์ต๋๋ค.๋ฐ์ดํฐ ํ์ผ ํฌ๊ธฐ๋ ๊ฐ๋ณ ์ฅ๋น์ ํ์ผ ์์คํ ํฌ๊ธฐ์
๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ก ํ๋ก์ด ๋ํ์ ์ ๋๋ค.๊ทธ๋ ๋ค๋ฉด ์ค๋ ๋น ๋ฐ์ดํฐ ํ๋ ์์ํฌ์ธ Hadoop, Spark, Hive ํ์ง๋ง ์ถ๊ตฌํ๋๋ชฉ์ ๊ณผ ์ฉ๋๊ฐ ๋ค๋ฅธ ์ธ ํ๋ ์์ ๋ํด์ ์์๋ด ์๋ค.์ต๊ทผ ๊ธฐ์ ์์ ๋ฐ์ดํฐ ๋ถ์์ ๊ด์ฌ์ ๊ฐ๊ณ ๋ฐ์ดํฐ ๋ถ์ ๊ธฐ๋ฐ์ ์์ฌ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์์ต๋๋ค.์ด๋ฐ ๋น ๋ฐ
๋น ๋ฐ์ดํฐ ๋ถ์์ด ์ฌ์ด์ง ๊ฒ์ ํ๋ก์ด ๋์ค๋ฉด์๋ถํฐ์ ๋๋ค.ํ๋ก์ ๋์ฉ๋์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ ๋น์ฉ์ผ๋ก ๋ ๋น ๋ฅด๊ฒ ๋ถ์ํ ์ ์๋ ํ๋ซํผ์ด๋ฉฐ, ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ถ์์ ์ํ ํ๋ซํผ ์ค ์ฌ์ค์ ํ์ค์ผ๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๋ถ์์
ํ์ด๋ธ๋ ํ๋ก ์์ฝ์์คํ ์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๊ณ ํ๋ก์ธ์ฑํ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ง์ฉ ์๋ฃจ์ ์ ๋๋ค.RDB์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ ์ด๋ธ๊ณผ ๊ฐ์ ํํ๋ก HDFS์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ฉฐ, ์ด ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก SQL๊ณผ ์ ์ฌํ Hi
์ค๋๋ ์นดํ์นด๊ฐ ์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ํคํ ์ฒ๋ฅผ ์์ํด๋ณด๊ธฐ๋ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋งํผ ๋ฐ์ดํฐ๊ฐ ๋น์ง๋์ค์ ํต์ฌ์ด ๋ ์ค๋๋ ํ์ค ์์์ ๋ง์ฝ ์นดํ์นด๊ฐ ์์๋ค๋ฉด ๊ธ์๋๋ก ๋ณํํ๋ ๋ค์ํ ๋น์ฆ๋์ค์ ์๊ตฌ์ฌํญ๋ค์ ์ถฉ์กฑ์ํค๊ธฐ๋ ๋งค์ฐ ์ด๋ ต๊ณ ๊ณ ๋ ์ผ์ด ๋ ๊ฒ ์ ๋๋ค.์ค๋๋ ๋ฐ์ดํฐ
Online Transaction Processing ์ง์ญํ๋ฉด ์จ๋ผ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ๋ฅผ ๋ปํ๋๋ฐ์.๋ณต์กํ๊ฒ ๋งํ๋ฉด ๋ณต์์ ์ฌ์ฉ์ PC์์ ๋ฐ์๋๋ ํธ๋์ญ์ (Transaction)์ DB์๋ฒ๊ฐ ์ฒ๋ฆฌํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์์ฒญํ ์ฌ์ฉ์PC์ ๊ฒฐ๊ณผ๊ฐ์ ๋๋๋ ค์ฃผ๋ ๊ณผ์ ์ ๋ปํฉ๋๋ค.์ฝ
๋ฐ์ดํฐ ์นดํ๋ก๊ทธ๋ ์ฌ์ฉ์๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ํ๋ ํ์ฌ์ ๋ฐ์ดํฐ ์์ฐ ๋ชฉ๋ก์ ๋๋ค. ์นดํ๋ก๊ทธ๋ ๋๋ถ๋ถ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ๋ ๋ฉํ๋ฐ์ดํฐ์ ๋๋ค. ์ฌ์ฉ์๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ๊ฒ์ ๋๊ตฌ์ ๊ฒฐํฉํ ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ๋ฅผ ๊ฐ