Python UDF ์ ํ ์ฌํญยถ
์ด ํญ๋ชฉ์์๋ Python์ผ๋ก ์์ฑ๋ ์ฒ๋ฆฌ๊ธฐ์ ์ ์ฉ๋๋ ์ ํ ์ฌํญ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ด ํญ๋ชฉ์ ๋ด์ฉ:
์ผ๋ฐ ์ ํ ์ฌํญยถ
Python ํจ์๋ ํ์ค Python ํจํค์ง์ ๋ชจ๋๊ณผ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, Snowflake ๋ณด์ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ธํด ์ผ๋ถ ๊ธฐ๋ฅ์ด ๋นํ์ฑํ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฐ์ํ ๋ณด์ ๊ดํ ๋ฐ๋ฅด๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
ํน์ ์ด์ ์ฒด์ ๋ฅผ ๊ฐ์ ํ๋ ์ฝ๋๋ฅผ ํผํ์ญ์์ค.
Python UDF๋ ๊ณต์ ํ ์ ์์ต๋๋ค. Python UDF๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ๋ ๊ณต์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๋ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
Python UDF๋ฅผ ์ง์ ๊ณต์ ํฉ๋๋ค.
Python UDF๋ฅผ ํธ์ถํ๋ ๋ทฐ๋ฅผ ๊ณต์ ํฉ๋๋ค.
Python UDF๋ฅผ ํธ์ถํ๋ ํจ์๋ฅผ ๊ณต์ ํฉ๋๋ค.
Python UDF๋ฅผ ํธ์ถํ๋ ๋ง์คํน ๋๋ ํ ์ก์ธ์ค ์ ์ฑ ์ผ๋ก ํ ์ด๋ธ์ ๊ณต์ ํฉ๋๋ค.
Python UDF์ USAGE ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒฝ์ฐ, ์์ ์๋ ํด๋น UDF์์ ๊ฐ์ ธ์จ ํ์ผ์ ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค. Python UDF์ ๋ํ USAGE ๊ถํ์ ์ญํ ์ ๋ถ์ฌํ๊ณ ํด๋น ์ญํ ์ด ํด๋น Python UDF๋ฅผ ํธ์ถํ๋ ๋ฌธ์ ์คํํ๋ ๊ฒฝ์ฐ, ๋์ผํ ๋ฌธ์ ์๋ ๋ชจ๋ Python UDF๋ USAGE ๊ถํ์ ๋ถ์ฌ๋ฐ์ Python UDF์์ ๊ฐ์ ธ์จ ๋ชจ๋ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ ๋ ์ธ๋ผ์ธ Python UDFs์ ๋ํด ์ง์๋ฉ๋๋ค. ํ์ง๋ง Python UDF๊ฐ ์คํ ์ด์ง(์ฆ, IMPORTS ์ ์ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํจ์)์ ํ์ผ์ ๋ํ ์ข ์์ฑ์ด ์๋ ๊ฒฝ์ฐ ๋ณต์ ๊ฐ ์ฐจ๋จ๋ฉ๋๋ค. ์ด ์ ํ์ ํฅํ ๋ฒ์ ์์ ์ ๊ฑฐ๋ ์ ์์ต๋๋ค.
Snowflake๋ Python
zipimport
๋ชจ๋์ ์ฌ์ฉํ์ฌ ์คํ ์ด์ง์์ Python ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก UDF์์๋ ๋ชจ๋zipimport
์ ํ ์ฌํญ์ด ์์ต๋๋ค.zipimport
์ ๋ํ ์์ธํ ๋ด์ฉ์ zipimport ์ฐธ์กฐ ๋ฅผ ํ์ธํด ๋ณด์ญ์์ค.
๋ณต์ ์ ๋ํ ์ ํ ์ฌํญยถ
Python UDF๋ฅผ ํฌํจํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ์คํค๋ง๊ฐ ๋ณต์ ๋ ๋ Python UDF๋ฅผ ๋ณต์ ํ ์ ์์ต๋๋ค. ๋ณต์ ํ๋ ค๋ฉด Python UDF๊ฐ ๋ค์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
Python UDF๊ฐ ์คํ ์ด์ง๋ฅผ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ, ํด๋น ์คํ ์ด์ง๋ ๋ณต์ ๋๋ ์คํค๋ง(๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ์ธ๋ถ์ ์์ด์ผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Python UDF ๋ฐ ํด๋น ์ฐธ์กฐ ์คํ ์ด์ง๋ฅผ ๋ณ๋์ ์คํค๋ง(๋ฐ/๋๋ ๋ณ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ ๋ณด๊ดํ ์ ์์ต๋๋ค.
Python UDF๊ฐ ์คํ ์ด์ง๋ฅผ ์ฐธ์กฐํ ๋๋ง๋ค, Python UDF์ ์คํค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ค๋ฅธ ์ ๊ทํ๋ ์คํ ์ด์ง ์ด๋ฆ(์: โmy_db.my_schema.my_stage()โ)์ ์ฌ์ฉํ์ญ์์ค. ๋ณต์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ ํ๋ ๊ฒฝ์ฐ, ์คํ ์ด์ง ์ฐธ์กฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๋ณต์ ์์ ์ด ์คํค๋ง๋ฅผ ๋ณต์ ํ๋ ๊ฒฝ์ฐ, ์คํ ์ด์ง ์ฐธ์กฐ์๋ ์คํค๋ง(๋ฐ ํ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
์ ๊ทํ๋์ง ์์ ์คํ ์ด์ง ์ด๋ฆ(ํ์ฌ ์ธ์ ์ ํ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์คํค๋ง๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉ)์ ์ฌ์ฉํ์ฌ ์ฐธ์กฐ ์คํ ์ด์ง๋ฅผ ๋ง๋ค๊ณ , ์ธ์ ์ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์คํค๋ง์ ์ผ์นํ์ง ์๋ ์ ๊ทํ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ Python UDF๋ฅผ ๋ง๋ญ๋๋ค.
์ฌ์ฉ์์ ์คํ ์ด์ง๋ฅผ ์ฐธ์กฐ ์คํ ์ด์ง๋ก ์ฌ์ฉํฉ๋๋ค(์ฌ์ฉ์์ ์คํ ์ด์ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํ ์ด์ง ๋๋ ์คํค๋ง์ ์คํ ์ด์ง์๋ ๋ณ๊ฐ์ ๋๋ค).
์คํค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ๋ ์ด์์ Python UDF๊ฐ ํ์ ์กฐ๊ฑด์ ์ถฉ์กฑํ์ง ์๋ ๊ฒฝ์ฐ, ์คํค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณ์ ๋ณต์ ํ ์ ์์ง๋ง, ๋นํธํ Python UDF๋ ์ค๋ฅ ๋๋ ๊ฒฝ๊ณ ๋ฉ์์ง ์์ด ๋ณต์ ๋ณธ์์ ์๋ต๋ฉ๋๋ค.
๋ณต์ ๋ ๊ฐ Python UDF๋ ์๋ณธ๊ณผ ๋์ผํ ์ ์๋ฅผ ๊ฐ์ต๋๋ค. ํด๋น ์ ์์๋ ์คํ ์ด์ง์ ๋ํ ๋ชจ๋ ์ฐธ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค. Python UDF์ ์คํ ์ด์ง ์ฐธ์กฐ๋ ์ ๊ทํ๋์ด์ผ ํ๋ฏ๋ก, ๋ณต์ ๋๋ ์คํค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋์ ์ด์ง ์๊ณ ์ ๋์ ์ ๋๋ค. ์๋ณธ๊ณผ ๋ณต์ ๋ณธ์ด ๋ชจ๋ ๋์ผ ์คํ ์ด์ง์ ํ์ผ์ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์คํ ์ด์ง๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์คํ ์ด์ง์์ ํ์ ํ์ผ์ ์ ๊ฑฐํ๋ฉด ์๋ณธ UDF์ ๋ณต์ ๋ UDF๊ฐ ๋ชจ๋ ๋นํ์ฑํ๋ฉ๋๋ค.
์คํ ์ด์ง ๋๋ ์คํ ์ด์ง์ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด ์๋ณธ UDF์ ๋ณต์ ๋ UDF ๋ชจ๋์ ์ํฅ์ ์ค๋๋ค.