緩やかに変化するディメンション変換

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

緩やかに変化するディメンション変換は、データ ウェアハウスのディメンション テーブル内にある、レコードの更新および挿入を調整します。 たとえば、この変換を使用すると、AdventureWorks OLTP データベースの Production.Products テーブルにあるデータを使って AdventureWorksDW2022 データベースの DimProduct テーブルに挿入や更新を行う変換出力を構成できます。

重要

緩やかに変化するディメンション ウィザードでは、 SQL Serverへの接続のみがサポートされます。

緩やかに変化するディメンション変換には、緩やかに変化するディメンションを管理するための、次の機能が用意されています。

  • 受信した行を参照テーブル内の行と照合し、新しい行および既存の行を識別します。

  • 変更が許可されていない場合に、変更が含まれる受信行を識別します。

  • 更新が必要な推定メンバー レコードを識別します。

  • 新しいレコードの挿入や有効期限が切れたレコードの更新が必要な、履歴に変更のある受信行を識別します。

  • 有効期限が切れたレコードなど、既存のレコードの更新が必要となる変更が含まれる受信行を検出します。

緩やかに変化するディメンション変換では、変化する属性、履歴属性、固定属性、および推定メンバーの、4 つの変更の種類がサポートされています。

  • 変化する属性の変更は、既存のレコードを上書きします。 この変更の種類は、種類 1 の変更に相当します。 緩やかに変化するディメンション変換は、これらの行を [変化する属性更新の出力]という名前の出力に送信します。

  • 履歴属性の変更は、既存のレコードを更新するのではなく、新しいレコードを作成します。 既存のレコードに許可されている変更は、そのレコードが現在のレコードか、または有効期限が切れているかを示す列の更新のみです。 この変更の種類は、種類 2 の変更に相当します。 緩やかに変化するディメンション変換は、これらの列を、 [履歴属性挿入の出力] および [新しい出力]の 2 つの出力に送信します。

  • 固定属性の変更は、列の値が変更できないことを示します。 緩やかに変化するディメンション変換は、変更を検出し、変更のあった行を [固定属性の出力]という名前の出力に送信します。

  • 推定メンバーは、行がディメンション テーブル内の推定メンバー レコードであることを示します。 推定メンバーは、まだ読み込まれていないディメンション メンバーをファクト テーブルで参照するときに使用されます。 推定メンバーの最小レコードは、後続のディメンション データを読み込む中で提供される、関連するディメンション データを予測して作成されます。 緩やかに変化するディメンション変換は、これらの行を [推定メンバー更新の出力]という名前の出力に送信します。 推定メンバーのデータが読み込まれると、新しいレコードを作成する代わりに、既存のレコードを更新できます。

Note

緩やかに変化するディメンション変換では、種類 3 の変更はサポートされません。この変更は、ディメンション テーブルを変更する必要があるためです。 列を固定属性の更新の種類と見なすことにより、種類 3 の変更の対象となるデータ値をキャプチャできます。

緩やかに変化するディメンション変換は、実行時、まず受信行を参照テーブル内のレコードと照合します。 一致するものがない場合、受信行が新しいレコードになります。つまり、緩やかに変化するディメンション変換は追加の作業を実行せず、その行を [新しい出力]に出力します。

一致するものがある場合、緩やかに変化するディメンション変換は、行に変更が含まれているかどうかを検出します。 行に変更が含まれる場合、緩やかに変化するディメンション変換は各列の更新の種類を識別し、その行を [変化する属性更新の出力][固定属性の出力][履歴属性挿入の出力]、または [推定メンバー更新の出力]に出力します。 行が変更されていない場合、緩やかに変化するディメンション変換は、その行を [変更されていない出力]に出力します。

緩やかに変化するディメンション変換の出力

緩やかに変化するディメンション変換は、1 つの入力と、最大 6 つの出力をとります。 出力は、行の更新および挿入の要件に対応するデータ フローのサブセットに行を出力します。 この変換では、エラー出力はサポートされていません。

次の表では、変換出力および後続のデータ フローの要件について説明します。 要件では、緩やかに変化するディメンション ウィザードが作成するデータ フローについて説明します。

出力 説明 データ フロー要件
[変化する属性更新の出力] 参照テーブル内のレコードが更新されます。 この出力は、変化する属性の行に使用されます。 OLE DB コマンド変換は、UPDATE ステートメントを使用してレコードを更新します。
[固定属性の出力] 変更できない行の値と、参照テーブルの値が一致しない場合の出力です。 この出力は、固定属性の行に使用されます。 既定のデータ フローは作成されません。 この変換が、固定属性の列への変更を検出した後も続行するように構成されている場合、これらの行をキャプチャするデータ フローを作成する必要があります。
[履歴属性挿入の出力] 参照テーブルには、一致する行が少なくとも 1 行は含まれています。 "現在" としてマークされていた行は、"期限切れ" としてマークされます。 この出力は、履歴属性の行に使用されます。 派生列変換は、有効期限が切れた行および現在の行のインジケーターに対する列を作成します。 OLE DB コマンド変換は、"期限切れ" としてマークされたレコードを更新します。 新しい列値を持つ行は [新しい出力] に出力され、[新しい出力] でその行が挿入されて "現在" としてマークされます。
[推定メンバー更新の出力] 推定ディメンション メンバーの行が挿入されます。 この出力は、推定メンバーの行に使用されます。 OLE DB コマンド変換は、SQL UPDATE ステートメントを使用してレコードを更新します。
[新しい出力] 参照テーブルに、一致する行が含まれない場合の出力です。 行は、ディメンション テーブルに追加されます。 この出力は新しい行に使用され、履歴属性の行に変更されます。 派生列変換は、現在の行のインジケーターを設定し、OLE DB 変換先は、行を挿入します。
[変更されていない出力] 参照テーブル内の値と、行の値が一致する場合の出力です。 この出力は、変更されていない行に使用されます。 緩やかに変化するディメンション変換は作業を実行しないため、既定のデータ フローは作成されません。 これらの行をキャプチャする場合は、この出力に対するデータ フローを作成する必要があります。

ビジネス キー

緩やかに変化するディメンション変換には、少なくとも 1 つのビジネス キー列が必要です。

緩やかに変化するディメンション変換では、NULL 値のビジネス キーはサポートされていません。 データに、ビジネス キー列が NULL の行が含まれている場合、これらの行は、データ フローから削除できません。 条件分割変換を使用すると、ビジネス キー列に NULL 値が含まれている行をフィルター選択できます。 詳細については、「 Conditional Split Transformation」を参照してください。

緩やかに変化するディメンション変換のパフォーマンスの最適化

緩やかに変化するディメンション変換のパフォーマンスを向上するための推奨方法については、「 データ フロー パフォーマンス機能」を参照してください。

緩やかに変化するディメンション変換のトラブルシューティング

緩やかに変化するディメンション変換による外部データ プロバイダーの呼び出しをログに記録できます。 このログ機能を使用すると、緩やかに変化するディメンション変換による外部データ ソースへの接続、コマンド、およびクエリに関するトラブルシューティングを行うことができます。 緩やかに変化するディメンション変換による外部データ プロバイダーの呼び出しのログを記録するには、パッケージ ログ記録を有効にして、パッケージ レベルで Diagnostic イベントを選択する必要があります。 詳細については、「 パッケージ実行のトラブルシューティング ツール」を参照してください。

緩やかに変化するディメンション変換の構成

プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。

[詳細エディター] ダイアログ ボックスまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、「 データ フロー コンポーネントのプロパティを設定する」を参照してください。

緩やかに変化するディメンション変換の出力の構成

ディメンション テーブル内のレコードの更新および挿入を調整する作業は、特に種類 1 と種類 2 の変更の両方が使用される場合、複雑なタスクとなることがあります。 SSIS デザイナーでは、緩やかに変化するディメンションのサポートを構成する方法が、2 種類用意されています。

  • 接続を選択する [詳細エディター] ダイアログ ボックスでは、共通コンポーネントおよびカスタム コンポーネントのプロパティの設定、入力列の選択、および 6 つの出力における列プロパティの設定を行うことができます。 緩やかに変化するディメンションのサポートを構成するタスクを完了するには、緩やかに変化するディメンション変換が使用する出力用のデータ フローを、手動で作成する必要があります。 詳細については、「 Data Flow」を参照してください。

  • ディメンションの読み込みウィザードを使用すると、緩やかに変化するディメンション変換を構成し、変換出力用のデータ フローを構築できます。 緩やかに変化するディメンションの構成を変更するには、ディメンションの読み込みウィザードを再実行します。 詳細については、「 緩やかに変化するディメンション ウィザードを使用して出力を構成する」を参照してください。

データ フロー コンポーネントのプロパティを設定する