CREATE GIT REPOSITORYยถ
์คํค๋ง์ Snowflake Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ณธ ์ ๋ง๋ค๊ฑฐ๋ ๊ธฐ์กด Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ณธ์ ๋ฐ๊ฟ๋๋ค.
- ์ฐธ๊ณ ํญ๋ชฉ:
ALTER GIT REPOSITORY, DESCRIBE GIT REPOSITORY, DROP GIT REPOSITORY, SHOW GIT BRANCHES, SHOW GIT REPOSITORIES, SHOW GIT TAGS
๊ตฌ๋ฌธยถ
CREATE [ OR REPLACE ] GIT REPOSITORY [ IF NOT EXISTS ] <name>
ORIGIN = '<repository_url>'
API_INTEGRATION = <integration_name>
[ GIT_CREDENTIALS = <secret_name> ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
ํ์ ๋งค๊ฐ ๋ณ์ยถ
name
๋ง๋ค Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ณธ์ ์๋ณ์๋ฅผ ์ง์ ํฉ๋๋ค.
์๋ณ์์ ๊ณต๋ฐฑ์ด๋ ํน์ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ์ ์ฒด ๋ฌธ์์ด์ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค. ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ธ ์๋ณ์๋ ๋/์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ์๋ณ์ ์๊ตฌ ์ฌํญ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
ORIGIN = 'repository_url'
์ด Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ณธ์ด ๋ํ๋ด๋ ์๊ฒฉ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ณธ URL ์ ์ง์ ํฉ๋๋ค. URL์ HTTPS๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Snowflake๋ HTTPS Git ๋ฆฌํฌ์งํ ๋ฆฌ URL ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ง์ URL ์ ์์ฒด ๋๋ฉ์ธ ๋ด์ ๊ธฐ์ Git ์๋ฒ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
๋ค์ ์์ ์ ๊ฐ์ด ๋ช ๋ น์ค์์ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ด์์
git config
๋ช ๋ น์ ์ฌ์ฉํ์ฌ ORIGIN ๋งค๊ฐ ๋ณ์์ ์ฌ์ฉํ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.$ git config --get remote.origin.url https://github.com/mycompany/My-Repo.git
API_INTEGRATION = integration_name
๋์ URL์ ๋ํด ํ์ฉ๋๋ ์๊ฒฉ ์ฆ๋ช ๋ฐ ์ ๋์ฌ ๋ฑ ์๊ฒฉ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ API INTEGRATION ์ ์ง์ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ง์ ํ๋ API ํตํฉ์๋ ๊ฐ์ด
git_https_api
๋ก ์ค์ ๋ API_PROVIDER ๋งค๊ฐ ๋ณ์๊ฐ ์์ด์ผ ํฉ๋๋ค.API ํตํฉ์ ๋ํ ์ฐธ์กฐ ์ ๋ณด๋ CREATE API INTEGRATION ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ํ์ ๋งค๊ฐ ๋ณ์ยถ
GIT_CREDENTIALS = secret_name
์๊ฒฉ Git ๋ฆฌํฌ์งํ ๋ฆฌ ์ธ์ฆ์ ์ฌ์ฉํ ์๊ฒฉ ์ฆ๋ช ์ด ํฌํจ๋ Snowflake ์ํฌ๋ฆฟ ์ ์ง์ ํฉ๋๋ค. API ํตํฉ์์ ์ง์ ํ ๊ธฐ๋ณธ ์ํฌ๋ฆฟ์ ์ฌ์ฉํ๊ฑฐ๋ ์ด ํตํฉ์ ์ธ์ฆ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ์ด ๋งค๊ฐ ๋ณ์๋ฅผ ์๋ตํฉ๋๋ค.
๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ํฌ๋ฆฟ์ PASSWORD ๊ฐ์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. GitHub์์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub ์ค๋ช ์์์ ๊ฐ์ธ ์ก์ธ์ค ํ ํฐ ๊ด๋ฆฌํ๊ธฐ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ฌ๊ธฐ์ ์ง์ ํ๋ ์ํฌ๋ฆฟ์ ์ด ๋ช ๋ น์ API_INTEGRATION ๋งค๊ฐ ๋ณ์๋ก ์ง์ ํ API ํตํฉ์ ALLOWED_AUTHENTICATION_SECRETS ๋งค๊ฐ ๋ณ์๋ก ์ง์ ํ ์ํฌ๋ฆฟ์ด์ด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ: ๊ฐ ์์
์ํฌ๋ฆฟ์ ๋ํ ์ฐธ์กฐ ์ ๋ณด๋ CREATE SECRET ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
COMMENT = 'string_literal'
์ธ๋ถ ์ก์ธ์ค ํตํฉ์ ๋ํ ์ค๋ช ์ ์ง์ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ: ๊ฐ ์์
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
ํ๊ทธ ์ด๋ฆ๊ณผ ํ๊ทธ ๋ฌธ์์ด ๊ฐ์ ์ง์ ํฉ๋๋ค.
ํ๊ทธ ๊ฐ์ ํญ์ ๋ฌธ์์ด์ด๋ฉฐ, ํ๊ทธ ๊ฐ์ ์ต๋ ๋ฌธ์ ์๋ 256์์ ๋๋ค.
๋ฌธ์์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค๋ธ์ ํธ์ ๋ํ ํ๊ทธ ํ ๋น๋ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ก์ธ์ค ์ ์ด ์๊ตฌ ์ฌํญยถ
์ด ์์ ์ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ญํ ์๋ ์ต์ํ ๋ค์ ๊ถํ ์ด ์์ด์ผ ํฉ๋๋ค.
๊ถํ |
์ค๋ธ์ ํธ |
์ฐธ๊ณ |
---|---|---|
CREATE GIT REPOSITORY |
์คํค๋ง |
|
USAGE |
API ํตํฉ |
์ด ๋ช ๋ น์ API INTEGRATION ๋งค๊ฐ ๋ณ์์ ์ํด ์ง์ ๋ ํตํฉ |
USAGE |
์ํฌ๋ฆฟ |
์ด ๋ช ๋ น์ GIT_CREDENTIALS ๋งค๊ฐ ๋ณ์์ ์ํด ์ง์ ๋ ์ํฌ๋ฆฟ |
์คํค๋ง์ ๋ชจ๋ ์ค๋ธ์ ํธ์ ๋ํด ์์ ์ ์ํํ๋ ค๋ฉด ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์คํค๋ง์ ๋ํ USAGE ๊ถํ.
์ง์ ๋ ๊ถํ ์ธํธ๋ก ์ฌ์ฉ์ ์ง์ ์ญํ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ์ฌ์ฉ์ ์ง์ ์ญํ ๋ง๋ค๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๋ณด์ ์ค๋ธ์ ํธ ์ ๋ํด SQL ์์ ์ ์ํํ๊ธฐ ์ํ ์ญํ ๊ณผ ๊ถํ ๋ถ์ฌ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ ์ก์ธ์ค ์ ์ด์ ๊ฐ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฌ์ฉ๋ฒ ๋ ธํธยถ
OR REPLACE
๋ฐIF NOT EXISTS
์ ์ ์ํธ ๋ฐฐํ์ ์ ๋๋ค. ๋ ๋ฌธ์๋ฅผ ๊ฐ์ ๋ฌธ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.CREATE OR REPLACE <์ค๋ธ์ ํธ> ๋ฌธ์ ์์์ฑ์ ๋๋ค. ์ฆ, ์ค๋ธ์ ํธ๊ฐ ๋ฐ๋ ๋ ๋จ์ผ ํธ๋์ญ์ ์ผ๋ก ์ด์ ์ค๋ธ์ ํธ๊ฐ ์ญ์ ๋๊ณ ์ ์ค๋ธ์ ํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ยถ
๋ค์ ์์ ์ ์ฝ๋๋ snowflake_extensions
๋ผ๋ Git ๋ฆฌํฌ์งํ ๋ฆฌ ๋ณต์ ๋ณธ์ ์์ฑํ๋ฉฐ, ์ฌ๊ธฐ์ ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ณธ URL ์ https://github.com/my-account/snowflake-extensions.git
์
๋๋ค. ์ด ์์ ์์๋ git_api_integration
์ด๋ผ๋ API ํตํฉ์ ์ฌ์ฉํฉ๋๋ค. ๋ํ git_secret
์ด๋ผ๋ ์ํฌ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ธ์ฆํ๊ธฐ ์ํ ์๊ฒฉ ์ฆ๋ช
์ ์ ์ฅํฉ๋๋ค.
์๊ฒฉ Git ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํตํฉ ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Git์ ์ฌ์ฉํ๊ธฐ ์ํด Snowflake ์ค์ ํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
API_INTEGRATION = git_api_integration
GIT_CREDENTIALS = git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';