Python中批量加载数据问题

问题描述 投票:0回答:1

我想使用 pandas 将数据批量加载到雪花仓库中。请在下面找到完整的要求:

  1. 我在雪花表中有源数据。我在数据框中读到相同的内容。
  2. 将数据加载到数据框中后,我使用一些 pandas 函数对数据进行了更改。
  3. 这些更改之后,我需要再次加载雪花中的数据。

文件大小:200k 条记录

我尝试过的事情:

  1. 首先创建了 for 循环,该循环在 go 中创建插入语句并加载相同的语句。该脚本运行了约 4 小时并加载了约 9k 条记录(因此这不是一个可行的选项)。
  2. 然后我在数据库上执行之前创建了整个插入查询。这种方法也失败了并且花费了很多时间(与上面的方法相同)。
  3. 我尝试了并行处理,并为数据创建了批处理。还是没有运气。
  4. 后来我尝试复制到方法中,它正在工作。

但我不想使用 COPY into 因为它只是雪花特定的。

请帮助我使用 python 批量加载数据。

python-3.x pandas snowflake-cloud-data-platform etl bulk-load
1个回答
0
投票

尝试使用 Snowflake-connector-python 库

import snowflake.connector

# Create a connection
conn = snowflake.connector.connect(
    user='<your_username>',
    password='<your_password>',
    account='<your_account_url>',
    warehouse='<your_warehouse>',
    database='<your_database>',
    schema='<your_schema>'
)

Snowflake提供了copy_into方法来高效批量加载数据。您可以按如下方式使用它:

import snowflake.connector.pandas_tools as sfpd

# Assuming you have a DataFrame called 'df' with your data
sfpd.write_pandas(conn, df, '<snowflake_table_name>')

此方法使用 Snowflake Connector 的内置功能进行批量加载,这应该比一次插入一行要快得多。

© www.soinside.com 2019 - 2024. All rights reserved.