1

次の列を含むcsvファイルがあります。

Email | Date | Location

これをデータベーステーブルに直接入れたいと思います。問題は、ファイル内のLocation値が文字列であるということです(例: "Boston")。挿入したいテーブルには整数プロパティがありますLocationId

したがって、データフローの途中で、データベースクエリを実行して、Locationに対応するLocationIdを取得する必要があります。例えば:

SELECT Id as LocationId FROM Locations WHERE Name = { location string from current csv row }

これを新しい値「LocationId」として設定されている現在の列に追加します。

これを行う方法がわかりません-ルックアップを試しましたが、これはルックアップを別のデータフローに配置する必要があることを意味しました-csvファイルの列が利用できないようです。

同じ場所が何度も繰り返され、必要のないときに各行に対して選択を実行したくないので、キャッシュを使用したいと思います。

要約すれば:

  1. データフローの途中で、ルックアップトランスフォーメーション(別のソース、SQLから)を保持し、出力をcsvから派生した列とマージするにはどうすればよいですか?
  2. ルックアップは使用するのに間違った変換ですか?
4

3 に答える 3

3

ルックアップ変換は機能します。キャッシュがあり、すべての入力列を出力に永続化し、ルックアップ変換で使用するクエリから列を追加できます。

ここでマージ結合を使用することもできます。場合によってはより良い解決策ですが、入力の並べ替えが必要になるため、追加のオーバーヘッドが発生します。

于 2013-03-20T10:56:19.100 に答える
1

これをチェックして。

変換の検索を右クリック->高度なエディターの表示に移動->入力および出力のプロパティに移動。

ここで、新しい列を追加したり、既存の列のデータ型を変更したりできます。使用方法の詳細については、ここをクリックしてください

于 2015-08-26T05:49:45.710 に答える
0
  1. フラットファイル接続マネージャーを開き、[詳細設定]タブに移動します。
  2. [新規]をクリックして、新しい列を追加し、プロパティを変更します。
  3. 次に、フラットファイルの宛先出力に戻り、右クリック>[マッピング]>ルックアップ列を新しいものにマップします。
于 2020-02-03T07:50:51.753 に答える