1

データをロードし、データのさまざまな変換を完了しました。問題は、データで管理されている親子関係があることです - 例で最もよく説明されています

各行には (列名は構成されています)

row_key    parent_row_key   row_name    parent_row_name

一部の行は、row_key == parent_row_key (自分の親) を持ちます。一部の行は別の行に関連しています (たとえば、行 25 は行 44 の親です)。

この場合、行 25 は行 44 の親です。行 25 の row_name を行 44 の parent_row_name に入れる必要があります。値についてパイプライン内のデータを照会するにはどうすればよいですか?

4

4 に答える 4

3

マルチキャストを使用してデータを分割し、それ自体に対してマージ結合を行うことはできませんか?

于 2008-10-08T14:47:13.637 に答える
0

データベース内の一時テーブル、rawファイルの宛先、またはレコードセットの宛先(データセットのサイズに応じて)にデータを書き込むことができます。次に、データを再度実行し、一時データを照会して、正しい親を見つけることができます。

于 2008-10-24T13:07:46.813 に答える
0

あなたが言うように

データをロードし、データのさまざまな変換を完了しました

一時テーブルまたはステージング テーブルですべてのデータが利用可能であると想定できますか? もしそうなら、単にフィールドの UPDATE を行うだけでうまくいくはずです。すべての情報がステージング テーブルで利用できるとは限らないと仮定すると、最初にステージング テーブルから値をカスケード検索し、何も見つからない場合は実際のテーブルから検索することができます。これを 1 回の更新で行うと、行ごとに行うよりも簡単にパフォーマンスが向上します。(特に適切なインデックスが利用できる場合)

UPDATE staging_table
   SET parent_row_name = COALESCE(new.row_name, old.row_name, '#N/A#')
  FROM staging_table upd
  LEFT OUTER JOIN staging_table new
               ON new.row_key = upd.parent_row_key
  LEFT OUTER JOIN destination_table old
               ON old.row_key = upd.parent_row_key
于 2011-12-15T13:22:31.637 に答える
0

Macola (Exact Software) がトランザクションを処理する方法のように聞こえます。彼らの状況では、トランザクションがテーブルに追加され、元のトランザクションへの参照が行に含まれます。たとえば、元のトランザクションが 1 月に購入され、2 月に支払いがある場合、2 月の支払いには親を参照する列の 1 月の支払いからの取引番号。外部キー関係がないため、各初期トランザクションには、システム全体の台帳間を移動できる GUID が与えられます。

于 2008-11-13T13:26:17.840 に答える