質問

背景

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

Dimension Table
---------------

---------------------------------
| ID   | DateTime               |
---------------------------------
| 1083 | 04/10/2008 10:02:00 PM |
---------------------------------

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

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

質問

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

役に立ちましたか?

解決

理解できれば、時間ディメンションを持つデータマートがあり、特定の時間に対応するtimeIdを取得する必要があります。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top