3

バックグラウンド

毎日 1 つのレコードを持つディメンション テーブルがあります。各レコードには主キーがあるため、データの例は次のようになります。

寸法表
---------------

----------------------------------
| | ID | 日時 |
----------------------------------
| | 1083 | 2008 年 4 月 10 日午後 10 時 2 分 00 秒 |
----------------------------------

私がやろうとしているのは、SQL 日時値 ( など04/10/2008 10:02:00 PM) を持つソース データ列を取得し、SSIS にディメンション テーブルから主キーを派生させることです (1083上記の例)。これをパッケージ内のデータ フローに合わせて、ステージング テーブルの使用を避けようとしています。

データフロー中にデータベース関数を呼び出して、SSIS パッケージにレコードを検出させたいと考えていtimeidますdatetime。使用しようとしましDeriveColumnたが、T-SQL の使用が許可されていないようです。ANSI SQL に組み込まれている関数だけです。

質問

データフロー内でこれを行う別の方法はありますか? それとも、ステージング テーブルを使用しSQLTask、データフローの外側を使用してデータを操作する必要がありますか?

4

1 に答える 1

5

時間ディメンションを持つデータ マートがあり、特定の時間に対応する timeId を取得する必要があることがわかりました。

それが正しい場合は、ルックアップ コンポーネントを使用します。参照テーブルの場合、 のようなものを使用SELECT timeId, timeStamp FROM TimeDimensionしてから、タイムスタンプを保持する入力列を検索します。timeId を出力列として使用すると、データ フローの各行にタイム スタンプに対応する timeId が含まれるようになります。

于 2009-05-08T01:38:47.820 に答える