์ด ๋ฌธ์์์๋ Dataform์์ ๋ค์ ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
- Dataform์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ ์ดํดํ๊ธฐ
- ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๋ง๋ค๊ธฐ
- Dataform API๋ก ์ปดํ์ผ ์ฌ์ ์ ๊ตฌ์ฑํ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
- ์ถ์ ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
์์ํ๊ธฐ ์ ์
Google Cloud ์ฝ์์์ Dataform ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ ์ฅ์๋ฅผ ์ ํํ๊ฑฐ๋ ๋ง๋ญ๋๋ค.
๊ฐ๋ฐ ์์ ๊ณต๊ฐ์ ์ ํํ๊ฑฐ๋ ๋ง๋ญ๋๋ค.
์ ํ์ฌํญ: ์ถ์ ๊ตฌ์ฑ์์ ๊ธฐ๋ณธ Google Cloud ํ๋ก์ ํธ๋ฅผ ์ฌ์ ์ํ๋ ค๋ฉด ์ฌ์ฉํ๋ ค๋ ํ๋ก์ ํธ์ ๋ํด Dataform ์๋น์ค ๊ณ์ ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
ํ์ํ ์ญํ
์ด ๋ฌธ์์ ์์
์ ์๋ฃํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ์ ์ฅ์์ ๋ํ Dataform ๊ด๋ฆฌ์ (roles/dataform.admin
) IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ํตํด ํ์ํ ๊ถํ์ ์ป์ ์๋ ์์ต๋๋ค.
์๊ฒฉํ act-as ๋ชจ๋๊ฐ ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ Dataform ์ ์ฅ์์ ์ถ์ ๊ตฌ์ฑ ์ถ์ ๋ฒ์ ์ ์
๋ฐ์ดํธํ๋ ค๋ฉด ์ด ์ถ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ์ํฌํ๋ก ๊ตฌ์ฑ์ ๋ชจ๋ ์๋น์ค ๊ณ์ ์ iam.serviceAccounts.actAs
๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์ด ๊ถํ์ ์๋น์ค ๊ณ์ ์ฌ์ฉ์(roles/iam.serviceAccountUser
) ์ญํ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Dataform์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ ์๊ฐ
์ด ์น์ ์์๋ Dataform์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ์ Dataform ๋ด์์ ์ปดํ์ผ ๋ฐ ์คํ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Dataform ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ๋ ๋ค์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๊ฐ๋ฐ
- Dataform ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
- ์ปดํ์ผ
Dataform์ ์์ ๊ณต๊ฐ์ ์ํฌํ๋ก ์ฝ๋๋ฅผ ์ค์๊ฐ์ผ๋ก SQL๋ก ์ปดํ์ผํ์ฌ BigQuery์์ ์คํํ ์ ์๋ ์์ ๊ณต๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค. Dataform์ ์ํฌํ๋ก ์ค์ ํ์ผ์ ์ ์๋ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค.
Dataform ์ปดํ์ผ์ ์ปดํ์ผ ์ผ๊ด์ฑ์ ์ํด ๊ธฐ๋ณธ ์ ๊ณต๋ฉ๋๋ค. ์ฆ, ๋์ผํ ์ฝ๋๊ฐ ๋งค๋ฒ ๋์ผํ SQL ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ์ปดํ์ผ๋ฉ๋๋ค. Dataform์ ์ธํฐ๋ท ์ก์ธ์ค ์์ด ์๋๋ฐ์ค ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ์ปดํ์ผํฉ๋๋ค. ์ปดํ์ผ ์ค์๋ ์ธ๋ถ API ํธ์ถ๊ณผ ๊ฐ์ ์ถ๊ฐ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ์คํ
์ํฌํ๋ก ํธ์ถ์์ Dataform์ BigQuery์์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํฉ๋๋ค.
ํ์์ ๋ง๊ฒ Dataform ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ค๋ฉด Dataform์ด ์ํฌํ๋ก๋ฅผ ์คํํ ์์น์ ๋ฐฉ๋ฒ์ ์ํฅ์ ์ฃผ๋๋ก ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Dataform์ด ์ ์ฒด ์ํฌํ๋ก ๋๋ ์ ํํ ์์๋ฅผ ์คํํ๋ ์๊ธฐ์ ์ํฅ์ ์ฃผ๋๋ก ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๊ฑฐ๋ ์์ฝํ ์ ์์ต๋๋ค.
Dataform ์ปดํ์ผ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
๊ธฐ๋ณธ์ ์ผ๋ก Dataform์ ์ํฌํ๋ก ์ค์ ํ์ผ์ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค. ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ ์ํ์ฌ ๋ง์ถค ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ง์ถค ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๊ฑฐ๋ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค.
Dataform์ ๋ค์๊ณผ ๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์
- ์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ์ ์ฉ๋๋ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฉ๋ฆฌ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
- ์ถ์ ๊ตฌ์ฑ
- ์ถ์ ๊ตฌ์ฑ์ ๋ง๋ค์ด Dataform ์ ์ฅ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ ํ๋ฆฟ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ํฌํ๋ก ๊ตฌ์ฑ์ ๋ง๋ค์ด ์ ํํ ์ถ์ ๊ตฌ์ฑ์์ ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค.
- Dataform API ์ปดํ์ผ ์ฌ์ ์
- ํฐ๋ฏธ๋์์ Dataform API ์์ฒญ์ ์ ๋ฌํ์ฌ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๊ตฌ์ฑ
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ๋ฉด Dataform ์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ๋ํ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์ฅ์๋ง๋ค ํ๋์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๊ตฌ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๊ฐ ์๋ ์ ์ฅ์์์ ์์ ๊ณต๊ฐ์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ฉด Dataform์ด ์ด๋ฌํ ์ฌ์ ์๋ฅผ ์์ ๊ณต๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ ์ฉํฉ๋๋ค.
๋ค์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Google Cloud Dataform์ด ์์ ๊ณต๊ฐ์ ์ฝํ ์ธ ๋ฅผ ์คํํ๋ ํ๋ก์ ํธ
- ํ ์ด๋ธ ํ๋ฆฌํฝ์ค
- ์คํค๋ง ์ํฝ์ค
์์
๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ BigQuery์์ ์์
๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋์ ์ปดํ์ผ ์ฌ์ ์๋ก ๊ฒฉ๋ฆฌํ๋ฉด ๊ฒฉ๋ฆฌ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค. ๋์ ํ
์ด๋ธ ์ ๋์ฌ ๋ฐ ์คํค๋ง ์ ๋ฏธ์ฌ ์ปดํ์ผ ์ฌ์ ์์๋ ${workspaceName}
๋ณ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์์
๊ณต๊ฐ์์ ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ฉด Dataform์ด ${workspaceName}
๋ณ์๋ฅผ ํ์ฌ ์์
๊ณต๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ์ด ์์
๊ณต๊ฐ์ ๊ณ ์ ํ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์์ฑํฉ๋๋ค.
์ฐธ๊ณ ๋ก, ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ก ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค.
์ถ์ ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
์ถ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ์ ์ฅ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค์ ํ ํ๋ฆฟ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ถ์ ๊ตฌ์ฑ์์๋ ์ํฌํ๋ก ์ค์ , ์ปดํ์ผ ๋ณ์, ์ ์ฒด ์ ์ฅ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ ์์ฑ์ ๋น๋์ ๋ํ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ถ์ ๊ตฌ์ฑ์์๋ ๋ค์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Google Cloud ํ๋ก์ ํธ
- ํ ์ด๋ธ ํ๋ฆฌํฝ์ค
- ์คํค๋ง ์ํฝ์ค
- ์ปดํ์ผ ๋ณ์์ ๊ฐ
Dataform ์ ์ฅ์์์ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ ๋จ๊ณ๋ง๋ค ํ๋์ฉ ์ฌ๋ฌ ๊ฐ์ ์ถ์ ๊ตฌ์ฑ์ ๋ง๋ค์ด ๊ฒฉ๋ฆฌ๋ ์ ์ฅ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ํฌํ๋ก ๊ตฌ์ฑ์ ๋ง๋ค์ด ์ ํํ ์ถ์ ๊ตฌ์ฑ์์ ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค.
์ ํํ ์ถ์ ๊ตฌ์ฑ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ ์๋ ์์ต๋๋ค.
Dataform API ์ปดํ์ผ ์ฌ์ ์๋ก ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ ๊ตฌ์ฑ
ํฐ๋ฏธ๋์์ Dataform API ์์ฒญ์ ์ ๋ฌํ๋ฉด ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋ํ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
compilationResults.create
์์ฒญ์์ Dataform ์์
๊ณต๊ฐ ๋๋ ์ง์ ๋ Git comittish์ ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์์ ์ปดํ์ผ ์์ฒญ์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ค์ Dataform API ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Google Cloud ํ๋ก์ ํธ
- ํ ์ด๋ธ ํ๋ฆฌํฝ์ค
- ์คํค๋ง ์ํฝ์ค
- ์ปดํ์ผ ๋ณ์์ ๊ฐ
Dataform API ์ปดํ์ผ ์ฌ์ ์๋ ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋จ์ผ ์คํ์ ์ ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ Dataform ์คํ์ ์์ฝํ๋ ๋ฐ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
workflowInvocations.create
์์ฒญ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
Dataform ์คํ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
Dataform์ ์คํ์ ๊ตฌ์ฑํ๋ ๋ค์๊ณผ ๊ฐ์ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- ์์ ๊ณต๊ฐ์์ ์๋ ์คํ
- ์ผ์ ์ ๊ด๊ณ์์ด Dataform ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก ์ฆ์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค. ์ํฌํ๋ก์์ ์ ํํ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
- ์ํฌํ๋ก ๊ตฌ์ฑ
- ์ ํํ ์ถ์ ๊ตฌ์ฑ์์ ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค. ์คํํ ์ํฌํ๋ก ์์ ์ ์ ํํ์ฌ ์คํ ๋น๋ ๋ฐ ์๊ฐ๋๋ฅผ ์ค์ ํ์ธ์.
์์ ๊ณต๊ฐ์์ ์ฆ์ ์คํ ํธ๋ฆฌ๊ฑฐ
Dataform ์์ ๊ณต๊ฐ์์๋ ์ผ์ ๊ณผ ๊ด๊ณ์์ด ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก์ ์ฆ์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
์ํฌ์คํ์ด์ค์์ ์ํฌํ๋ก์ ๋ค์ ์์๋ฅผ ์๋์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
์ ์ฅ์์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๊ฐ ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ Dataform์ด ์์ ๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ ์ฉํ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ํฌํ๋ก ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
์ํฌํ๋ก ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ์ ํํ ์ถ์ ๊ตฌ์ฑ์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค. Dataform ์ ์ฅ์์์ ์ฌ๋ฌ ์ํฌํ๋ก ๊ตฌ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ํฌํ๋ก ๊ตฌ์ฑ์์ ๋ค์๊ณผ ๊ฐ์ ์คํ ์ค์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ ์ฉ๋ ์ปดํ์ผ ์ถ์ ๊ตฌ์ฑ์ ๋๋ค.
- ์คํํ ์ํฌํ๋ก ์์ ์ ์ ํํฉ๋๋ค.
- ์คํ์ ์ผ์ ๋ฐ ์๊ฐ๋์ ๋๋ค.
๋ค์ ์ํฌํ๋ก ์์ ์ ์คํํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ์์
- ์ ํํ ์์
- ์ ํํ ํ๊ทธ๊ฐ ์๋ ์์
๊ทธ๋ฐ ๋ค์ ์ํฌํ๋ก ๊ตฌ์ฑ์ ์์ฝ๋ ์คํ ์ค์ Dataform์ด ์ ์ฉ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ์์ ์ ํํ ์์ ์ BigQuery์ ๋ฐฐํฌํฉ๋๋ค.
Dataform ์ถ์ ๊ตฌ์ฑ ๋ฐ ์ํฌํ๋ก ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ์ถ๊ฐ ์๋น์ค์ ์์กดํ์ง ์๊ณ ๋ Dataform์์ ์ปดํ์ผ์ ๊ตฌ์ฑํ๊ณ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค.
์๋ช ์ฃผ๊ธฐ ๋ฆฌ์์ค ๋ง๋ฃ
Dataform์ ํน์ ๊ธฐ๊ฐ ๋์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ํฌํ๋ก ํธ์ถ์ ์ ์ฅํฉ๋๋ค.
์ํฌํ๋ก ํธ์ถ ๋ง๋ฃ
์ํฌํ๋ก ํธ์ถ์ 90์ผ์ด ๊ฒฝ๊ณผํ๊ฑฐ๋ ์๋์ผ๋ก ์ญ์ ํ๋ฉด ๋ง๋ฃ๋ฉ๋๋ค.
์ํฌํ๋ก ๊ตฌ์ฑ์์ ๊ตฌ์ฑ์ ์ํด ์์ฑ๋ ์ต๊ทผ ์ํฌํ๋ก ํธ์ถ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค. ์ํฌํ๋ก ๊ตฌ์ฑ์ผ๋ก ์์ฑ๋ ์ํฌํ๋ก ํธ์ถ์ด ๋ง๋ฃ๋๋ฉด Dataform์ ์ต๊ทผ ํธ์ถ ๋ชฉ๋ก์์ ํด๋น ์ํฌํ๋ก ํธ์ถ์ ์ญ์ ํฉ๋๋ค.
์ปดํ์ผ ๊ฒฐ๊ณผ ๋ง๋ฃ
์ปดํ์ผ ๊ฒฐ๊ณผ ๋ง๋ฃ๋ ๊ฐ๋ฐ ์์ ๊ณต๊ฐ, ์ถ์ ๊ตฌ์ฑ, ์ํฌํ๋ก ํธ์ถ ๋ฑ ์์ฑ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
Dataform ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก๋ฅผ ๊ฐ๋ฐํ๋ฉด Dataform์ด ์ค์๊ฐ์ผ๋ก ์ฝ๋๋ฅผ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ์ปดํ์ผํ์ฌ ์ฟผ๋ฆฌ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ฒ ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ 24์๊ฐ ํ์ ๋ง๋ฃ๋ฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ์์ ์ต์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ ๋ผ์ด๋ธ ์ปดํ์ผ ๊ฒฐ๊ณผ๊ฐ ๋ฉ๋๋ค. ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๊ฐ ํ์ฌ ๋ผ์ด๋ธ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋์ฒดํฉ๋๋ค. Dataform์ ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ๋์ฒด๋ ๋๊น์ง ๋ผ์ด๋ธ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ ์งํฉ๋๋ค. ๋ฐ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ ์ต๋ 24์๊ฐ ํ์ ๋ง๋ฃ๋ฉ๋๋ค.
Dataform์ ์ถ์ ๊ตฌ์ฑ์ ์ธ๋ถ์ ๋ณด ํ์ด์ง์ ์๋ ์ด์ ์ปดํ์ผ ๊ฒฐ๊ณผ ๋ชฉ๋ก์์ ๋ง๋ฃ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ญ์ ํฉ๋๋ค.
Dataform์ ์ํฌํ๋ก ํธ์ถ์ด ๋ง๋ฃ๋๊ฑฐ๋ ์ญ์ ๋ ํ ์ต๋ 24์๊ฐ ๋์ ์ํฌํ๋ก ํธ์ถ ์ ์ฒด ๊ธฐ๊ฐ ๋์ ์ํฌํ๋ก ํธ์ถ๋ก ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ดํฉ๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๋ง๋ค๊ธฐ
๋ค์ ์น์ ์์๋ BigQuery์ Dataform ์์ ๊ณต๊ฐ์์ ๋ง๋ค์ด์ง ํ ์ด๋ธ๊ณผ ๋ทฐ๋ฅผ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๊ฒฉ๋ฆฌ๋ Dataform ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
Dataform ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ฉด Dataform์ด ์์ ๊ณต๊ฐ์ ์ฝ๋๋ฅผ ์ค์๊ฐ์ผ๋ก ์ปดํ์ผํ์ฌ ์์ ๊ณต๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค. Dataform์ ์ํฌํ๋ก ์ค์ ํ์ผ์ ์ ์๋ ์ค์ ์ ์ฌ์ฉํ์ฌ ์์ ๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ ๊ณต๊ฐ์์ ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ฉด Dataform์ด BigQuery์์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํฉ๋๋ค.
์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ๋ํด ์ํฌํ๋ก ์ค์ ์์ ์ค์ ๋ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ ์ํ๋ ค๋ฉด ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋ง๋ค๋ฉด ๋ฉ๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ๋ํด ๋ค์ ์ค์ ์ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ
- Dataform์ด ์์
๊ณต๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํ๋ Google Cloud ํ๋ก์ ํธ๋ก,
workflow_settings.yaml
์defaultProject
๋ก ์ค์ ๋๊ฑฐ๋dataform.json
์defaultDatabase
๋ก ์ค์ ๋์ด ์์ต๋๋ค. - ํ ์ด๋ธ ํ๋ฆฌํฝ์ค
- ์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ๋ชจ๋ ํ ์ด๋ธ ์ด๋ฆ์ ์ถ๊ฐ๋ ๋ง์ถค ์ ๋์ฌ
- ์คํค๋ง ์ํฝ์ค
- ํ
์ด๋ธ์ ์คํค๋ง์ ์ถ๊ฐ๋ ๋ง์ถค ์ํฝ์ค์
๋๋ค.
workflow_settings.yaml
์defaultDataset
,dataform.json
์defaultSchema
๋ก ์ค์ ๋๊ฑฐ๋, ํ ์ด๋ธconfig
๋ธ๋ก์schema
๋งค๊ฐ๋ณ์์ ์ ์๋์ด ์์ต๋๋ค.
๊ฒฉ๋ฆฌ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค๋ ค๋ฉด ๊ณ ์ ํ ์ปดํ์ผ ์ฌ์ ์๋ก ์์
๊ณต๊ฐ์ ๊ฒฉ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. ${workspaceName}
๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ
์ด๋ธ ์ ๋์ฌ ๋ฐ ์คํค๋ง ์ ๋ฏธ์ฌ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋์ ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
์์
๊ณต๊ฐ์์ ์๋์ผ๋ก ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ฉด ${workspaceName}
๋ณ์๊ฐ ์์
๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์์ ์์
๊ณต๊ฐ ์ด๋ฆ์ ์ฝ์
ํฉ๋๋ค.
${workspaceName}
์ ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ก ์ค์ ํ๋ฉด Dataform์ด ์์
๊ณต๊ฐ์ ๋ชจ๋ ํ
์ด๋ธ ์ด๋ฆ์ ์์
๊ณต๊ฐ์ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค. ์คํ ํ BigQuery์์ ํ
์ด๋ธ์ด ์์๋ ์์
๊ณต๊ฐ์ ์๋ณํ ์ ์์ต๋๋ค.
${workspaceName}
์ ์คํค๋ง ์ํฝ์ค๋ก ์ค์ ํ๋ฉด Dataform์ด ์์
๊ณต๊ฐ์ ์ด๋ฆ์ defaultSchema
์ ์ถ๊ฐํ์ฌ ์์
๊ณต๊ฐ ์ ์ฉ ์ปค์คํ
์คํค๋ง๋ฅผ ๋ง๋ญ๋๋ค. ์คํ ํ BigQuery์์ ์ ์ฉ ์คํค๋ง์ ํน์ ์์
๊ณต๊ฐ์์ ์คํ๋ ๋ชจ๋ ํ
์ด๋ธ์ ์ฐพ์ ์ ์์ต๋๋ค.
๋์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์์ ์
๋ค์ ์์์์๋ ์ ์ฅ์์์ ์์
ํ๋ ๊ฐ๋ฐ์์ ์ด๋ฆ์ ๋ฐ์ ๋ช
๋ช
๋ ์์
๊ณต๊ฐ(Sasha
๋ฐ Kai
)์ ํฌํจํ๋ ์ ์ฅ์์ ์ ์ฉ๋ ๋์ ์์
๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ด ์์์์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์์ ๋ชฉํ๋ Sasha์ Kai์ ๊ฒฉ๋ฆฌ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๋ค์ ๊ธฐ๋ณธ ์ค์ ์ด workflow_settings.yaml
์ ์ค์ ๋ฉ๋๋ค.
defaultProject
:analytics
defaultDataset
:dataform
๋ค์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ ์ ์ฅ์์ ๊ฐ ์์ ๊ณต๊ฐ์ ๋์ ํ ์ด๋ธ ํ๋ฆฌํฝ์ค์ ์คํค๋ง ์ํฝ์ค๋ฅผ ๋ง๋ญ๋๋ค.
- Google Cloud ํ๋ก์ ํธ ID:
analytics_dev
- ํ
์ด๋ธ ํ๋ฆฌํฝ์ค:
${workspaceName}
- ์คํค๋ง ์ํฝ์ค:
${workspaceName}
์ฌ์ค๊ฐ Sasha
์์
๊ณต๊ฐ์์ ์๋์ผ๋ก ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ฉด Dataform์ ๋ค์ ์ค์ ์ผ๋ก ์ฝํ
์ธ ๋ฅผ ์คํํฉ๋๋ค.
- Google Cloud project:
analytics_dev
- ์คํค๋ง:
dataform_sasha
- ํ
์ด๋ธ ์ด๋ฆ:
sasha_name
(์:sasha_orders
)
์นด์ด๊ฐ Kai
์์
๊ณต๊ฐ์์ ์๋์ผ๋ก ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ฉด Dataform์ ๋ค์ ์ค์ ์ผ๋ก ์ฝํ
์ธ ๋ฅผ ์คํํฉ๋๋ค.
- Google Cloud project:
analytics_dev
- ์คํค๋ง:
dataform_kai
- ํ
์ด๋ธ ์ด๋ฆ:
kai_name
(์:kai_orders
)
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ๋ง๋ค๊ธฐ
Dataform ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ค์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ์ฐฝ์ Google Cloud ํ๋ก์ ํธ ID ํ๋์ ํ๋ก์ ํธ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ํ
์ด๋ธ ์ ๋์ฌ ํ๋์ ๋ชจ๋ ํ
์ด๋ธ ์ด๋ฆ์ ์ ๋์ฌ๋ฅผ ์
๋ ฅํฉ๋๋ค.
- (์ ํ์ฌํญ) ๊ฐ ์์
๊ณต๊ฐ์ ๊ณ ์ ํ ๋์ ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ก
${workspaceName}
์ ์ ๋ ฅํฉ๋๋ค.
- (์ ํ์ฌํญ) ๊ฐ ์์
๊ณต๊ฐ์ ๊ณ ์ ํ ๋์ ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ก
- ์คํค๋ง ์ํฝ์ค ํ๋์์ ์์ฑ๋ ํ
์ด๋ธ ๋๋ ๋ทฐ์ ์คํค๋ง์ ์ถ๊ฐํ ์ํฝ์ค๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ์ ํ์ฌํญ: ๊ฐ ์์
๊ณต๊ฐ์ ๊ณ ์ ํ ๋์ ์คํค๋ง ์ํฝ์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ํ
์ด๋ธ ์ํฝ์ค๋ก
${workspaceName}
์ ์ ๋ ฅํฉ๋๋ค.
- ์ ํ์ฌํญ: ๊ฐ ์์
๊ณต๊ฐ์ ๊ณ ์ ํ ๋์ ์คํค๋ง ์ํฝ์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ํ
์ด๋ธ ์ํฝ์ค๋ก
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
Dataform์ด ์ ์ฅ์์ ๋ชจ๋ ์์ ๊ณต๊ฐ์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ ์ฉํฉ๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ์์
Dataform ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ค์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์์ ํ ํ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ์ญ์
Dataform ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ค์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์ ์ฐฝ์์ ๋ชจ๋ ์ง์ฐ๊ธฐ๋ฅผ ํด๋ฆญํ ๋ค์ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
Dataform API๋ก ์ปดํ์ผ ์ฌ์ ์ ๊ตฌ์ฑ
์ด ์น์ ์์๋ Dataform API๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ์ฌ์ ์๋ก ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๊ณ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
Dataform API ์ปดํ์ผ ์ฌ์ ์ ์ ๋ณด
์ํฌํ๋ก๋ฅผ ์คํํ๊ธฐ ์ํด Dataform์ ์ฝ๋๋ฅผ SQL๋ก ์ปดํ์ผํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ํฌํ๋ก ํธ์ถ ์ค์ Dataform์ด BigQuery์์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Dataform์ ์ํฌํ๋ก ์ค์ ํ์ผ์ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ์ฌ๋ฌ ๋จ๊ณ์์ ๋ฐ์ดํฐ ์คํ์ ๊ฒฉ๋ฆฌํ๋ ค๋ฉด ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ ์ํ๋ฉด ๋ฉ๋๋ค.
ํฐ๋ฏธ๋์์ Dataform API ์์ฒญ์ ์ ๋ฌํ๋ฉด ์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค. ์์ ๊ณต๊ฐ ๋๋ ์ ํํ Git committish์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ปดํ์ผ ์ฌ์ ์๋ก ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค๋ ค๋ฉด Dataform API compilationResults.create
์์ฒญ์ ๋ณด๋ด์ผ ํฉ๋๋ค. ์์ฒญ์์ Dataform์ด ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ์ปดํ์ผ๋๋ ค๋ฉด ์์
๊ณต๊ฐ ๋๋ Git commitish๋ฅผ ์์ค๋ก ์ง์ ํด์ผ ํฉ๋๋ค. compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ Dataform API workflowInvocations.create
์์ฒญ์์ ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค.
Dataform API๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Google Cloud project
- Dataform์ด ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํ๋ ํ๋ก์ ํธ๋ก,
workflow_settings.yaml
ํ์ผ์defaultProject
์์ฑ์ผ๋ก ์ค์ ๋๊ฑฐ๋dataform.json
ํ์ผ์defaultDatabase
์์ฑ์ผ๋ก ์ค์ ๋ฉ๋๋ค. - ํ ์ด๋ธ ํ๋ฆฌํฝ์ค
- ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋ชจ๋ ํ ์ด๋ธ ์ด๋ฆ์ ์ถ๊ฐ๋ ๋ง์ถค ์ ๋์ฌ์ ๋๋ค.
- ์คํค๋ง ์ํฝ์ค
workflow_settings.yaml
ํ์ผ์defaultDataset
์์ฑ,dataform.json
ํ์ผ์defaultSchema
์์ฑ ๋๋ ํ ์ด๋ธ์config
๋ธ๋ก์ ์๋schema
๋งค๊ฐ๋ณ์์ ์ ์๋ ํ ์ด๋ธ์ ์คํค๋ง์ ์ถ๊ฐ๋๋ ๋ง์ถค ์ ๋ฏธ์ฌ์ ๋๋ค.- ์ปดํ์ผ ๋ณ์์ ๊ฐ
- ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ฌ์ฉ๋๋ ์ปดํ์ผ ๋ณ์์ ๊ฐ์ ๋๋ค. ์ปดํ์ผ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด๋ถ๋ก ํ ์ด๋ธ์ ์คํํ ์ ์์ต๋๋ค.
ํ๋์ ์ปดํ์ผ ๊ฒฐ๊ณผ์๋ง ์ฌ์ฉํ ์ ์๋ Dataform API ์ปดํ์ผ ์ฌ์ ์์ ๋ํ ๋์์ผ๋ก Google Cloud ์ฝ์์์ ์์ ๊ณต๊ฐ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Dataform์์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค๋ฉด Dataform์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ ์๊ฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ปดํ์ผ ๊ฒฐ๊ณผ ์์ค ์ค์
Dataform API compilationResults.create
์์ฒญ์ ์ ์กํ๋ ค๋ฉด ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์์ค๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
compilationResults.create
์์ฒญ์์ Dataform ์์
๊ณต๊ฐ ๋๋ Git ๋ธ๋์น, Git ํ๊ทธ ๋๋ Git ์ปค๋ฐ SHA๋ฅผ ์์ค๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์์ ๊ณต๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ ์์ค๋ก ์ค์
compilationResults.create
์์ฒญ์์workspace
์์ฑ์ ๋ค์ ํ์์ ์ ํ๋ Dataform ์์ ๊ณต๊ฐ ๊ฒฝ๋ก๋ก ์ฑ์๋๋ค.{ "workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME" }
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_NAME: Google Cloud ํ๋ก์ ํธ์ ์ด๋ฆ์ ๋๋ค.
- LOCATION: ์ํฌํ๋ก ์ค์ ์ ์ค์ ๋ Dataform ์ ์ฅ์์ ์์น
- REPOSITORY_NAME: Dataform ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.
- WORKSPACE_NAME: Dataform ์ํฌ์คํ์ด์ค์ ์ด๋ฆ์ ๋๋ค.
๋ค์ ์ฝ๋ ์ํ์ "sales-test"
๋ผ๋ ์์
๊ณต๊ฐ์ ์ค์ ๋ compilationResults.create
์์ฒญ์ workspace
์์ฑ์ ๋ณด์ฌ์ค๋๋ค.
{
"workspace": "projects/analytics/locations/europe-west4/repositories/sales/workspaces/sales-test"
}
Git commitish๋ฅผ ์ปดํ์ผ ๊ฒฐ๊ณผ ์์ค๋ก ์ค์
compilationResults.create
์์ฒญ์์gitCommitish
์์ฑ์ ๋ค์ ํ์์ ์ ํ๋ Git ๋ธ๋์น, ํ๊ทธ ๋๋ ์ปค๋ฐ SHA๋ก ์ฑ์๋๋ค.{ "gitCommitish": "GIT_COMMITISH" }
GIT_COMMITISH๋ฅผ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ ํ๋ Git ๋ธ๋์น, Git ํ๊ทธ ๋๋ Git ์ปค๋ฐ SHA๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ์ฝ๋ ์ํ์ "staging"
์ผ๋ก ์ค์ ๋ compilationResults.create
์์ฒญ์ gitCommitish
์์ฑ์ ๋ณด์ฌ์ค๋๋ค.
{
"gitCommitish": "staging"
}
๊ธฐ๋ณธ ํ๋ก์ ํธ ์ฌ์ ์
๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ํ๋ก์ ํธ์ ๋ณ๊ฐ๋ก Google Cloud ํ๋ก์ ํธ์์ ์คํ
์ด์ง ๋๋ ํ๋ก๋์
ํ
์ด๋ธ์ ๋ง๋ค๋ ค๋ฉด Dataform API compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์ ๋ค๋ฅธ ํ๋ก์ ํธ ID๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
compilationResults.create
์์ฒญ์ ๋ณ๋์ ๊ธฐ๋ณธ ํ๋ก์ ํธ ID๋ฅผ ์ ๋ฌํ๋ฉด ์ํฌํ๋ก ์ค์ ํ์ผ์ ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ํ๋ก์ ํธ ID๊ฐ ์ฌ์ ์๋์ง๋ง ๊ฐ๋ณ ํ
์ด๋ธ์ ๊ตฌ์ฑ๋ ํ๋ก์ ํธ ID๋ ์ฌ์ ์๋์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ํ๋ก์ ํธ ID๋ฅผ ์ฌ์ ์ํ๋ ค๋ฉด
defaultDatabase
์์ฑ์CodeCompilationConfig
๊ฐ์ฒด์์ ๋ค์ ํ์์ ์ ํ๋ ํ๋ก์ ํธ ID๋ก ์ค์ ํ์ธ์.{ "codeCompilationConfig": { "defaultDatabase": "PROJECT_NAME" } }
PROJECT_NAME์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์ค์ ํ๋ ค๋ ํ๋ก์ ํธ ID๋ก ๋ฐ๊ฟ๋๋ค.
ํ ์ด๋ธ ํ๋ฆฌํฝ์ค ์ถ๊ฐ
์ปดํ์ผ ๊ฒฐ๊ณผ์์ ํ
์ด๋ธ์ ๋น ๋ฅด๊ฒ ์๋ณํ๋ ค๋ฉด Dataform API compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์ ํ
์ด๋ธ ํ๋ฆฌํฝ์ค๋ฅผ ์ ๋ฌํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋ชจ๋ ํ
์ด๋ธ ์ด๋ฆ์ ํ๋ฆฌํฝ์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ํ ์ด๋ธ ํ๋ฆฌํฝ์ค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด
CodeCompilationConfig
๊ฐ์ฒด์์tablePrefix
์์ฑ์ ๋ค์ ํ์์ผ๋ก ์ค์ ํฉ๋๋ค.{ "codeCompilationConfig": { "tablePrefix": "PREFIX", } }
PREFIX์ ์ถ๊ฐํ ์ ๋์ฌ(์:
staging
)๋ก ๋ฐ๊ฟ๋๋ค.์๋ฅผ ๋ค์ด ํ ์ด๋ธ ์ด๋ฆ์ด
table_name
์ด๋ฉด Dataform์staging_table_name
์ด๋ฆ์ผ๋ก ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค.
์คํค๋ง ์ ๋ฏธ์ฌ ์ถ๊ฐ
๊ฐ๋ฐ, ์คํ
์ด์ง, ํ๋ก๋์
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํ๋ ค๋ฉด Dataform API compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์ ์คํค๋ง ์ํฝ์ค๋ฅผ ์ ๋ฌํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํค๋ง์ ์ํฝ์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์คํค๋ง ์ํฝ์ค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด
CodeCompilationConfig
๊ฐ์ฒด์schemaSuffix
์์ฑ์ ๋ค์ ํ์์ผ๋ก ์ค์ ํฉ๋๋ค.{ "codeCompilationConfig": { "schemaSuffix": "SUFFIX", } }
SUFFIX๋ฅผ ์ถ๊ฐํ ์ํฝ์ค(์:
_staging
)๋ก ๋ฐ๊ฟ๋๋ค.์๋ฅผ ๋ค์ด
workflow_settings.yaml
ํ์ผ์defaultDataset
์์ฑ์ดdataform
๋ก ์ค์ ๋ ๊ฒฝ์ฐ Dataform์dataform_staging
์คํค๋ง์ ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค.
์ปดํ์ผ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ํํ ํ์ผ์ ์กฐ๊ฑด๋ถ๋ก ์คํ
ํน์ ์คํ ์ค์ ์์๋ง ์ ํ๋ ํ
์ด๋ธ์ ์คํํ๋ ค๋ฉด ์คํ ์ค์ ์ ์ปดํ์ผ ๋ณ์๋ฅผ ๋ง๋ ๋ค์ Dataform API compilationResults.create
์์ฒญ์ CodeCompilationConfig
๊ฐ์ฒด์ ์ด ๊ฐ์ ์ ๋ฌํฉ๋๋ค.
Dataform API๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์คํ ์ค์ ์์ ํ ์ด๋ธ์ ์กฐ๊ฑด๋ถ๋ก ์คํํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ปดํ์ผ ๋ณ์๋ฅผ ๋ง๋ค์ด ์ ํํ ํ ์ด๋ธ์ ์ถ๊ฐํฉ๋๋ค.
Dataform API ์ปดํ์ผ ์์ฒญ์
codeCompilationConfig
๋ธ๋ก์ ๋ค์ ํ์์ YOUR_VARIABLE ๋ฐ VALUE ํค-๊ฐ ์์ ์ค์ ํฉ๋๋ค.{ "codeCompilationConfig": { "vars": { "YOUR_VARIABLE": "VALUE" } } }
YOUR_VARIABLE์ ๋ณ์ ์ด๋ฆ(์:
executionSetting
)์ผ๋ก ๋ฐ๊ฟ๋๋ค.VALUE๋ฅผ ์ ํํ ํ ์ด๋ธ์ ์ค์ ๋
when
์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ์ด ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋ณ์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ์ฝ๋ ์ํ์ Dataform API ์ปดํ์ผ ์์ฒญ์ ์ ๋ฌ๋ executionSetting
๋ณ์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
{
"gitCommitish": "staging",
"codeCompilationConfig": {
"vars": {
"executionSetting": "staging"
}
}
}
์ปดํ์ผ ์ฌ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ ์คํ
compilationResults.create
์์ฒญ์ผ๋ก ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํ๋ ค๋ฉดworkflowInvocations.create
์์ฒญ์compilationResults.create
์์ฒญ์์ ๋ฐํ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ ID๋ฅผ ์ ๋ฌํ์ธ์.
๋ค์ ์ฝ๋ ์ํ์ workflowInvocations.create
์์ฒญ์์ ์ ๋ฌ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ ID๋ฅผ ๋ณด์ฌ์ค๋๋ค.
{
"compilationResult": "projects/my-project-name/locations/europe-west4/repositories/my-repository-name/compilationResults/7646b4ed-ac8e-447f-93cf-63c43249ff11"
}
์ถ์ ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
๋ค์ ์น์ ์์๋ Dataform์์ ์ถ์ ๊ตฌ์ฑ์ ๋ง๋ค์ด ์ผ์ ์ ๋ฐ๋ผ ์คํํ ์ ์๋ ์ปดํ์ผ ์ค์ ํ ํ๋ฆฟ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ถ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์คํ ํ๊ฒฝ(์: ์คํ ์ด์ง, ํ๋ก๋์ )์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค
BigQuery์์ ์ํฌํ๋ก๋ฅผ ์คํํ๊ธฐ ์ํด Dataform์ SQL ์ํฌํ๋ก ์ฝ๋๋ฅผ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ก ์ปดํ์ผํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ Dataform ์์ ๊ณต๊ฐ์์ ์ํฌํ๋ก๋ฅผ ๊ฐ๋ฐํ ๋ ์๋์ผ๋ก ์ํ๋ฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง์ถค์ค์ ํ ์ ์์ต๋๋ค. ์ถ์ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์คํ ํ๊ฒฝ(์: ์คํ ์ด์ง)์ ๋ง๋ค ์ ์์ต๋๋ค.
์ถ์ ๊ตฌ์ฑ ์ค์
์ถ์ ๊ตฌ์ฑ์์๋ ์ํฌ๋ฅผ๋ก ์ค์ ์ค์ ์ ์ปดํ์ผ ์ฌ์ ์๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ปดํ์ผ ๋ณ์๋ฅผ ์ค์ ํ๋ฉฐ, ์ปดํ์ผ ๊ฒฐ๊ณผ ์์ฑ์ ๋น๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
Dataform ์ถ์ ๊ตฌ์ฑ์๋ ๋ค์ ์ปดํ์ผ ์ค์ ์ด ํฌํจ๋ฉ๋๋ค.
- ์ถ์ ์ค์
- ์ถ์ ID, ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ํ Git commitish, ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋๋ ๋น๋์ ๋๋ค. ๋น๋๋ ์ ํ์ฌํญ์ธ ์ค์ ์ ๋๋ค. ์ค์ ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น๋๋ 1์๊ฐ์ ๋๋ค.
- ์ปดํ์ผ ์ฌ์ ์
- ์ํฌํ๋ก ์ค์ ์ ์ ์๋Google Cloud ํ๋ก์ ํธ, ํ ์ด๋ธ ํ๋ฆฌํฝ์ค, ์คํค๋ง ์ํฝ์ค, ์ปดํ์ผ ๋ณ์์ ์ฌ์ ์์ ๋๋ค.
์ถ์ ๊ตฌ์ฑ ์๋ ๋ฐฉ์
Dataform์ ์ง์ ๋ ๋น๋๋ก ๋๋ ์ฌ์ฉ์๊ฐ ์ปดํ์ผ์ ํธ๋ฆฌ๊ฑฐํ ๋ ์ถ์ ๊ตฌ์ฑ์์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค. ๋น๋๋ ์ ํ์ฌํญ์ธ ์ค์ ์ด๋ฉฐ ์ถ์ ๊ตฌ์ฑ์ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. ์ค์ ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น๋๋ 1์๊ฐ์
๋๋ค. ์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์ปดํ์ผ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๊ฑฐ๋, Dataform API releaseConfigs
๋ฉ์๋๋ก ์ปดํ์ผ์ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
์ปดํ์ผ ์ค Dataform์ ์ ์ฅ์์ ์ง์ ๋ Git commitish์์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Dataform์ ์ ์ฉ๋ ์ปดํ์ผ ์ฌ์ ์ (์๋ ๊ฒฝ์ฐ)๋ก ์ฝ๋๋ฅผ ์ปดํ์ผํ๊ณ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค. ์ถ์ ๊ตฌ์ฑ์ ๋ํด ์์ฑ๋ ์ต์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ ์ค์๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๋๋ค.
์ํฌํ๋ก ๊ตฌ์ฑ์์ ์ถ์ ๊ตฌ์ฑ์ ์ปดํ์ผ ๊ฒฐ๊ณผ์ ์คํ์ ์์ฝํ ์ ์์ต๋๋ค. ์ผ์ ๊ณผ ๊ด๊ณ์์ด ์ ํํ ์ถ์ ๊ตฌ์ฑ์ ์คํํ ์๋ ์์ต๋๋ค. ์ํฌํ๋ก ๊ตฌ์ฑ ์คํ ์ค Dataform์ ์ ํํ ์ถ์ ๊ตฌ์ฑ์์ ์ค์๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์คํํฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ ๋ง๋ค๊ธฐ
Dataform ์ถ์ ๊ตฌ์ฑ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์น์ ์์ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ ๋ง๋ค๊ธฐ ์ฐฝ์์ ์ถ์ ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค.
์ถ์ ID ํ๋์ ์ถ์ ๊ตฌ์ฑ์ ๊ณ ์ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค.
ID์๋ ์ซ์, ๋ฌธ์, ํ์ดํ, ๋ฐ์ค๋ง ํฌํจํ ์ ์์ต๋๋ค.
Git commitish ํ๋์ ์ถ์์ ๋ํ Git ๋ธ๋์น ๋๋ Git ์ปค๋ฐ SHA๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐ๋์ง ์์ Dataform ์ ์ฅ์์์ ๊ฐ์ ํญ์
main
์ ๋๋ค.์ ํ์ฌํญ: ๋น๋ ํ๋์์ ์ปดํ์ผ ๊ฒฐ๊ณผ ์์ฑ ๋น๋๋ฅผ ์ ํํฉ๋๋ค.
์ค์ ํ๋ ๊ฒฝ์ฐ ์ต์ ๋น๋๋ 1์๊ฐ์ ๋๋ค.
์๋ ์ถ์๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด ๋น๋ ํ๋๋ฅผ ๋น์ ๋ก๋๋ค.
์ ํ์ฌํญ: ์ปดํ์ผ ์ฌ์ ์ ์น์ ์์ ์ปดํ์ผ ์ค์ ์ ๊ตฌ์ฑํฉ๋๋ค.
- Google Cloud ํ๋ก์ ํธ ID ํ๋์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ Google Cloud ํ๋ก์ ํธ์ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์คํค๋ง ์ํฝ์ค ํ๋์์ ์ํฌํ๋ก ์ค์ ์ ๊ตฌ์ฑ๋ ์คํค๋ง์ ์ถ๊ฐํ ์ํฝ์ค๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ํ ์ด๋ธ ์ ๋์ฌ ํ๋์ ๋ชจ๋ ํ ์ด๋ธ ์ด๋ฆ์ ์ ๋์ฌ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์ ํ์ฌํญ: ์ปดํ์ผ ๋ณ์ ์น์ ์์ ์ปดํ์ผ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
- ๋ณ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํค ํ๋์ ์ปดํ์ผ ๋ณ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ๊ฐ ํ๋์ ์ปดํ์ผ ๋ณ์ ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
- ๋ค๋ฅธ ์ปดํ์ผ ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๋ณ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ ํ๋ก์ ํธ๋ฅผ ์ฌ์ ์ํ๋ ๊ฒฝ์ฐ ์ถ์ ๊ตฌ์ฑ์ ์ค์ ๋ ํ๋ก์ ํธ์ ๋ํด Dataform ์๋น์ค ๊ณ์ ์ ์ก์ธ์ค ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ์ถ์ ๊ตฌ์ฑ์์๋ ์ปดํ์ผ ์ฌ์ ์ ์์ด main
๋ธ๋์น์์ ๋งค์๊ฐ production
์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ถ์ ID:
production
- Git commitish:
main
- ๋น๋: ์๊ฐ๋ณ
- ์ปดํ์ผ ์ฌ์ ์ ์์
์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ
์ถ์ ๊ตฌ์ฑ์ ๋ค์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์ถ์ ์ค์
- Git commitish
- ์ต์ ์ปดํ์ผ ๊ฒฐ๊ณผ ํ์์คํฌํ
- ํฌ๋ก ์ผ์
- ์ปดํ์ผ ์ฌ์ ์
- ์ปดํ์ผ ๋ณ์
- ์ค์๊ฐ ์ปดํ์ผ ๊ฒฐ๊ณผ
- ์์ฑ ํ์์คํฌํ
- Git commitish
- ์ปค๋ฐ SHA
- ์ด์ ์ปดํ์ผ ๊ฒฐ๊ณผ
์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ์ ์ ํํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์ถ์ ๊ตฌ์ฑ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
์์ฝ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ ํ ์ด๋ธ์๋ ์ถ์ ๊ตฌ์ฑ์ ์ํด ์๋์ผ๋ก ์์ฑ๋ ์ด์ ์ปดํ์ผ ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
์๋/API ์ปดํ์ผ ๊ฒฐ๊ณผ ํ ์ด๋ธ์๋ ์ ์ฅ์์ ์ต๊ทผ 1,000๊ฐ์ ์ปดํ์ผ ๊ฒฐ๊ณผ ์ค์์ ์๋์ผ๋ก ์์ฑ๋๊ฑฐ๋ Dataform API ํธ์ถ์ ํตํด ์์ฑ๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
์๋์ผ๋ก ์ปดํ์ผ ํธ๋ฆฌ๊ฑฐ
์ ํํ ์ถ์ ๊ตฌ์ฑ์ ํตํด ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์๋์ผ๋ก ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ์ ์ ํํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์ ์ปดํ์ผ์ ํด๋ฆญํฉ๋๋ค.
UI๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ก ์ปดํ์ผ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ์ ๊ตฌ์ฑ์ ์๋์ผ๋ก ๊ฒ์๋ฉ๋๋ค. API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ถ์ ๊ตฌ์ฑ์์ ์ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ๋ค์ ์ถ์ ๊ตฌ์ฑ์ ์
๋ฐ์ดํธํ์ฌ ์ด ์ ๊ฐ์ผ๋ก releaseCompilationResult
ํ๋๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
์๋ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ ์ถ์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด ํ์ด์ง์ ์๋/API ์ปดํ์ผ ๊ฒฐ๊ณผ ํ ์ด๋ธ์ ํ์๋ฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ ์คํ ํธ๋ฆฌ๊ฑฐ
์ ํํ ์ถ์ ๊ตฌ์ฑ์ ๋ผ์ด๋ธ ์ปดํ์ผ ๊ฒฐ๊ณผ ์คํ์ BigQuery์ ํธ๋ฆฌ๊ฑฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์น์ ์์ ์คํ ์์์ ํด๋ฆญํฉ๋๋ค.
- ์๋ ์ํฌํ๋ก ์คํ ์ฐฝ์ ์ถ์ ๊ตฌ์ฑ ๋ชฉ๋ก์์ ์ถ์ ๊ตฌ์ฑ์ ์ ํํฉ๋๋ค.
- ์คํํ ์ํฌํ๋ก ์์
์ ์ ํํฉ๋๋ค.
- ์ ์ฒด ์ํฌํ๋ก๋ฅผ ์คํํ๋ ค๋ฉด ๋ชจ๋ ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์ํฌํ๋ก์์ ์ ํํ ์์ ์ ์คํํ๋ ค๋ฉด ์์ ์ ํ์ ํด๋ฆญํ ๋ค์ ์์ ์ ์ ํํฉ๋๋ค.
- ์ ํํ ํ๊ทธ๋ก ์์ ์ ์คํํ๋ ค๋ฉด ํ๊ทธ ์ ํ์ ํด๋ฆญํ ๋ค์ ํ๊ทธ๋ฅผ ์ ํํฉ๋๋ค.
- ์ ํ์ฌํญ: ์ ํํ ์์ ๋๋ ํ๊ทธ ๋ฐ ์ข ์ ํญ๋ชฉ์ ์คํํ๋ ค๋ฉด ์ข ์ ํญ๋ชฉ ํฌํจ ์ต์ ์ ์ ํํฉ๋๋ค.
- ์ ํ์ฌํญ: ์ ํํ ์์ ๋๋ ํ๊ทธ ๋ฐ ์ข ์์๋ฅผ ์คํํ๋ ค๋ฉด ์ข ์์ ํฌํจ ์ต์ ์ ์ ํํฉ๋๋ค.
์ ํ์ฌํญ: ๋ชจ๋ ํ ์ด๋ธ์ ์ฒ์๋ถํฐ ๋ค์ ๋น๋ํ๋ ค๋ฉด ์ ์ฒด ์๋ก๊ณ ์นจ์ผ๋ก ์คํ ์ต์ ์ ์ ํํฉ๋๋ค.
์ด ์ต์ ์ด ์์ผ๋ฉด Dataform์ ์ฆ๋ถ ํ ์ด๋ธ์ ์ฒ์๋ถํฐ ๋ค์ ๋น๋ํ์ง ์๊ณ ์ ๋ฐ์ดํธํฉ๋๋ค.
์คํ ์์์ ํด๋ฆญํฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ ์์
์ถ์ ๊ตฌ์ฑ์ ์์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์์ ํ๋ ค๋ ์ถ์ ๊ตฌ์ฑ ์์ ์๋ ๋๋ณด๊ธฐ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ ๋ค์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์์ ์ฐฝ์์ ์ถ์ ๊ตฌ์ฑ ์ค์ ์ ์์ ํ ๋ค์ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์ถ์ ๊ตฌ์ฑ ์ญ์
์ถ์ ๊ตฌ์ฑ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์ ์ฅ์์์ ์ถ์ ๋ฐ ์ผ์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ญ์ ํ๋ ค๋ ์ถ์ ๊ตฌ์ฑ ์์ ์๋ ๋๋ณด๊ธฐ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ ๋ค์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ถ์ ๊ตฌ์ฑ ์ญ์ ๋ํ์์์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- Dataform์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ ๊ถ์ฅ์ฌํญ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ํฌํ๋ก ์๋ช ์ฃผ๊ธฐ ๊ถ์ฅ์ฌํญ์ ์ฐธ๊ณ ํ์ธ์.
- ์์ ๊ณต๊ฐ์์ ์คํ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์คํ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ํฌํ๋ก ๊ตฌ์ฑ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ์ํฌํ๋ก ๊ตฌ์ฑ์ผ๋ก ์คํ ์์ฝ์ ์ฐธ๊ณ ํ์ธ์.
- Dataform API์ ๋ํ ์์ธํ ๋ด์ฉ์ Dataform API๋ฅผ ์ฐธ์กฐํ์ธ์.