์์ต์ 2: ์์ ๋ฐ ์์ ๊ทธ๋ํ(DAG) ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌยถ
์๊ฐยถ
์ด ์์ต์์์๋ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ ์ฅ ํ๋ก์์ ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด Snowflake ์์ ์ ์์ฑํ๊ณ ์ฌ์ฉํฉ๋๋ค. ๋ํ ์์ ๊ทธ๋ํ(๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG)๋ผ๊ณ ๋ ํจ)๋ฅผ ์์ฑํ์ฌ ์์ ์์ค์ ์์ ๊ทธ๋ํ API๋ก ์์ ์ ์ค์ผ์คํธ๋ ์ด์ ํ ์๋ ์์ต๋๋ค.
์ ์ ์กฐ๊ฑดยถ
์ฐธ๊ณ
์ด๋ฏธ Snowflake Python APIs ์์ต์์ ์ผ๋ฐ ์ค์ ๋ฐ ์์ต์ 1: ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์คํค๋ง, ํ ์ด๋ธ, ์จ์ดํ์ฐ์ค ๋ง๋ค๊ธฐ ์ ์๋ฃํ ๊ฒฝ์ฐ, ์ด๋ฌํ ์ ์ ์กฐ๊ฑด์ ๊ฑด๋๋ฐ๊ณ ์ด ์์ต์์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก ๋์ด๊ฐ ์ ์์ต๋๋ค.
์ด ์์ต์๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค.
๋ค์ ๋จ๊ณ๊ฐ ํฌํจ๋ ์ผ๋ฐ ์ค์ ์ง์นจ์ ๋ฐ๋ฅด์ญ์์ค.
๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํฉ๋๋ค.
Snowflake Python APIs ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
Snowflake ์ฐ๊ฒฐ์ ๊ตฌ์ฑํฉ๋๋ค.
Python API ์์ต์์ ํ์ํ ๋ชจ๋ ๋ชจ๋์ ๊ฐ์ ธ์ต๋๋ค.
API
Root
์ค๋ธ์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋ค์ ์ฝ๋๋ฅผ ์คํํ์ฌ ์ด๋ฆ์ด
PYTHON_API_DB
์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ดPYTHON_API_SCHEMA
์ธ ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค.database = root.databases.create( Database( name="PYTHON_API_DB"), mode=CreateMode.or_replace ) schema = database.schemas.create( Schema( name="PYTHON_API_SCHEMA"), mode=CreateMode.or_replace, )
์ด๋ ์์ต์ 1 ์์ ์์ฑํ ๊ฒ๊ณผ ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์คํค๋ง ์ค๋ธ์ ํธ์ ๋๋ค.
์ด๋ฌํ ์ฌ์ ์๊ตฌ ์ฌํญ์ ์๋ฃํ๋ฉด ์์ ๊ด๋ฆฌ๋ฅผ ์ํด API๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋ ๊ฒ์ ๋๋ค.
Snowflake ์ค๋ธ์ ํธ ์ค์ ยถ
์์
์์ ํธ์ถํ ์ ์ฅ ํ๋ก์์ ์ ์ ์ฅ ํ๋ก์์ ๋ฅผ ๋ณด๊ดํ ์คํ
์ด์ง๋ฅผ ์ค์ ํฉ๋๋ค. Snowflake Python APIs root
์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ์ ์์ฑํ PYTHON_API_DB
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ PYTHON_API_SCHEMA
์คํค๋ง์ ์คํ
์ด์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด๋ฆ์ด
TASKS_STAGE
์ธ ์คํ ์ด์ง๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ ธํธ๋ถ์ ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.stages = root.databases[database.name].schemas[schema.name].stages stages.create(Stage(name="TASKS_STAGE"))
์ด ์คํ ์ด์ง์์๋ ์ ์ฅ๋ ํ๋ก์์ ์ ํด๋น ํ๋ก์์ ์ ํ์ํ ๋ชจ๋ ์ข ์์ฑ์ด ๋ณด๊ด๋ฉ๋๋ค.
์์ ์ด ์ ์ฅ ํ๋ก์์ ๋ก ์คํ๋๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ Python ํจ์๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
def trunc(session: Session, from_table: str, to_table: str, count: int) -> str: ( session .table(from_table) .limit(count) .write.save_as_table(to_table) ) return "Truncated table successfully created!" def filter_by_shipmode(session: Session, mode: str) -> str: ( session .table("snowflake_sample_data.tpch_sf100.lineitem") .filter(col("L_SHIPMODE") == mode) .limit(10) .write.save_as_table("filter_table") ) return "Filter table successfully created!"
์ด๋ฌํ ํจ์๋ ๋ค์์ ์ํํฉ๋๋ค.
trunc()
: ์ ๋ ฅ ํ ์ด๋ธ์ ์๋ฆฐ ๋ฒ์ ์ ์์ฑํฉ๋๋ค.filter_by_shipmode()
: ๋ฐฐ์ก ๋ชจ๋๋ณ๋กSNOWFLAKE_SAMPLE_DATA.TPCH_SF100.LINEITEM
ํ ์ด๋ธ์ ํํฐ๋งํ๊ณ ๊ฒฐ๊ณผ๋ฅผ 10๊ฐ ํ์ผ๋ก ์ ํํ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ ํ ์ด๋ธ์ ์๋๋ค.์ฐธ๊ณ
์ด ํจ์๋ SNOWFLAKE_SAMPLE_DATA ๋ฐ์ดํฐ๋ฒ ์ด์ค์ TPC-H ์ํ ๋ฐ์ดํฐ ๋ฅผ ์ฟผ๋ฆฌํฉ๋๋ค. Snowflake๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณ์ ์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. ๊ทํ์ ๊ณ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑ๋์ง ์์ ๊ฒฝ์ฐ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ด๋ฌํ ํจ์๋ ์๋์ ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ด๋ฉฐ ๋ฐ๋ชจ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
์์ ์์ฑ ๋ฐ ๊ด๋ฆฌยถ
์ด์ ์ ์์ฑํ Python ํจ์๋ฅผ ์ ์ฅ ํ๋ก์์ ๋ก ์คํํ๋ ๋ ๊ฐ์ง ์์ ์ ์ ์, ์์ฑ ๋ฐ ๊ด๋ฆฌํฉ๋๋ค.
๋ ธํธ๋ถ์ ๋ค์ ์ ์
task1
๋ฐtask2
๋ผ๋ ๋ ์์ ์ ์ ์ํ๋ ค๋ฉด ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.tasks_stage = f"{database.name}.{schema.name}.TASKS_STAGE" task1 = Task( name="task_python_api_trunc", definition=StoredProcedureCall( func=trunc, stage_location=f"@{tasks_stage}", packages=["snowflake-snowpark-python"], ), warehouse="COMPUTE_WH", schedule=timedelta(minutes=1) ) task2 = Task( name="task_python_api_filter", definition=StoredProcedureCall( func=filter_by_shipmode, stage_location=f"@{tasks_stage}", packages=["snowflake-snowpark-python"], ), warehouse="COMPUTE_WH" )
์ด ์ฝ๋์์๋ ๋ค์ ์์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ง์ ํฉ๋๋ค.
๊ฐ ์์ ์ ๋ํด, ๋ค์ ํน์ฑ์ ํฌํจํ๋ StoredProcedureCall ์ค๋ธ์ ํธ์ ์ํด ํ์๋๋ ์ ์์ ๋๋ค.
์คํํ ํธ์ถ ๊ฐ๋ฅํ ํจ์
Python ํจ์์ ๋ด์ฉ๊ณผ ์ข ์์ฑ์ด ์ ๋ก๋๋๋ ์คํ ์ด์ง ์์น
์ ์ฅ ํ๋ก์์ ์ ํจํค์ง ์ข ์์ฑ
์ ์ฅ ํ๋ก์์ ๋ฅผ ์คํํ ์จ์ดํ์ฐ์ค(
StoredProcedureCall
์ค๋ธ์ ํธ๊ฐ ์๋ ์์ ์ ์์ฑํ ๋ ํ์). ์ด ์์ต์์์๋ ํ๊ฐํ ๊ณ์ ์ ํฌํจ๋COMPUTE_WH
์จ์ดํ์ฐ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ฃจํธ ์์ ์ ์คํ ์ผ์ ,
task1
. ์ผ์ ์ ์์ ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ๋ ๊ฐ๊ฒฉ์ ์ง์ ํฉ๋๋ค.
์ ์ฅ ํ๋ก์์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ SQL ๋ฐ Python์ผ๋ก ์ ์ฅ ํ๋ก์์ ์์ฑํ๊ธฐ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ ๊ฐ์ ์์ ์ ์์ฑํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์์
TaskCollection
์ค๋ธ์ ํธ(tasks
)๋ฅผ ๊ฒ์ํ๊ณ ์์ ์ปฌ๋ ์ ์์.create()
๋ฅผ ํธ์ถํฉ๋๋ค.# create the task in the Snowflake database tasks = schema.tasks trunc_task = tasks.create(task1, mode=CreateMode.or_replace) task2.predecessors = [trunc_task.name] filter_task = tasks.create(task2, mode=CreateMode.or_replace)
์ด ์ฝ๋ ์์ ์์๋
task1
์task2
์ ์ ํ ์์ ์ผ๋ก ์ค์ ํ์ฌ ์์ ์ ์ฐ๊ฒฐํ์ฌ ์ต์ ์์ ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.๋ ์์ ์ด ์ด์ ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
taskiter = tasks.iter() for t in taskiter: print(t.name)
์์ ์ ์์ฑํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ด ์ผ์ ์ค๋จ๋ฉ๋๋ค.
์์ ์ ์์ํ๋ ค๋ฉด ์์ ๋ฆฌ์์ค ์ค๋ธ์ ํธ์์
.resume()
์ ํธ์ถํฉ๋๋ค.trunc_task.resume()
trunc_task
์์ ์ด ์์๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.taskiter = tasks.iter() for t in taskiter: print("Name: ", t.name, "| State: ", t.state)
์ถ๋ ฅ์ ๋ค์๊ณผ ์ ์ฌํด์ผ ํฉ๋๋ค.
Name: TASK_PYTHON_API_FILTER | State: suspended Name: TASK_PYTHON_API_TRUNC | State: started
์์ ์ํ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋๋ง๋ค ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ ์ ์์ต๋๋ค.
์์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๋ ค๋ฉด ๋จผ์ ์์ ์ ์ผ์ ์ค๋จํ ๋ค์ ์ญ์ ํฉ๋๋ค.
๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
trunc_task.suspend()
์์ ์ด ์ผ์ ์ค๋จ๋์๋์ง ํ์ธํ๋ ค๋ฉด 5๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
์ ํ ์ฌํญ: ๋ ์์ ์ ๋ชจ๋ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
trunc_task.drop() filter_task.drop()
์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.ยถ
๋ค์์ ์์ ์คํ์ ์กฐ์ ํ ๋, ๊ฐ ์์ ์ ๊ฐ๋ณ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ด๋ ค์ธ ์ ์์ต๋๋ค. Snowflake Python APIs ์ ์์ ์์ค์ ์์ ๊ทธ๋ํ API๋ก ์์ ์ ์ค์ผ์คํธ๋ ์ด์ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG)๋ผ๊ณ ๋ ํ๋ ์์ ๊ทธ๋ํ๋ ๋ฃจํธ ์์ ๊ณผ ํ์ ์์ ์ผ๋ก ๊ตฌ์ฑ๋ ์ผ๋ จ์ ์์ ์ผ๋ก, ์ข ์์ฑ์ ๋ฐ๋ผ ๊ตฌ์ฑ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์์ ๊ทธ๋ํ๋ก ์์ ์ํ์ค ์์ฑํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ ๋ฐฐํฌํ๋ ค๋ฉด ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
dag_name = "python_api_dag" dag = DAG(name=dag_name, schedule=timedelta(days=1)) with dag: dag_task1 = DAGTask( name="task_python_api_trunc", definition=StoredProcedureCall( func=trunc, stage_location=f"@{tasks_stage}", packages=["snowflake-snowpark-python"]), warehouse="COMPUTE_WH", ) dag_task2 = DAGTask( name="task_python_api_filter", definition=StoredProcedureCall( func=filter_by_shipmode, stage_location=f"@{tasks_stage}", packages=["snowflake-snowpark-python"]), warehouse="COMPUTE_WH", ) dag_task1 >> dag_task2 dag_op = DAGOperation(schema) dag_op.deploy(dag, mode=CreateMode.or_replace)
์ด ์ฝ๋์์๋ ๋ค์์ ์ํํฉ๋๋ค.
DAG
์์ฑ์๋ฅผ ํธ์ถํ๊ณ ์ด๋ฆ๊ณผ ์ผ์ ์ ์ง์ ํ์ฌ ์์ ๊ทธ๋ํ ์ค๋ธ์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.DAGTask
์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๊ทธ๋ํ๋ณ ์์ ์ ์ ์ํฉ๋๋ค. ์์ฑ์๋ ์ด์ ๋จ๊ณ์์StoredProcedureCall
ํด๋์ค์ ์ง์ ํ ๊ฒ๊ณผ ๋์ผํ ์ธ์๋ฅผ ํ์ฉํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค.๋ ํธ๋ฆฌํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ
dag_task1
์ ๋ฃจํธ ์์ ์ผ๋ก ์ง์ ํ๊ณdag_task2
์ ์ด์ ์์ ์ ์ง์ ํฉ๋๋ค.์์ ๊ทธ๋ํ๋ฅผ
PYTHON_API_SCHEMA
๋ฐ์ดํฐ๋ฒ ์ด์ค์PYTHON_API_DB
์คํค๋ง์ ๋ฐฐํฌํฉ๋๋ค.
์์ ๊ทธ๋ํ ์์ฑ์ ํ์ธํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
taskiter = tasks.iter() for t in taskiter: print("Name: ", t.name, "| State: ", t.state)
์์ ์ํ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋๋ง๋ค ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ ์ ์์ต๋๋ค.
๋ฃจํธ ์์ ์ ์์ํ์ฌ ์์ ๊ทธ๋ํ๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
dag_op.run(dag)
PYTHON_API_DAG$TASK_PYTHON_API_TRUNC
์์ ์ด ์์๋์๋์ง ํ์ธํ๋ ค๋ฉด 2๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.์ฐธ๊ณ
์์ ๊ทธ๋ํ์์ ํธ์ถํ ํจ์ ํธ์ถ์ ํ์ ์ธ์๋ฅผ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ฑ๊ณตํ์ง ๋ชปํฉ๋๋ค. ์ด ๋จ๊ณ์ ๋ชฉ์ ์ ์์ ๊ทธ๋ํ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๋๋ค.
์์ ๊ทธ๋ํ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์ ์์ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
dag_op.drop(dag)
์ด ์์ต์์์ ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
database.drop()
๋ค์์๋ ๋ฌด์์ ํด์ผ ํฉ๋๊น?ยถ
์ถํํฉ๋๋ค! ์ด ์์ต์์์๋ Snowflake Python APIs ์ ์ฌ์ฉํ์ฌ ์์ ๋ฐ ์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค.
์์ฝยถ
์ด ๊ณผ์ ์์ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํ์ต๋๋ค.
์ ์ฅ ํ๋ก์์ ์ ํด๋น ์ข ์์ฑ์ ๋ณด๊ดํ ์ ์๋ ์คํ ์ด์ง๋ฅผ ์์ฑํฉ๋๋ค.
์์ ์ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
Snowflake ๋ฆฌ์์ค ์ค๋ธ์ ํธ๋ฅผ ์ญ์ ํ์ฌ ์ ๋ฆฌํฉ๋๋ค.
๋ค์ ์์ต์ยถ
์ด์ Snowpark Container Services ์์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์์ต์ 3: Snowpark Container Service ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ ์ผ๋ก ์งํํ ์ ์์ต๋๋ค.
์ถ๊ฐ ๋ฆฌ์์คยถ
API๋ฅผ ์ฌ์ฉํ์ฌ Snowflake์์ ๋ค๋ฅธ ์ ํ์ ์ค๋ธ์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ ๋ง์ ์์ ๋ ๋ค์ ๊ฐ๋ฐ์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๊ฐ์ด๋ |
์ค๋ช |
---|---|
Python์ ์ฌ์ฉํ์ฌ Snowflake ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์คํค๋ง, ํ ์ด๋ธ ๋ฐ ๋ทฐ ๊ด๋ฆฌํ๊ธฐ |
๋ฐ์ดํฐ๋ฒ ์ด์ค, ์คํค๋ง, ํ ์ด๋ธ์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด API๋ฅผ ์ฌ์ฉํฉ๋๋ค. |
Python์ ์ฌ์ฉํ์ฌ Snowflake ์ฌ์ฉ์, ์ญํ ๋ฐ ๊ถํ ๊ด๋ฆฌ |
API๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์, ์ญํ ๋ฐ ๋ณด์กฐ๊ธ์ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. |
Python์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ก๋ฉ ๋ฐ ์ธ๋ก๋ฉ ๋ฆฌ์์ค ๊ด๋ฆฌ |
API๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ ๋ณผ๋ฅจ, ํ์ดํ, ์คํ ์ด์ง๋ฅผ ํฌํจํ ๋ฐ์ดํฐ ๋ก๋ฉ ๋ฐ ์ธ๋ก๋ฉ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. |
Python์ ์ฌ์ฉํ์ฌ Snowpark ์ปจํ ์ด๋ ์๋น์ค(์๋น์ค ํจ์ ํฌํจ) ๊ด๋ฆฌํ๊ธฐ |
API๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํจํ ํ, ์ด๋ฏธ์ง ๋ฆฌํฌ์งํ ๋ฆฌ, ์๋น์ค, ์๋น์ค ํจ์ ๋ฑ Snowpark Container Services์ ๊ตฌ์ฑ ์์๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. |