我正在使用 Python Snowflake Connector 将 JSON 文件放入 Snowflake Stage,然后 COPY INTO 将 JSON 插入表中。
这是我的代码:
import snowflake.connector
snowflake_conn = snowflake.connector.connect(
user=sf_user,
password=sf_password,
account=sf_account
)
role_init = "USE ROLE ELT_ROLE"
wh_init = "USE WAREHOUSE TEST_WH"
db_init = "USE DATABASE TEST_DB"
schema_init = "USE SCHEMA TEST_SCHEMA"
snowflake_conn_cur.execute(role_init)
snowflake_conn_cur.execute(wh_init)
snowflake_conn_cur.execute(db_init)
snowflake_conn_cur.execute(schema_init)
remove_file_command = 'REMOVE @TEST_STAGE/test_file.json;'
put_file_command = 'PUT file://test_file.json @TEST_STAGE;'
truncate_existing_table_data_command = 'TRUNCATE TABLE OUTPUT_TABLE;'
copy_file_command = 'COPY INTO OUTPUT_TABLE FROM @TEST_STAGE/test_file.json file_format=(TYPE=JSON) on_error=CONTINUE;'
snowflake_conn_cur.execute(remove_file_command)
snowflake_conn_cur.execute(put_file_command)
snowflake_conn_cur.execute(truncate_existing_table_data_command)
snowflake_conn_cur.execute(copy_file_command)
我的代码成功执行,但我在 Snowflake 中注意到该文件被拒绝(单独的问题)。
在 Snowflake Python 连接器中,在游标执行语句上,有没有办法让它返回错误并使用它来验证它是否成功完成?
没有它,它基本上是默默地失败。我能想到的唯一另一种方法是在事后查询表以查看它是否有数据,但如果表没有事先被截断,这可能并不总是有帮助。