Можете ли вы выполнить массовую загрузку, используя SnowflakeDbConnection? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть следующий код, он может вставлять одну запись за раз. Загрузка данных построчно занимает много времени.

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);
}

Ответы [ 2 ]

0 голосов
/ 14 ноября 2019

Вы можете посмотреть Snowflake Connector для .NET и пример Bind Parameter , чтобы узнать, как вставить несколько строк одновременно (но все же небольшое число).

Вам следует записать сжатые данные в BLOB-объект Azure «Область подготовки снежинки» и импортировать их с помощью команды COPY INTO table
[Я предполагаю, что вы используете Snowflake в Azure - также работает для AWS S3 и GCP].

0 голосов
/ 14 ноября 2019

Вы должны посмотреть, используя команду COPY INTO <"table">. Есть некоторые настройки, которые вам нужно будет выполнить, чтобы заставить это работать.

  1. Вам нужно будет создать внутреннюю сцену в Snowflake с помощью команды PUT.

  2. Отсюда вы будете использовать команду COPY INTO <"table">.

Исходя из этого, я хотел бы сохранить ваши объемные данные вфайл (Snowflake поддерживает много разных форматов файлов), а затем передает его в параметры команды COPY INTO.

Документация объясняет это лучше, чем я когда-либо мог :)

Обзор копирования с локальной FS: https://docs.snowflake.net/manuals/user-guide/data-load-local-file-system.html

Синтаксис для команды PUT: https://docs.snowflake.net/manuals/sql-reference/sql/put.html

Синтаксис команды COPY INTO: https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html

...