Click here to Skip to main content
15,884,353 members
Articles / Programming Languages / C#

Write ETL jobs in pure C#

Rate me:
Please Sign up or sign in to vote.
4.80/5 (14 votes)
29 Mar 2009CPOL7 min read 145.2K   3.8K   66  
An introduction to using Rhino ETL to avoid dealing with designers such as the ones in DTS/SSIS job creation.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using FileHelpers;

using Rhino.Etl.Core.Files;
using Rhino.Etl.Core.Operations;
using Rhino.Etl.Core;
using SampleETLJob.DataObjects;
using System.IO;

namespace SampleETLJob.Operations
{
    public class UserFullWrite : AbstractOperation
    {
        public UserFullWrite(string filePath)
        {
            this.filePath = filePath;
        }

        string filePath = null;

        public override IEnumerable<Row> Execute(IEnumerable<Row> rows)
        {
            FluentFile engine = FluentFile.For<UserFullRecord>();
            engine.HeaderText = "Id\tName\tAddress";
            using (FileEngine file = engine.To(filePath))
            {
                foreach (Row row in rows)
                {
                    file.Write(row.ToObject<UserFullRecord>());

                    //pass through rows if needed for another later operation 
                    yield return row;
                }
            }

        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
I've been a software developer since 1996 and have enjoyed C# since 2003. I have a Bachelor's degree in Computer Science and for some reason, a Master's degree in Business Administration. I currently do software development contracting/consulting.

Comments and Discussions