有没有一种方法可以将python脚本转换为一个类或包?

时间:2020-08-26 20:40:27

标签: python-3.x class package snowflake-cloud-data-platform

我正在将数据从IBM迁移到Snowflake中 3个阶段-提取,转换和加载。

下面是连接源IBM和执行ETL的目标Snowflake的python代码。 有什么办法可以从下面的整个代码中创建类/包?

import snowflake.connector


tableName='F58001'

ctx = snowflake.connector.connect(
user='*',
password='*',
account='*.azure'
)

cs = ctx.cursor()

ctx.cursor().execute("USE DATABASE STORE_PROFILE")
ctx.cursor().execute("USE SCHEMA LANDING")


try:
ctx.cursor().execute("PUT file:///temp/data/{tableName}/* @%{tableName}".format(tableName=tableName))
except Exception:
pass

ctx.cursor().execute("truncate table {tableName}".format(tableName=tableName))
ctx.cursor().execute("COPY INTO {tableName} ON_ERROR = 'CONTINUE'  ".format(tableName=tableName, 
FIELD_OPTIONALLY_ENCLOSED_BY = '""', sometimes=',', ERROR_ON_COLUMN_COUNT_MISMATCH = 'TRUE'))

last_query_id= ctx.cursor().execute("select last_query_id()")

for res in last_query_id:
query_id = res[0]

ctx.cursor().execute(f"create or replace table save_copy_errors as select * from 
table(validate("+tableName+", job_id=> "+"'"+query_id+"'"+"))")

ax = ctx.cursor().execute("select * from save_copy_errors")

for errors in ax:
error = errors
print(error)

ctx.close()

1 个答案:

答案 0 :(得分:1)

请查看以下存储库。它可能可以回答您的问题。我目前正在将其移至PYPI,以便可以与PIP一起安装

https://github.com/Infosys/Snowflake-Python-Development-Framework