์คํ ์์ค DataHub: LinkedIn์ ๋ฉํ๋ฐ์ดํฐ ๊ฒ์ ๋ฐ ๋ฐ๊ฒฌ ํ๋ซํผ
ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ๋ ๊ฒ์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋๋์ ๋ฐ์ดํฐ์ ์์กดํ๋ ๋ชจ๋ ํ์ฌ์ ํ์์ ์ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ฌ์ฉ์(๋ถ์๊ฐ, ๊ธฐ๊ณ ํ์ต ๊ฐ๋ฐ์, ๋ฐ์ดํฐ ๊ณผํ์, ๋ฐ์ดํฐ ์์ง๋์ด ํฌํจ)์ ์์ฐ์ฑ์ ์ํฅ์ ๋ฏธ์น ๋ฟ๋ง ์๋๋ผ ๊ณ ํ์ง ๊ธฐ๊ณ ํ์ต(ML) ํ์ดํ๋ผ์ธ์ ์์กดํ๋ ์ต์ข ์ ํ์๋ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ํ, ๊ธฐ๊ณ ํ์ต ํ๋ซํผ์ ๊ตฌํํ๊ฑฐ๋ ๊ตฌ์ถํ๋ ๊ฒฝํฅ์ ์์ฐ์ค๋ฝ๊ฒ ๊ธฐ๋ฅ, ๋ชจ๋ธ, ๋ฉํธ๋ฆญ, ๋ฐ์ดํฐ ์ธํธ ๋ฑ์ ๋ด๋ถ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง์ ๋ํ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค.
์ด ๊ธฐ์ฌ์์๋ ์คํ ๋ผ์ด์ ์ค๋ก ๋ฐ์ดํฐ ์์ค๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช
ํฉ๋๋ค.
WhereHows๋ ์ด์ DataHub์ ๋๋ค!
์ด์ ์ ๋ฐํ๋ LinkedIn์ ๋ฉํ๋ฐ์ดํฐ ํ
์คํ ์์ค ์ ๊ทผ ๋ฐฉ์
๋ฐ์ดํฐ์ ๊ทธ ์ถ์ฒ๋ฅผ ์ฐพ๊ธฐ ์ํ LinkedIn์ ์๋ ํฌํธ์ธ WhereHows๋ ๋ด๋ถ ํ๋ก์ ํธ๋ก ์์๋์์ต๋๋ค. ๋ฉํ๋ฐ์ดํฐ ํ์ด ์ด์์ต๋๋ค
์ฒซ ๋ฒ์งธ ์๋: "์คํ์์ค ์ฐ์ "
์ฐ๋ฆฌ๋ ์ฒ์์ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์ด ์คํ ์์ค ์ ์ฅ์์์ ์ด๋ฃจ์ด์ง๊ณ ๋ด๋ถ ๋ฐฐํฌ๋ฅผ ์ํ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋ "์คํ ์์ค ์ฐ์ " ๊ฐ๋ฐ ๋ชจ๋ธ์ ๋ฐ๋์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฌธ์ ์ ์ ์ฝ๋๊ฐ ๋ด๋ถ์ ์ผ๋ก ์์ ํ ๊ฒํ ๋๊ธฐ ์ ์ ํญ์ ๋จผ์ GitHub์ ํธ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์คํ ์์ค ์ ์ฅ์์์ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๊ณ ์๋ก์ด ๋ด๋ถ ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง ๋๊น์ง ํ๋ก๋์ ๋ฌธ์ ๋ ๋ฐ๊ฒฌ๋์ง ์์ต๋๋ค. ๋ฐฐํฌ๊ฐ ๋ถ๋ํ ๊ฒฝ์ฐ์๋ ์ผ๊ด ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์์ธ์ ํ์ ํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ค์ ์ต๋๋ค.
๋ํ ์ด ๋ชจ๋ธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋จผ์ ์คํ ์์ค ์ ์ฅ์์ ํธ์ํ ๋ค์ ๋ด๋ถ ์ ์ฅ์์ ํธ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ๋ฐ๋ณต์ด ํ์ํ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋ ํ์ ์์ฐ์ฑ์ ๊ฐ์์์ผฐ์ต๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋จผ์ ๋ด๋ถ ์ ์ฅ์์์ ํ์ํ ์์ ์ด๋ ๋ณ๊ฒฝ์ ์ํํ ์ ์์์ง๋ง ๋ ์ ์ฅ์๊ฐ ๋๊ธฐํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์์ค ์ ์ฅ์์ ๋ค์ ๋ณํฉํ ๋ ํฐ ๋ฌธ์ ๊ฐ ๋์์ต๋๋ค.
์ด ๋ชจ๋ธ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ฌ์ฉ์ ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ณด๋ค ๊ณต์ ํ๋ซํผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์ธํ๋ผ ํ๋ก์ ํธ์ ๋ํด ๊ตฌํํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค. ๋ํ ์ด ๋ชจ๋ธ์ ์ฒ์๋ถํฐ ์คํ ์์ค๋ฅผ ์์ํ๋ ํ๋ก์ ํธ์ ์ด์์ ์ด์ง๋ง WhereHows๋ ์์ ํ ๋ด๋ถ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ๋ชจ๋ ๋ด๋ถ ์ข ์์ฑ์ ์์ ํ ์ถ์ํํ๋ ๊ฒ์ด ์ ๋ง ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ํฌํฌ๋ฅผ ์ ์งํด์ผ ํ์ง๋ง ๋ด๋ถ ํฌํฌ๋ฅผ ์ ์งํ๊ณ ๋๋ถ๋ถ ์คํ ์์ค๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ์ง ์์์ต๋๋ค.
๋ ๋ฒ์งธ ์๋: โ๋ด๋ถ ์ฐ์ โ
**๋ ๋ฒ์งธ ์๋๋ก ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์ด ๋ด๋ถ์์ ์ด๋ฃจ์ด์ง๊ณ ์ ๊ธฐ์ ์ผ๋ก ์คํ ์์ค ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋๋ "๋ด๋ถ ์ฐ์ " ๊ฐ๋ฐ ๋ชจ๋ธ๋ก ์ ํํ์ต๋๋ค. ์ด ๋ชจ๋ธ์ ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฐ์ฅ ์ ํฉํ์ง๋ง ๋ณธ์ง์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์ฐจ์ด์ ์ ์คํ ์์ค ์ ์ฅ์์ ์ง์ ํธ์ํ ๋ค์ ๋์ค์ ๋ณํฉ ์ถฉ๋์ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด์ง๋ง ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ๊ฒํ ํ ๋๋ง๋ค ์ด๋ ๊ฒ ํ์ง ์์ผ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด ์์ ์ ์ผ๊ด์ ์ผ๋ก ์ํ๋๋ ๋น๋๊ฐ ํจ์ฌ ๋ฎ์์ง๋ฏ๋ก ๋์ค์ ๋ณํฉ ์ถฉ๋์ ํด๊ฒฐํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๋๋ค.
์ธ ๋ฒ์งธ๋ก ์ฑ๊ณตํ์ต๋๋ค!
์์์ ์ธ๊ธํ ๋ ๋ฒ์ ์๋ ์คํจ๋ก ์ธํด WhereHows GitHub ์ ์ฅ์๊ฐ ์ค๋ซ๋์ ์ต์ ์ํ๋ก ์ ์ง๋์์ต๋๋ค. ํ์ ์ ํ์ ๊ธฐ๋ฅ๊ณผ ์ํคํ ์ฒ๋ฅผ ์ง์์ ์ผ๋ก ๊ฐ์ ํ์ฌ LinkedIn์ฉ WhereHows์ ๋ด๋ถ ๋ฒ์ ์ด ์คํ ์์ค ๋ฒ์ ๋ณด๋ค ๋ ๋ฐ์ ๋์์ต๋๋ค. DataHub๋ผ๋ ์๋ก์ด ์ด๋ฆ๋ ์๊ฒผ์ต๋๋ค. ์ด์ ์ ์คํจํ ์๋๋ฅผ ๋ฐํ์ผ๋ก ํ์ ํ์ฅ ๊ฐ๋ฅํ ์ฅ๊ธฐ ์๋ฃจ์ ์ ๊ฐ๋ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์๋ก์ด ์คํ ์์ค ํ๋ก์ ํธ์ ๊ฒฝ์ฐ LinkedIn์ ์คํ ์์ค ํ์ ํ๋ก์ ํธ ๋ชจ๋์ด ์์ ํ ์คํ ์์ค๋ก ๊ฐ๋ฐ๋๋ ๊ฐ๋ฐ ๋ชจ๋ธ์ ์กฐ์ธํ๊ณ ์ง์ํฉ๋๋ค. ๋ฒ์ ์ด ์ง์ ๋ ์ํฐํฉํธ๋ ๊ณต๊ฐ ์ ์ฅ์์ ๋ฐฐํฌ๋ ๋ค์ ๋ค์์ ์ฌ์ฉํ์ฌ ๋ด๋ถ LinkedIn ์ํฐํฉํธ๋ก ๋ค์ ์ฒดํฌ์ธ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ DataHub์ ๊ฐ์ ์ฑ์ํ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด ์ํ์ ๋๋ฌํ๋ ๋ฐ ์๋นํ ์๊ฐ์ด ํ์ํฉ๋๋ค. ์ด๋ ๋ํ ๋ชจ๋ ๋ด๋ถ ์ข ์์ฑ์ด ์์ ํ ์ถ์ํ๋๊ธฐ ์ ์ ์๋ฒฝํ๊ฒ ์๋ํ๋ ๊ตฌํ์ ์คํ ์์คํํ ๊ฐ๋ฅ์ฑ์ ๋ฐฐ์ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์คํ ์์ค ๊ธฐ์ฌ๋ฅผ ๋ ๋น ๋ฅด๊ฒ, ํจ์ฌ ๋ ๊ณ ํต์ค๋ฝ๊ฒ ํ ์ ์๋ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ ์ด์ ์ ๋๋ค. ์ด ์๋ฃจ์ ์ ๋ฉํ๋ฐ์ดํฐ ํ(DataHub ๊ฐ๋ฐ์)๊ณผ ์คํ ์์ค ์ปค๋ฎค๋ํฐ ๋ชจ๋์ ๋์์ด ๋ฉ๋๋ค. ๋ค์ ์น์ ์์๋ ์ด ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์คํ ์์ค ์ถํ ์๋ํ
์คํ ์์ค DataHub์ ๋ํ ๋ฉํ๋ฐ์ดํฐ ํ์ ์ต์ ์ ๊ทผ ๋ฐฉ์์ ๋ด๋ถ ์ฝ๋๋ฒ ์ด์ค์ ์คํ ์์ค ์ ์ฅ์๋ฅผ ์๋์ผ๋ก ๋๊ธฐํํ๋ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค. ์ด ํดํท์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ์ฌํ LinkedIn ์ฝ๋๋ฅผ ์คํ ์์ค์ ๋๊ธฐํ
rsync . - ๋ผ์ด์ผ์ค ํค๋ ์์ฑ, ์ ์ฌ
์ํ์น ์ฅ . - ๋ด๋ถ ์ปค๋ฐ ๋ก๊ทธ์์ ์คํ์์ค ์ปค๋ฐ ๋ก๊ทธ๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
- ์คํ ์์ค ๋น๋๋ฅผ ์ค๋จ์ํค๋ ๋ด๋ถ ๋ณ๊ฒฝ์ ๋ฐฉ์งํฉ๋๋ค.
์ข ์์ฑ ํ ์คํธ .
๋ค์ ํ์ ์น์ ์์๋ ์์์ ์ธ๊ธํ ํฅ๋ฏธ๋ก์ด ๋ฌธ์ ๊ฐ ์๋ ๊ธฐ๋ฅ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์์ค ์ฝ๋ ๋๊ธฐํ
๋จ์ผ GitHub ์ ์ฅ์์ธ DataHub์ ์คํ ์์ค ๋ฒ์ ๊ณผ ๋ฌ๋ฆฌ DataHub์ LinkedIn ๋ฒ์ ์ ์ฌ๋ฌ ์ ์ฅ์(๋ด๋ถ์ ์ผ๋ก ํธ์ถ๋จ)์ ์กฐํฉ์
๋๋ค.
๊ทธ๋ฆผ 1: ๋ฆฌํฌ์งํ ๋ฆฌ ๊ฐ ๋๊ธฐํ ๋งํฌ๋์ธ ๋ฐ์ดํฐํ๋ธ ๋จ์ผ ์ ์ฅ์ ๋ฐ์ดํฐํ๋ธ ์คํ ์์ค
์๋ํ๋ ๋น๋, ํธ์ ๋ฐ ํ ์ํฌํ๋ก๋ฅผ ์ง์ํ๊ธฐ ์ํด ์๋ก์ด ๋๊ตฌ๋ ๊ฐ ์์ค ํ์ผ์ ํด๋นํ๋ ํ์ผ ์์ค ๋งคํ์ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ๊ทธ๋ฌ๋ ํดํท์๋ ์ด๊ธฐ ๊ตฌ์ฑ์ด ํ์ํ๋ฉฐ ์ฌ์ฉ์๋ ์๋์ ๊ฐ์ด ์์ ์์ค ๋ชจ๋ ๋งคํ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
{
"datahub-dao": [
"${datahub-frontend}/datahub-dao"
],
"gms/impl": [
"${dataset-gms}/impl",
"${user-gms}/impl"
],
"metadata-dao": [
"${metadata-models}/metadata-dao"
],
"metadata-builders": [
"${metadata-models}/metadata-builders"
]
}
๋ชจ๋ ์์ค ๋งคํ์ ํค๊ฐ ์คํ ์์ค ์ ์ฅ์์ ๋์ ๋ชจ๋์ด๊ณ ๊ฐ์ด LinkedIn ์ ์ฅ์์ ์์ค ๋ชจ๋ ๋ชฉ๋ก์ธ ๊ฐ๋จํ JSON์
๋๋ค. ์คํ ์์ค ์ ์ฅ์์ ๋ชจ๋ ๋์ ๋ชจ๋์ ์ํ๋ ์์ ์์ค ๋ชจ๋๋ก ์ ๊ณต๋ ์ ์์ต๋๋ค. ์์ค ๋ชจ๋์์ ์ ์ฅ์์ ๋ด๋ถ ์ด๋ฆ์ ํ์ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ญ์์ค.
{
"${metadata-models}/metadata-builders/src/main/java/com/linkedin/Foo.java":
"metadata-builders/src/main/java/com/linkedin/Foo.java",
"${metadata-models}/metadata-builders/src/main/java/com/linkedin/Bar.java":
"metadata-builders/src/main/java/com/linkedin/Bar.java",
"${metadata-models}/metadata-builders/build.gradle": null,
}
ํ์ผ ์์ค ๋งคํ์ ๋๊ตฌ์ ์ํด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์๋ ์์ต๋๋ค. ์ด๋ LinkedIn ์์ค ํ์ผ๊ณผ ์คํ ์์ค ์ ์ฅ์์ ํ์ผ์ 1:1๋ก ๋งคํํ ๊ฒ์ ๋๋ค. ํ์ผ ์ฐ๊ฒฐ ์๋ ์์ฑ๊ณผ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๊ท์น์ด ์์ต๋๋ค.
- ์คํ ์์ค์ ๋์ ๋ชจ๋์ ๋ํ ์ฌ๋ฌ ์์ค ๋ชจ๋์ ๊ฒฝ์ฐ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
FQCN , ๋ ์ด์์ ์์ค ๋ชจ๋์ ์กด์ฌํฉ๋๋ค. ๊ฐ๋ฑ ํด๊ฒฐ ์ ๋ต์ผ๋ก ์ฐ๋ฆฌ ๋๊ตฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก "๋ง์ง๋ง ์น๋ฆฌ" ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. - "null"์ ์์ค ํ์ผ์ด ์คํ ์์ค ์ ์ฅ์์ ์ผ๋ถ๊ฐ ์๋์ ์๋ฏธํฉ๋๋ค.
- ์คํ ์์ค๋ฅผ ์ ์ถํ๊ฑฐ๋ ์ถ์ถํ ๋๋ง๋ค ์ด ๋งคํ์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋๊ณ ์ค๋ ์ท์ด ์์ฑ๋ฉ๋๋ค. ์ด๋ ๋ง์ง๋ง ์์ ์ดํ ์์ค ์ฝ๋์์ ์ถ๊ฐ ๋ฐ ์ญ์ ๋ ๋ด์ฉ์ ์๋ณํ๋ ๋ฐ ํ์ํฉ๋๋ค.
์ปค๋ฐ ๋ก๊ทธ ์์ฑ
์คํ์์ค ์ปค๋ฐ์ ๋ํ ์ปค๋ฐ ๋ก๊ทธ๋ ๋ด๋ถ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ปค๋ฐ ๋ก๊ทธ๋ฅผ ๋ณํฉํ์ฌ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ๋ค์์ ์ฐ๋ฆฌ ๋๊ตฌ์์ ์์ฑ๋ ์ปค๋ฐ ๋ก๊ทธ์ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ํ ์ปค๋ฐ ๋ก๊ทธ์
๋๋ค. ์ปค๋ฐ์ ํด๋น ์ปค๋ฐ์ ํจํค์ง๋ ์์ค ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฒ์ ์ ๋ช
ํํ๊ฒ ๋ํ๋ด๊ณ ์ปค๋ฐ ๋ก๊ทธ ์์ฝ์ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ ํ์ธํด๋ณด์ธ์
metadata-models 29.0.0 -> 30.0.0
Added aspect model foo
Fixed issue bar
dataset-gms 2.3.0 -> 2.3.4
Added rest.li API to serve foo aspect
MP_VERSION=dataset-gms:2.3.4
MP_VERSION=metadata-models:30.0.0
์ข ์์ฑ ํ ์คํธ
๋งํฌ๋์ธ์
์ด๋ ์คํ ์์ค ๋น๋๋ฅผ ์ค๋จํ๊ณ ์ปค๋ฐ ์ ์ด๋ฅผ ๊ฐ์งํ๋ ๋ด๋ถ ์ปค๋ฐ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋ ์ ์ฉํ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด DataHub ์คํ ์์ค ์ ์ฅ์์ ๋ํ ๋ด๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ์ผ๊ด ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ๋ด๋ถ ์ปค๋ฐ์ด ์คํ ์์ค ์ ์ฅ์ ๋น๋ ์คํจ๋ฅผ ์ ๋ฐํ๋์ง ํ์ ํ๊ธฐ๊ฐ ์๋นํ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
์คํ ์์ค DataHub์ ํ๋ก๋์ ๋ฒ์ ์ ์ฐจ์ด์
์ง๊ธ๊น์ง ๋ ๊ฐ์ง ๋ฒ์ ์ DataHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋๊ธฐํํ๋ ์๋ฃจ์ ์ ๋ํด ๋ ผ์ํ์ง๋ง ์ฐ์ ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ๋ฐ ์คํธ๋ฆผ์ด ํ์ํ ์ด์ ๋ฅผ ์์ง ์ค๋ช ํ์ง ์์์ต๋๋ค. ์ด ์น์ ์์๋ DataHub์ ๊ณต๊ฐ ๋ฒ์ ๊ณผ LinkedIn ์๋ฒ์ ํ๋ก๋์ ๋ฒ์ ๊ฐ์ ์ฐจ์ด์ ์ ๋์ดํ๊ณ ์ด๋ฌํ ์ฐจ์ด์ ์ ๋ํ ์ด์ ๋ฅผ ์ค๋ช ํฉ๋๋ค.
๋ถ์ผ์น์ ์์ธ ์ค ํ๋๋ ํ๋ก๋์ ๋ฒ์ ์ด LinkedIn์ Offspring(LinkedIn์ ๋ด๋ถ ์ข ์์ฑ ์ฃผ์ ํ๋ ์์ํฌ)๊ณผ ๊ฐ์ด ์์ง ์คํ ์์ค๊ฐ ์๋ ์ฝ๋์ ์ข ์๋์ด ์๋ค๋ ์ฌ์ค์์ ๋น๋กฏ๋ฉ๋๋ค. Offspring์ ๋์ ๊ตฌ์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ ํธ๋๋ ๋ฐฉ๋ฒ์ด๋ฏ๋ก ๋ด๋ถ ์ฝ๋๋ฒ ์ด์ค์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ์ด๋ ์คํ ์์ค๊ฐ ์๋๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์คํ ์์ค DataHub์ ๋ํ ์คํ ์์ค ๋์์ ์ฐพ์์ผ ํ์ต๋๋ค.
๋ค๋ฅธ ์ด์ ๋ ์์ต๋๋ค. LinkedIn์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ๋ฉํ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ํ ํ์ฅ์ ๋ง๋ค ๋ ์ด๋ฌํ ํ์ฅ์ ์ผ๋ฐ์ ์ผ๋ก LinkedIn์๋ง ์ ์ฉ๋๋ฉฐ ๋ค๋ฅธ ํ๊ฒฝ์๋ ์ง์ ์ ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฐธ๊ฐ์ ID ๋ฐ ๊ธฐํ ์ ํ์ ์ผ์น ๋ฉํ๋ฐ์ดํฐ์ ๋ํ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ๋ผ๋ฒจ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด์ DataHub์ ์คํ ์์ค ๋ฉํ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ์ด๋ฌํ ํ์ฅ์ ์ ์ธํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ๊ณ ๊ทธ๋ค์ ์๊ตฌ ์ฌํญ์ ์ดํดํ๋ฉด์ ํ์ํ ๊ฒฝ์ฐ ์ด๋ฌํ ํ์ฅ์ ๊ณตํต ์คํ ์์ค ๋ฒ์ ์ ๊ฐ๋ฐํ ๊ฒ์ ๋๋ค.
์คํ ์์ค ์ปค๋ฎค๋ํฐ์ ๋ํ ์ฌ์ฉ ์ฉ์ด์ฑ๊ณผ ๋ ์ฌ์ด ์ ์ ๋ํ DataHub์ ๋ ๋ฒ์ ๊ฐ์ ์ผ๋ถ ์ฐจ์ด์ ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. ์คํธ๋ฆผ ์ฒ๋ฆฌ ์ธํ๋ผ์ ์ฐจ์ด๊ฐ ์ด์ ๋ํ ์ข์ ์์ ๋๋ค. ๋ด๋ถ ๋ฒ์ ์ ๊ด๋ฆฌํ ์คํธ๋ฆผ ์ฒ๋ฆฌ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋ค๋ฅธ ์ธํ๋ผ ์ข ์์ฑ์ ์์ฑํ์ง ์๊ธฐ ๋๋ฌธ์ ์คํ ์์ค ๋ฒ์ ์ ๋ด์ฅ๋(๋ ๋ฆฝํ) ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ์ ํํ์ต๋๋ค.
์ฐจ์ด์ ์ ๋ ๋ค๋ฅธ ์๋ ์คํ ์์ค ๊ตฌํ์์ ์ฌ๋ฌ GMS๊ฐ ์๋ ๋จ์ผ GMS(์ผ๋ฐํ๋ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์)๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค. GMA(Generalized Metadata Architecture)๋ DataHub์ ๋ฐฑ์๋ ์ํคํ ์ฒ ์ด๋ฆ์ด๊ณ , GMS๋ GMA ์ปจํ ์คํธ์ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. GMA๋ ๊ฐ ๋ฐ์ดํฐ ๊ตฌ์ฑ(์: ๋ฐ์ดํฐ์ธํธ, ์ฌ์ฉ์ ๋ฑ)์ ์์ฒด ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์์ ๋ฐฐํฌํ๊ฑฐ๋ ๋ ์ง์คํธ๋ฆฌ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋งคํ์ด ํฌํจ๋์ด ์๋ ํ ๋จ์ผ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์์ ์ฌ๋ฌ ๋ฐ์ดํฐ ๊ตฌ์ฑ์ ์ ์ฅํ ์ ์๋ ๋งค์ฐ ์ ์ฐํ ์ํคํ ์ฒ์ ๋๋ค. GMS๊ฐ ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์ฌ์ฉ ํธ์์ฑ์ ์ํด ์ฐ๋ฆฌ๋ ์คํ ์์ค DataHub์ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์ฑ์ ๋ชจ๋ ์ ์ฅํ๋ ๋จ์ผ GMS ์ธ์คํด์ค๋ฅผ ์ ํํ์ต๋๋ค.
๋ ๊ตฌํ ๊ฐ์ ์ฐจ์ด์ ์ ๋ํ ์ ์ฒด ๋ชฉ๋ก์ ์๋ ํ์ ๋์ ์์ต๋๋ค.
์ ํ ํน์ง
๋งํฌ๋์ธ ๋ฐ์ดํฐํ๋ธ
์คํ ์์ค DataHub
์ง์๋๋ ๋ฐ์ดํฐ ๊ตฌ์ฑ
1) ๋ฐ์ดํฐ ์ธํธ 2) ์ฌ์ฉ์ 3) ์งํ 4) ML ๊ธฐ๋ฅ 5) ์ฐจํธ 6) ๋์๋ณด๋
1) ๋ฐ์ดํฐ ์ธํธ 2) ์ฌ์ฉ์
๋ฐ์ดํฐ์ธํธ์ ์ง์๋๋ ๋ฉํ๋ฐ์ดํฐ ์์ค
1)
ํ์ด๋ธ ์นดํ์นด RDBMS
๊ฒ์-๊ตฌ๋
์ปจํ๋ฃจ์ธํธ ์นดํ์นด
์คํธ๋ฆผ ์ฒ๋ฆฌ
๊ด๋ฆฌ
์๋ฒ ๋๋(๋
๋ฆฝํ)
์ข
์์ฑ ์ฃผ์
๋ฐ ๋์ ๊ตฌ์ฑ
LinkedIn ์์
๋น๋ ํด๋ง
Ligradle(LinkedIn์ ๋ด๋ถ Gradle ๋ํผ)
CI / CD
CRT(LinkedIn ๋ด๋ถ CI/CD)
๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์
๋ถ์ฐ๋ ๋ค์ค GMS: 1) ๋ฐ์ดํฐ ์ธํธ GMS 2) ์ฌ์ฉ์ GMS 3) ๋ฏธํฐ๋ฒ GMS 4) ๊ธฐ๋ฅ GMS 5) ์ฐจํธ/๋์๋ณด๋ GMS
๋ค์์ ์ํ ๋จ์ผ GMS: 1) ๋ฐ์ดํฐ์ธํธ 2) ์ฌ์ฉ์
Docker ์ปจํ ์ด๋์ ๋ง์ดํฌ๋ก์๋น์ค
๊ทธ๋ฆผ 2: ์ํคํ ์ฒ ๋ฐ์ดํฐํ๋ธ *์คํ ์์ค**
์ ์ด๋ฏธ์ง์์ DataHub์ ์์ ์์ค ์ํคํ ์ฒ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ธํ๋ผ ๊ตฌ์ฑ ์์ ์ธ์๋ XNUMX๊ฐ์ง Docker ์ปจํ ์ด๋๊ฐ ์์ต๋๋ค.
datahub-gms: ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ ์๋น์ค
๋ฐ์ดํฐํ๋ธ ํ๋ก ํธ์๋: ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐํ๋ธ-mce-์๋น์: ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐํ๋ธ-๋งค-์๋น์: ์ ํ๋ฆฌ์ผ์ด์
์คํ ์์ค ์ ์ฅ์ ๋ฌธ์ ๋ฐ
DataHub์ CI/CD๋ ์คํ ์์ค์ ๋๋ค.
์คํ ์์ค DataHub ์ ์ฅ์๋ ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
DataHub ์คํ ์์ค ์ ์ฅ์์ ์ปค๋ฐํ ๋๋ง๋ค ๋ชจ๋ Docker ์ด๋ฏธ์ง๊ฐ ์๋์ผ๋ก ๋น๋๋์ด "์ต์ " ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ Docker Hub์ ๋ฐฐํฌ๋ฉ๋๋ค. Docker Hub๊ฐ ์ผ๋ถ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ
DataHub ์ฌ์ฉ
- ์คํ ์์ค ์ ์ฅ์๋ฅผ ๋ณต์ ํ๊ณ ๋น ๋ฅธ ์์์ ์ํด ์ ๊ณต๋ docker-compose ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ docker-compose๋ก ๋ชจ๋ Docker ์ปจํ ์ด๋๋ฅผ ์คํํฉ๋๋ค.
- ํจ๊ป ์ ๊ณต๋๋ ๋ช ๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์์ ์ ๊ณต๋ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- ๋ธ๋ผ์ฐ์ ์์ DataHub๋ฅผ ์ฐพ์๋ณด์ธ์.
์ ๊ทน์ ์ผ๋ก ์ถ์ ๋จ
์์ผ๋ก์ ๊ณํ
ํ์ฌ ์คํ ์์ค DataHub์ ๋ชจ๋ ์ธํ๋ผ ๋๋ ๋ง์ดํฌ๋ก์๋น์ค๋ Docker ์ปจํ
์ด๋๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ์ ์ฒด ์์คํ
์ ๋ค์์ ์ฌ์ฉํ์ฌ ์กฐ์ ๋ฉ๋๋ค.
๋ํ ๋ค์๊ณผ ๊ฐ์ ๊ณต์ฉ ํด๋ผ์ฐ๋ ์๋น์ค์ DataHub๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํ ํดํค ์๋ฃจ์
์ ์ ๊ณตํ ๊ณํ์
๋๋ค.
๋ง์ง๋ง์ผ๋ก DataHub ์ํ ๋ฒ์ ์ ํ๊ฐํ๊ณ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ๋ฌธ์๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ ์ค ์คํ ์์ค ์ปค๋ฎค๋ํฐ์ ๋ชจ๋ DataHub ์ผ๋ฆฌ ์ด๋ตํฐ๋ค์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ถ์ฒ : habr.com