データベースソース
データベースソースには、Oracle、MySQL、およびMicrosoft SQL Serverなどのリレーショナルソースが含まれています。データベースソースのソーストランスフォーメーションを設定する場合は、単一のソーステーブルまたは複数のソーステーブルを使用できます。複数のテーブルをソースとして使用する場合は、関連するテーブルを選択するか、テーブル間のリレーションシップを作成します。
データベースソースのソーストランスフォーメーションを設定するには、次のタスクを実行します。
- •ソースプロパティを設定します。
- •ソースに複数のテーブルが含まれている場合は、テーブルが結合されるようにソーストランスフォーメーションを設定します。関連するテーブルを結合したり、カスタムリレーションシップを指定したりできます。
- •必要に応じて、ソースデータを抽出できるようにカスタムSQLクエリを設定します。
- •必要に応じて、ソースデータをフィルタまたはソートできるようにソーストランスフォーメーションを設定します。
- •テーブル名とカラム名は74文字を超えないようにしてください。
データベースソースのプロパティ
データベース接続、ソースタイプ、ソースオブジェクトなどのデータベースソースのプロパティを設定します。また、フィルタとソートの条件、Pre SQLとPost SQLコマンド、および出力が確定的または再現可能かどうかを指定することもできます。
次の表に、データベースソースのプロパティを示します。
プロパティ | 説明 |
---|
接続 | ソース接続の名前。 |
ソースタイプ | ソースタイプ。 |
オブジェクト | 単一ソースのソースオブジェクト。 |
ソースオブジェクトの追加 | 複数のソースのプライマリソースオブジェクト。 |
関連オブジェクトの追加 | 複数のソースの場合。選択したソースオブジェクトに関連するオブジェクトを表示します。 既存のリレーションを持つオブジェクトを選択するか、[カスタムリレーション]をクリックして別のオブジェクトとのカスタムリレーションを作成します。 |
フィルタ | レコードをフィルタリングするための条件を追加します。簡易フィルタまたは詳細フィルタを設定します。 |
ソート | レコードをソートするための条件を追加します。 |
重複しない行のみ選択 | ソースから一意の行を読み取ります。SQLクエリにSELECT DISTINCTを追加します。 |
クエリの定義 | カスタムクエリの場合。[カスタムクエリの編集]ダイアログボックスを表示します。有効なカスタムクエリを入力して、[OK]をクリックします。 |
トレースレベル | データ統合がセッションログに書き込むエラーおよびステータスメッセージの詳細レベル。[簡易]、[通常]、[詳細 - 初期化]、[詳細 - データ]から選択できます。デフォルトは[通常]です。 |
Pre SQL | データをソースから読み取る前にソースに対して実行するSQLコマンド。 5000文字までのコマンドを入力できます。 |
Post SQL | データをターゲットに書き込んだ後にソースに対して実行するSQLコマンド。 5000文字までのコマンドを入力できます。 |
SQLクエリ | データ統合がソースからデータを読み取るために使用するデフォルトのクエリをオーバーライドするSQLクエリ。ソースデータベースでサポートされているSQL文を入力できます。 |
出力が確定的かどうか | マッピングの実行間で入力データが同じ場合に、リレーショナルソースまたはトランスフォーメーション出力が変化しないケースで選択します。 このプロパティを設定するときに、パイプラインのトランスフォーメーションが常に繰り返し可能なデータを生成する場合は、Secure Agentはリカバリのためにソースデータをステージングしません。 |
出力は再現可能 | セッションの実行間で入力データの順序が同じ場合に、リレーショナルソースまたはトランスフォーメーション出力の順序が変わらないケースで選択します。 出力が決定的で繰り返し可能な場合、Secure Agentはリカバリのためにソースデータをステージングしません。 |
関連オブジェクト
関連するオブジェクトを結合するようにソーストランスフォーメーションを設定できます。関連オブジェクトは、既存のリレーションまたはカスタムリレーションに基づいて結合できます。作成できるリレーションの種類は接続タイプによって異なります。
関連オブジェクトを結合するには、次のリレーションを使用します。
既存のリレーション
ソースシステムに定義されているリレーションを使用して関連オブジェクトを結合できます。次の接続タイプの既存のリレーションを使用すると、オブジェクトを結合できます。
- •データベース
- •Salesforce
- •いくつかのデータ統合コネクタ
関連するオブジェクトを結合するには、プライマリオブジェクトを選択します。次に、関連するオブジェクトのリストから関連するオブジェクトを選択します。
例えば、プライマリSalesforceソースオブジェクトとして商談を追加した後、任意の関連オブジェクト(取引先など)を追加できます。
次の画像は、商談オブジェクトとの既存のリレーションを持つSalesforceオブジェクトのリストを示しています。
カスタムリレーション
カスタムリレーションを作成して、同じソースシステムのオブジェクトを結合できます。カスタムリレーションを作成するには、プライマリオブジェクトを選択し、ソースシステムから別のオブジェクトを選択して、各ソースから結合条件で使用するフィールドを選択します。結合タイプと結合演算子も指定する必要があります。
以下のいずれかの結合タイプを選択できます。
- 内部
- ノーマル結合を実行します。結合条件に一致する行が含まれます。条件に基づいて、一致しないすべての行を破棄します。
- 左
- 左外部結合を実行します。結合構文の左辺のソースのすべての行と、両方のテーブルの結合条件に一致する行が含まれます。一致しない右辺のソースの行は破棄します。
- 右
- 右外部結合を実行します。結合構文の右辺のソースのすべての行と、両方のテーブルの結合条件に一致する行が含まれます。一致しない左辺のソースの行は破棄します。
例えば、次の画像は、EMPLOYEE.E_MANAGERIDフィールドとMANAGER.M_IDフィールドが一致する場合に、内部結合を使用してEMPLOYEEデータベーステーブルとMANAGERデータベーステーブルを結合するカスタムリレーションを示しています。
関連オブジェクトの結合
ソーストランスフォーメーションで関連オブジェクトを結合できます。ソースシステムに定義されたリレーションまたはソーストランスフォーメーションに定義されたカスタムリレーションに基づいて関連オブジェクトを結合できます。
1[ソース]タブで、ソースタイプとして[複数のオブジェクト]を選択します。
2[オブジェクトおよびリレーション]テーブルで、[アクション]メニューから[ソースオブジェクトの追加]を選択します。
3[ソースオブジェクトの選択]ダイアログボックスで、ソースオブジェクトを選択します。
[オブジェクトおよびリレーション]テーブルにソースオブジェクトが表示されます。
4[アクション]メニューから[関連オブジェクトの追加]を選択します。
5ソースシステムのリレーションに基づいてオブジェクトを結合するには、[既存のリレーション]を選択し、関連オブジェクトを選択して、[OK]をクリックします。
6カスタムリレーションに基づいてオブジェクトを結合するには、[カスタムリレーション]を選択して次の手順を実行します。
- a結合で使用する[関連オブジェクト]を選択します。
- b結合で使用するプライマリオブジェクトフィールドを選択して、[プライマリオブジェクトキー]を設定します。
- c結合タイプを設定します。
内部結合、左外部結合、または右外部結合を設定できます。
- d結合演算子を設定します。
- e結合で使用する関連オブジェクトフィールドを選択して、[関連オブジェクトキー]を設定します。
- f[追加]をクリックします。
リレーションシップは、[設定済みリレーション]テーブルに表示されます。
- g[OK]をクリックします。
7追加のソースを結合するには、プライマリソースとして動作するソースを選択して、手順4から6を繰り返します。
詳細リレーション
マッピングに含まれるソースオブジェクトが複数のソースで設定されている場合は、データベースソースの詳細リレーションを作成できます。
高度なリレーションを作成するには、[オブジェクトおよびリレーション]テーブルにプライマリソースオブジェクトを追加します。次に、フィールドを選択し、使用するSQL文を記述します。ソースデータベースで有効なSQL文を使用します。ソースからオブジェクトを追加することもできます。
カスタムリレーションを詳細リレーションに変換することもできます。これを行うには、カスタムリレーションを作成し、[オブジェクトおよびリレーション]テーブルの上にあるメニューから[詳細リレーション]を選択します。データ統合によって作成されたリレーションは編集することができます。
詳細リレーションを作成すると、ウィザードにより、定義したすべてのリレーションが編集可能なSQL文に変換されます。
カスタムクエリ
単一オブジェクトまたは複数オブジェクトのソースオプションを使用して設定することができないデータベースソースを使用する場合、カスタムクエリを作成します。複数のテーブルの複雑な結合を実行したり、大量のソースのデータフローを入力するフィールドの数を減らしたりするために、カスタムクエリを作成できます。
カスタムクエリをソースとして使用するには、ソースタイプとして[クエリ]を選択し、[クエリの定義]をクリックします。クエリを定義する場合は、ソースデータベースに対して有効なSQLを使用します。クエリではデータベース固有の関数を使用できます。
また、カスタムクエリをルックアップソースとして使用することもできます。ルックアップトランスフォーメーションでカスタムクエリを使用する方法については、
カスタムクエリを参照してください。
カスタムクエリを作成する場合は、使用するソースカラムを選択するためにSQLのSELECT文を入力します。データ統合は、SQL文を使用してソースカラムの情報を取得します。カスタムクエリを保存する前に、各カラムのデータ型、精度、スケールを編集できます。
例えば、次のSQL文を使用して2016年以降のトランザクションが含まれるTRANSACTIONSテーブルに基づいてカスタムクエリを作成することもできます。
SELECT TRANSACTION_ID, TRANSACTION_TOTAL, TRANSACTION_TIMESTAMP from dbo.TRANSACTIONS WHERE TRANSACTION_TIMESTAMP>’0:0:0:0 01/01/2016’
データ統合は、カスタムクエリのカラム名が一意であることを確認します。SQL文で重複するカラム名が返されると、データ統合は、重複するカラム名に対して次のように数値を追加します。
<column_name><number>
保存されたマッピングでカスタムクエリを変更すると、設計時にデータ統合では、変更済みのクエリを使用してフィールドメタデータがメタデータに置き換えられます。通常、これは適切な動作です。ただし、マッピングでリレーショナルソースを使用しており、元のメタデータを保持する場合は、[既存のフィールドメタデータを保持]オプションを使用します。このオプションを使用すると、設計時にデータ統合では、フィールドメタデータが更新されません。データ統合は、実行時に既存のフィールドを変更済みのクエリのフィールドにマッピングします。マッピングできないフィールドがある場合は、実行時に失敗します。
ヒント: カスタムクエリを作成する前に、ソースデータベースで使用するSQL文をテストします。データ統合では、無効なSQL文に特定のエラーメッセージが表示されることはありません。
ソースのフィルタリングとソート
データがデータフローに入る前に、データのフィルタリングまたはソートを行えるようにソーストランスフォーメーションを設定できます。ソースクエリオプションを使用してソースデータをフィルタリングまたはソートできます。
ソーストランスフォーメーションの[ソース]タブでクエリオプションを設定します。[クエリオプション]セクションを展開し、フィルタとソートの条件を設定します。
次のソースクエリオプションを使用することができます。
- フィルタ
ソースデータをフィルタリングして、データフローに入力されるソースデータの量を制限します。以下のタイプのフィルタを作成できます。
- - パラメータ化なし。ソースフィールドを選択し、フィルタに使用する演算子と値を設定します。複数のフィルタが設定されている場合、タスクは、フィルタ間にAND演算子を使用して、リストされた順序でフィルタ式を適用します。
- - 完全にパラメータ化。フィルタ式にパラメータを使用して、タスクのフィルタ式を定義します。
- - 詳細。AND、OR、またはネストされた条件を使用した複合式を作成します。入力する式は、ソースからレコードを取得するために使用するクエリ内のWHERE句になります。式では、ソースフィールド、入力および入出力パラメータ、またはシステム変数を使用できます。
例えば、いずれかのフィールドに入力パラメータを使用し、タスクの実行時にそのパラメータを選択できます。同じパラメータを式トランスフォーメーションで再利用してフィールド式を作成したり、ターゲットトランスフォーメーションで再利用したりすることもできます。または、式の入出力パラメータを使用して、最後の実行以降に更新された行を取得できます。
システム変数の詳細については、「関数リファレンス」を参照してください。パラメータの詳細については、「マッピング」を参照してください。
パラメータ化されていない簡易データフィルタを詳細データフィルタに変換することはできますが、詳細データフィルタを簡易データフィルタに変換することはできません。
- ソート
ソースデータをソートして、ソート済みのデータをマッピングに提供できます。例えば、ソート済みのデータを使用するアグリゲータトランスフォーメーションにソート済みのデータを提供すれば、タスクのパフォーマンスを向上できます。
データをソートする際には、1つ以上のソースフィールドを選択します。複数のソースフィールドを選択すると、一覧表示に挙げられた順にフィールドがソートされます。
各フィールドのデータが昇順にソートされます。降順でソートする場合は、ソータートランスフォーメーションを使用できます。
ソートフィールドのパラメータを使用して、タスクのソートフィールドを定義できます。