﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Rhino.ETL: Full Package Syntax</title><description>Well, what would you have instead?
  
This is a ETL project, I don't see any better way to handle this, frankly.
</description><link>http://ayende.com/2649/rhino-etl-full-package-syntax#comment5</link><guid>http://ayende.com/2649/rhino-etl-full-package-syntax#comment5</guid><pubDate>Mon, 23 Jul 2007 20:01:58 GMT</pubDate></item><item><title>Avish commented on Rhino.ETL: Full Package Syntax</title><description>Looking good. I'm coming from a non-ORM background, so I have issues with the literal sql strings. Can't you do anything about those? 
</description><link>http://ayende.com/2649/rhino-etl-full-package-syntax#comment4</link><guid>http://ayende.com/2649/rhino-etl-full-package-syntax#comment4</guid><pubDate>Mon, 23 Jul 2007 19:55:56 GMT</pubDate></item><item><title>Jay R. Wren commented on Rhino.ETL: Full Package Syntax</title><description>Um. WOW is all I can say.
  
  
That is very nice short  and concise language.
  
  
I have to admit that I've used C# instead of SSIS in cases where I can get away with it, but for my next case I'll be looking at these bits.
</description><link>http://ayende.com/2649/rhino-etl-full-package-syntax#comment3</link><guid>http://ayende.com/2649/rhino-etl-full-package-syntax#comment3</guid><pubDate>Sun, 22 Jul 2007 16:15:46 GMT</pubDate></item><item><title>Ayende Rahien commented on Rhino.ETL: Full Package Syntax</title><description>&gt; I realise you're doing this to solve your own problems, not mine,
  
  
I am looking forward to see what you can do with this :-)
  
  
=&gt; is not a valid Boo operator, so I used &gt;&gt;, but other than that, isn't your map basically a transform of column names?
  
  
transform SkandiaFileFormatToDestinationsTable:
  
 Row.customer_id = Row["Customer ID"]
  
  
I will probably not allow a file include, but rather a project system, which will allow better reuse (including shared dlls). 
</description><link>http://ayende.com/2649/rhino-etl-full-package-syntax#comment2</link><guid>http://ayende.com/2649/rhino-etl-full-package-syntax#comment2</guid><pubDate>Sun, 22 Jul 2007 13:38:15 GMT</pubDate></item><item><title>Tobin Harris commented on Rhino.ETL: Full Package Syntax</title><description>All looks good to me :)
  
  
I realise you're doing this to solve your own problems, not mine, but some other thoughts I've had on this are:
  
  
1) Mappings 
  
  
It's common to set up a *mapping* for each source, which indicates how source columns map to target columns.  Had you considered making this an explicit concept in your DSL? 
  
  
map SkandiaFileFormatToDestinationsTable:
  
  'Customer ID' =&gt; 'customer_id'
  
  'Order ID' =&gt; 'order_id'
  
  'First Name' =&gt; 'forename'
  
  
pipeline CopyOrders:
  
  Sources.SkandiaFile &gt;&gt; Destinations.ValuationsTable using map SkandiaFileFormatToDestinationsTable
  
  
2) Back to the idea of having a stock library of standard cleaning functions. You could just allow file include?
  
  
pipeline ImportOrdersFromPegasus:
  
  include "StandardTransforms.boo"
  
  Sources.Orders &gt;&gt; ToTitleCase(Colums: ['Title','Forename','Surname']) &gt;&gt; Destinations.Orders with map PegasusOrdersToSunOrders
  
  
Food for thought, anyway!
  
</description><link>http://ayende.com/2649/rhino-etl-full-package-syntax#comment1</link><guid>http://ayende.com/2649/rhino-etl-full-package-syntax#comment1</guid><pubDate>Sun, 22 Jul 2007 13:09:08 GMT</pubDate></item></channel></rss>