如何使用 Python 进行 PUT 和 Copy INTO Snowflake

How to do a PUT and Copy INTO Snowflake with Python

我需要知道如何从 Python 执行 PUT 文件和 COPY INTO。我知道 write_pandas 会直接将数据写入 Snowflake,并在幕后执行 PUT 和 COPY INTO,但我如何在 Python 中“手动”完成此操作?

只是在寻找一个很好的例子,它将文件暂存并将它们复制到 XML 数据的现有 VARIANT 列中。当我尝试 write_pandas 时,它在每一行周围插入了引号,这搞砸了稍后在 Snowflake 中 Select 语句中列的转换。为了去掉引号,我尝试添加 quote_identifiers=False 但它仍然将数据用引号括起来:

pandasDF = pd.DataFrame(rowData)
pandasDF.columns =['DATACOLUMN']

from snowflake.connector.pandas_tools import write_pandas

success, nchunks, nrows, _ = write_pandas(engine, pandasDF, 'OI_PNET_GET_PERFORMX_UPL2', quote_identifiers=False)

这是插入带有开始和尾随引号后的样子:

谢谢。

下面的示例代码

with stage_engine.connect() as con:
 con.execute("rm @{}.%{}".format(target_schema,table_name))
 con.execute("put file://{}* @{}.%{}".format(tmp_dir+'/test.csv',target_schema,table_name))
 con.execute("copy into {} file_format = (type = csv FIELD_DELIMITER='~' field_optionally_enclosed_by='\"')".format(full_table_name))