All Projects → HeadspringLabs → Bulk Writer

HeadspringLabs / Bulk Writer

Licence: mit
Provides guidance for fast ETL jobs, an IDataReader implementation for SqlBulkCopy (or the MySql or Oracle equivalents) that wraps an IEnumerable, and libraries for mapping entites to table columns.

Projects that are alternatives of or similar to Bulk Writer

Ether sql
A python library to push ethereum blockchain data into an sql database.
Stars: ✭ 41 (-80.48%)
Mutual labels:  sql, etl
Sayn
Data processing and modelling framework for automating tasks (incl. Python & SQL transformations).
Stars: ✭ 79 (-62.38%)
Mutual labels:  sql, etl
Stetl
Stetl, Streaming ETL, is a lightweight geospatial processing and ETL framework written in Python.
Stars: ✭ 64 (-69.52%)
Mutual labels:  pipeline, etl
Go Streams
A lightweight stream processing library for Go
Stars: ✭ 615 (+192.86%)
Mutual labels:  pipeline, etl
Mara Example Project 2
An example mini data warehouse for python project stats, template for new projects
Stars: ✭ 154 (-26.67%)
Mutual labels:  sql, etl
Phila Airflow
Stars: ✭ 16 (-92.38%)
Mutual labels:  pipeline, etl
Locopy
locopy: Loading/Unloading to Redshift and Snowflake using Python.
Stars: ✭ 73 (-65.24%)
Mutual labels:  sql, etl
etl
M-Lab ingestion pipeline
Stars: ✭ 15 (-92.86%)
Mutual labels:  pipeline, etl
Metl
mito ETL tool
Stars: ✭ 153 (-27.14%)
Mutual labels:  pipeline, etl
Mara Pipelines
A lightweight opinionated ETL framework, halfway between plain scripts and Apache Airflow
Stars: ✭ 1,841 (+776.67%)
Mutual labels:  pipeline, etl
Metorikku
A simplified, lightweight ETL Framework based on Apache Spark
Stars: ✭ 361 (+71.9%)
Mutual labels:  sql, etl
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+952.86%)
Mutual labels:  sql, etl
Datavec
ETL Library for Machine Learning - data pipelines, data munging and wrangling
Stars: ✭ 272 (+29.52%)
Mutual labels:  pipeline, etl
Ethereum Etl
Python scripts for ETL (extract, transform and load) jobs for Ethereum blocks, transactions, ERC20 / ERC721 tokens, transfers, receipts, logs, contracts, internal transactions. Data is available in Google BigQuery https://goo.gl/oY5BCQ
Stars: ✭ 956 (+355.24%)
Mutual labels:  sql, etl
basin
Basin is a visual programming editor for building Spark and PySpark pipelines. Easily build, debug, and deploy complex ETL pipelines from your browser
Stars: ✭ 25 (-88.1%)
Mutual labels:  pipeline, etl
Awesome Business Intelligence
Actively curated list of awesome BI tools. PRs welcome!
Stars: ✭ 1,157 (+450.95%)
Mutual labels:  sql, etl
sparklanes
A lightweight data processing framework for Apache Spark
Stars: ✭ 17 (-91.9%)
Mutual labels:  pipeline, etl
lineage
Generate beautiful documentation for your data pipelines in markdown format
Stars: ✭ 16 (-92.38%)
Mutual labels:  pipeline, etl
Setl
A simple Spark-powered ETL framework that just works 🍺
Stars: ✭ 79 (-62.38%)
Mutual labels:  pipeline, etl
Airbyte
Airbyte is an open-source EL(T) platform that helps you replicate your data in your warehouses, lakes and databases.
Stars: ✭ 4,919 (+2242.38%)
Mutual labels:  pipeline, etl

Bulk Writer

Bulk Writer is a small library which facilitates building fast, pull-based ETL processes in C# using SqlBulkCopy.

Documentation

Documentation can be found at https://headspringlabs.github.io/bulk-writer/

Installation

Bulk Writer is available on NuGet and can be installed using the package manager console:

PM> Install-Package BulkWriter

Usage

var q =
   from entity in GetAllEntities()
   where entity.IsActive && SomeOtherPredicate(entity)
   from zipCode in GetAllZipCodes()
   where zipCode.IsInContiguousStates && SomeOtherPredicate(zipCode)
   let distance = GetDistance(entity, zipCode)
   let arbitraryData = CreateSomeArbitraryData(entity, zipCode)
   where distance > 0
   select new EntityToZipCodeDistance {
      EntityId = entity.Id,
      ZipCode = zipCode.Zip,
      Distance = distance,
      ArbitraryData = arbitraryData
   };

using (var bulkWriter = new BulkWriter<EntityToZipCodeDistance>(connectionString))
{
    bulkWriter.WriteToDatabase(q);
}
// or async

using (var bulkWriter = new BulkWriter<EntityToZipCodeDistance>(connectionString))
{
    await bulkWriter.WriteToDatabaseAsync(q);
}

Building Locally

Run the following command once to setup your environment.

PS> .\setup.ps1

Run the command below to build and test the project.

PS> .\psake.cmd

Contributing

Pull Requests are welcome. If you identify a bug or would like to make a feature request feel free to submit a GitHub Issue to start a discussion.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].