Rhino ETLを使用して、C#でETLジョブを作成しています
ServerAにデータベースがあります。これには2つのテーブルがあります。
(例)
tblOrder
- OrderID
- 顧客名
- CustomerEmailAddress
- 転送
tblOrderLine
- OrderID
- 製品番号
- 商品名
- 価格
ServerBでは、同じテーブルがあります(注文はWebからバックエンドシステムに転送されます)
RhinoETLを使用すると、私のInputCommandOperationは現在次のようになります。
class ReadOrdersFromWebDB : InputCommandOperation
{
public ReadOrdersFromServerA(ConnectionStringSettings connectionStringSettings)
: base(connectionStringSettings) { }
protected override Row CreateRowFromReader(IDataReader reader)
{
return Row.FromReader(reader);
}
protected override void PrepareCommand(IDbCommand cmd)
{
cmd.CommandText = "SELECT TOP 10 * FROM tblOrders WHERE Transferred = 0";
}
}
この段階では実行する変換がないため、OutputCommandOperationは次のようになります。
class WriteOrdersToServerB : OutputCommandOperation
{
protected override void PrepareCommand(IDbCommand cmd, Row row)
{
cmd.CommandText =
@"INSERT INTO etc...........";
}
}
私がやりたいのは、このプロセスを変更して、ServerAからtblOrderLineの詳細も取得することです。可能であれば、db(join)で秒クエリを実行せずに、tblOrderLineテーブルに「Transferred」列がないようにします。結合を含めるようにInputCommandを変更することをお勧めします。
InputCommandにJoinを設定した後、挿入操作はどのように機能しますか?これも可能ですか?