Bulk Data Loading

In DuckDB Appender can be used to efficiently add rows to the database. Appender always appends to a single table in the database.

To use an appender in .NET, call the CreateAppender method to create and initialize an appender. After you create an appender, use the CreateRow and AppendValue methods to create rows and append data. Make sure to Dispose the appender to avoid data loss.

using var connection = new DuckDBConnection("DataSource=:memory:");
connection.Open();

using (var duckDbCommand = connection.CreateCommand())
{
  var table = "CREATE TABLE AppenderTest(foo INTEGER, bar INTEGER);";
  duckDbCommand.CommandText = table;
  duckDbCommand.ExecuteNonQuery();
}

var rows = 100;
using (var appender = connection.CreateAppender("AppenderTest"))
{
  for (var i = 0; i < rows; i++)
  {
    var row = appender.CreateRow();
    row.AppendValue(i).AppendValue(i+2).EndRow();
  }
}

For importing data from CSV, Parquet, JSON and other file types see the DuckDB documentation for Data Importing.