SQL ๋ฐ Python์ผ๋ก ์ ์ฅ ํ๋ก์์ ์์ฑํ๊ธฐยถ
์ฒ๋ฆฌ๊ธฐ๊ฐ Python์ผ๋ก ์ฝ๋ฉ๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฒ๋ฆฌ๊ธฐ ๋ด Snowpark ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ API๋ฅผ ์ฌ์ฉํ์ฌ Snowflake ํ ์ด๋ธ์ ๋ํ ์ฟผ๋ฆฌ, ์ ๋ฐ์ดํธ ๋ฐ ๊ธฐํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ฅผ ์ฌ์ฉํ๋ฉด Snowflake ์จ์ดํ์ฐ์ค๋ฅผ ์ปดํจํ ํ๋ ์์ํฌ๋ก ์ฌ์ฉํ์ฌ Snowflake ๋ด์์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ์คํํ ์ ์์ต๋๋ค. Python์ฉ Snowpark API ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๋ง๋ค์ด ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ฌํ ์ ์ฅ ํ๋ก์์ ์ ์คํ์ ์์ฝํ๋ ค๋ฉด ์์ ์ ์ฌ์ฉํฉ๋๋ค.
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๊ณผ Snowpark Python์ ๋ํ ์์ธํ ๋ด์ฉ์ Snowpark Python์ผ๋ก ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ํ์ต์ํค๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
Python ์ํฌ์ํธ๋ฅผ ์ฌ์ฉ ํ๊ฑฐ๋ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ Python์ฉ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ฒ๋ฆฌ๊ธฐ ์ฝ๋๊ฐ ์คํ๋ ๋ ๋ก๊ทธ ๋ฐ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์บก์ฒํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก๊น , ์ถ์ ๋ฐ ๋ฉํธ๋ฆญ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฐธ๊ณ
์ต๋ช ํ๋ก์์ ๋ฅผ ๋ง๋ค๊ธฐ๋ ํ๊ณ ํธ์ถ๋ ํ๋ ค๋ฉด CALL(์ต๋ช ํ๋ก์์ ์ฌ์ฉ) ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ต๋ช ํ๋ก์์ ๋ฅผ ๋ง๋ค๊ณ ํธ์ถํ๋ ๋ฐ๋ CREATE PROCEDURE ์คํค๋ง ๊ถํ์ด ์๋ ์ญํ ์ด ํ์ํ์ง ์์ต๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ฅผ ๋ก์ปฌ์์ ์์ฑํ๊ธฐ ์ํ ์ ์ ์กฐ๊ฑดยถ
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ Python ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์ ์ ์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
๋ฒ์ 0.4.0 ๋๋ ์ต์ ๋ฒ์ ์ Snowpark ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Snowpark Python์ด ํ์ํ ์๋ ํํฐ ์ข ์์ฑ์ ๋ก๋ํ ์ ์๋๋ก Anaconda ํจํค์ง๋ฅผ ํ์ฑํํฉ๋๋ค. Anaconda์ ์๋ ํํฐ ํจํค์ง ์ฌ์ฉํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ง์๋๋ Python ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
3.9
3.10
3.11
3.12
Snowpark ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํด์ผ ํฉ๋๋ค. Snowpark๋ฅผ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ฐธ๊ณ
ํ์ ์๊ตฌ ์ฌํญ์ ์๋์ง๋ง, Python ํจํค์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ํฐํฉํธ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ฐ์ ๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ํฐํฉํธ ๋ฆฌํฌ์งํ ๋ฆฌ ์ฌ์ฉํ๊ธฐยถ
Python Package Index(PyPI)์์ ์ค์นํ ํจํค์ง๋ฅผ ์ง์ ํ๊ณ ์ด๋ฅผ Snowpark Python ์ ์ฅ ํ๋ก์์ ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ํฐํฉํธ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ฐ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
Anaconda์ ์๋ ํํฐ ํจํค์ง ์ฌ์ฉํ๊ธฐยถ
Snowpark Python ์ ์ฅ ํ๋ก์์ ๋ฅผ ๋ง๋ค ๋ ์ค์นํ Anaconda ํจํค์ง๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. Anaconda์ ์๋ ํํฐ ํจํค์ง ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด Anaconda Snowflake ์ฑ๋ ์ ์ฐธ์กฐํ์ญ์์ค. ์ด๋ฌํ ์๋ ํํฐ ํจํค์ง๋ Anaconda์์ ๋ง๋ค์ด ์ ๊ณตํฉ๋๋ค. Anaconda์ ์๋น์ค ์ฝ๊ด์ ๋ํ ์ถ๊ฐ ํฌํจ ์ํํธ์จ์ด ์ฝ๊ด์ ๋ฐ๋ผ ํ์ง ํ ์คํธ ๋ฐ ๊ฐ๋ฐ์ ์ํ Snowflake conda ์ฑ๋์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ํ ์ฌํญ์ Python ์ ์ฅ ํ๋ก์์ ์ ํ ์ฌํญ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์์ํ๊ธฐยถ
Snowflake ๋ด๋ถ์์ Anaconda๊ฐ ์ ๊ณตํ๋ ํจํค์ง๋ฅผ ์ฒ์ ์ฌ์ฉํ๊ธฐ ์ ์ ๋จผ์ ์ธ๋ถ ์ ๊ณต ์๋น์ค ์ฝ๊ด ์ ๋์ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
์ฝ๊ด์ ๋์ํ๋ ค๋ฉด ORGADMIN ์ญํ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. Snowflake ๊ณ์ ์ ๋ํด ์ธ๋ถ ์๋น์ค ์ฝ๊ด ์ ํ ๋ฒ๋ง ์๋ฝํ๋ฉด ๋ฉ๋๋ค. ORGADMIN ์ญํ ์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ๊ณ์ ์์ ORGADMIN ์ญํ ํ์ฑํํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
Snowsight ์ ๋ก๊ทธ์ธํฉ๋๋ค.
Admin ยป Terms ๋ฅผ ์ ํํฉ๋๋ค.
Anaconda ์น์ ์์ Enable ์ ์ ํํฉ๋๋ค.
Anaconda Packages ๋ํ ์์์์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์ธ๋ถ ์ ๊ณต ์๋น์ค ์ฝ๊ด ํ์ด์ง ๋ฅผ ๊ฒํ ํ์ญ์์ค.
์ฝ๊ด์ ๋์ํ๋ฉด Acknowledge & Continue ๋ฅผ ์ ํํฉ๋๋ค.
์ธ๋ถ ์๋น์ค ์ฝ๊ด ์ ๋์ํ๋ ค๊ณ ํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฆ, ์ฑ ๋๋ ์ด๋ฉ์ผ ์ฃผ์์ ๊ฐ์ ์ฌ์ฉ์ ํ๋กํ ์ ๋ณด๊ฐ ๋๋ฝ๋์๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ๊ด๋ฆฌ์ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ Snowsight ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋กํ์ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ฌ์ฉ์ ํ๋กํ์ ์ฌ์ฉ์ ์ธ๋ถ ์ ๋ณด ์ถ๊ฐํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ฌ ๊ณ์ ์ ์ ๋ฐ์ดํธํ์ญ์์ค.
์ฐธ๊ณ
์์์ ์ค๋ช ํ ๋๋ก Snowflake ์ธ๋ถ ์ ๊ณต ์ฝ๊ด ์ ์๋ฝํ์ง ์๋ ๊ฒฝ์ฐ์๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ง๋ง, ๋ค์ ์ ํ์ด ์ ์ฉ๋ฉ๋๋ค.
Anaconda์ ์๋ ํํฐ ํจํค์ง๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Snowpark Python์ ์ ์ฅ ํ๋ก์์ ์ ํจํค์ง๋ก ๊ณ์ ์ง์ ํ ์ ์์ง๋ง, ํน์ ๋ฒ์ ์ ์ง์ ํ ์๋ ์์ต๋๋ค.
DataFrame
์ค๋ธ์ ํธ์ ์ํธ ์์ฉํ ๋๋to_pandas
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํจํค์ง ํ์ ๋ฐ ์ฌ์ฉํ๊ธฐยถ
Information Schema์์ PACKAGES ๋ทฐ๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ํจํค์ง์ ํด๋น ๋ฒ์ ์ ๋ณด๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
์์ธํ ๋ด์ฉ์ Snowflake Python UDF ์ค๋ช ์์ ์๋ ํํฐ ํจํค์ง ์ฌ์ฉํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ์ฅ ํ๋ก์์ ํธ์ถํ๊ธฐยถ
์ ์ฅ ํ๋ก์์ ๋ฅผ ๋ง๋ ํ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค.