Data.Dump.Engine 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Dump.Engine --version 0.1.0
NuGet\Install-Package Data.Dump.Engine -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Data.Dump.Engine" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Data.Dump.Engine --version 0.1.0
#r "nuget: Data.Dump.Engine, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Data.Dump.Engine as a Cake Addin
#addin nuget:?package=Data.Dump.Engine&version=0.1.0

// Install Data.Dump.Engine as a Cake Tool
#tool nuget:?package=Data.Dump.Engine&version=0.1.0

Data.Dump

A C# data dump engine for easy creation of data extractions based on any dataset or poco, with a low memory footprint. Currently Data.Dump only supports saving to SQL Server, but is easily extendable to support other platforms.

What's it for?

The library grew out of the need to transperantly store large datasets, without knowing the datastructure beforehand. Here are some basic use cases, I'm sure you can come up with a few more.

  • Dynamically storing data from various sources, be it a remote API, a CSV file, another database, or pretty much anything you can throw at it.
  • Creation of data extractions for use with BI tools
  • Creation of tables for import procedures
  • Quick dump to the database of C# objects in order to examine structure and data
  • Logging
  • ...

How does it work?

Under the hood Data.Dump uses .NET's DataTables and DataSets for processing the data. While you can directly pass in your own DataTable or DataSet, the real power lies in the ability to pass in an any old object or collection thereof.

When you pass in C# objects, these will be translated to the appropriate datastructure. Simple types will automatically be resolved, however complex types will need some mapping. Depending on your configuration, nested objects or lists will automatically be translated to seperate tables in the database, with a foreign key in place.

During processing, the data is transfered to a temptable using SQL Server's powerful bulkcopy technology. When ready, any existing table with the same name will be dropped, and replaced by the temptable. In this way the live table will always reflect the latest structure and data, while minimizing downtime.

Table names are automatically resolved based on the Clr Type, but you can easily pass in your naming when necessary.

Special care has been taken to reduce the memory footprint while creating and storing datasets. Ofcourse, when you choose to pass in gigantic DataTables, you're on your own.

How can I use it?

Examples

Some examples and documentaion will be described here soon.

For now, please refer to the included sample project.

Instalation

A nuget package will be available shortly.

Please note this is a very early version of the product. Feel free to use and experiment with it, but be cautious when deploying in a production environment.

Product Compatible and additional computed target framework versions.
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Data.Dump.Engine:

Package Downloads
Data.Dump.Sql

A Sql Server implmentation of the Data.Dump engine for easy creation of data extractions based on any dataset or poco, with a low memory footprint.

Data.Dump.Postgres

A PostgreSql implementation of the Data.Dump engine for easy creation of data extractions based on any dataset or poco, with a low memory footprint.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 909 11/23/2019
0.2.5.25769 1,011 9/28/2018
0.2.1.42711 952 6/7/2018
0.2.1.25942 1,087 6/7/2018
0.1.0 1,061 6/4/2018

First release.