C# 你能使用SnowflakeDbConnection批量上传吗?

C# 你能使用SnowflakeDbConnection批量上传吗?,c#,snowflake-cloud-data-platform,bulk-load,C#,Snowflake Cloud Data Platform,Bulk Load,我有以下代码,它可以一次插入一条记录。逐行加载数据需要很长时间 using (SnowflakeDbConnection connection = new SnowflakeDbConnection()) { connection.ConnectionString = connstr; connection.Open(); int rowsAffected; using (SnowflakeDbCommand sqlcomm = SnowflakeDbCommand)conn

我有以下代码,它可以一次插入一条记录。逐行加载数据需要很长时间

using (SnowflakeDbConnection connection = new SnowflakeDbConnection())
{
 connection.ConnectionString = connstr;

 connection.Open(); 

 int rowsAffected;

 using (SnowflakeDbCommand sqlcomm = 
 SnowflakeDbCommand)connection.CreateCommand())
 {

  sqlcomm.CommandType = CommandType.Text;

 sqlcomm.CommandText = String.Format("INSERT INTO {0}({1},{2}) 
values('9',  'Value99')", DestinationTableName, "ValueID", "FullName");

rowsAffected = sqlcomm.ExecuteNonQuery();
}
} 
我在找这样的东西

using (var bulk = new SqlBulkCopy(this.connection))
{
    bulk.DestinationTableName = "DestinationTableName";
    bulk.WriteToServer(table);
}

您应该看看如何使用copyinto命令。您需要进行一些设置才能使其正常工作

  • 您需要使用PUT命令在Snowflake中创建一个内部阶段

  • 从这里开始,您将使用COPY INTO命令

  • 基于此,我要做的是将批量数据存储在一个文件中(Snowflake支持多种不同的文件格式),然后将其传递给COPY INTO命令的参数

    文档在解释这一点上比我以前做得更好:)

    从本地FS复制的概述:

    PUT命令的语法:


    COPY-INTO命令的语法:

    您应该了解如何使用COPY-INTO命令。您需要进行一些设置才能使其正常工作

  • 您需要使用PUT命令在Snowflake中创建一个内部阶段

  • 从这里开始,您将使用COPY INTO命令

  • 基于此,我要做的是将批量数据存储在一个文件中(Snowflake支持多种不同的文件格式),然后将其传递给COPY INTO命令的参数

    文档在解释这一点上比我以前做得更好:)

    从本地FS复制的概述:

    PUT命令的语法:

    复制到命令的语法:

    您可以查看如何同时插入多行(但仍然是一个小数字)的绑定参数的示例

    您应该考虑将压缩数据写入Azure blob“雪花暂存区”,并通过
    复制到表中
    命令导入
    [我假设您在Azure上使用雪花-也适用于AWS S3和GCP]。

    您可以查看如何同时插入多行(但仍然是一个小数字)的绑定参数的示例

    您应该考虑将压缩数据写入Azure blob“雪花暂存区”,并通过
    复制到表中
    命令导入

    [我假设您在Azure上使用雪花-也适用于AWS S3和GCP]。

    这有帮助吗?谢谢,这不是直接从SQL服务器开始的,你需要先转储到文件中,然后再加载。这是通过云存储而不是通过多次插入导入批量数据的“雪花方式”。假设当您有大量数据时,写入云存储+复制到表中的速度更快。由于表的存储方式是“写一次”,许多插入可能比您想象的更糟糕。这有帮助吗?谢谢,这不是直接从SQL服务器开始的,你需要先转储到文件中,然后再加载。这是通过云存储而不是通过多次插入导入批量数据的“雪花方式”。假设当您有大量数据时,写入云存储+复制到表中的速度更快。由于表的存储方式“写一次”,许多插入可能比您想象的更糟糕。这将起作用,但有点手动。如果您将数据写入Azure blob存储并将其配置为外部阶段,您仍然可以使用COPY-into-table(复制到表中)。这将起作用,但需要一些手动操作。若您将数据写入Azure blob存储并将其配置为外部阶段,那个么您仍然可以使用COPY-into-table。