この接続学習パスでは、あるシステムからデータを抽出し、そのデータファイルを別のシステムに読み込み中であることを示すために、いくつかのトランスフォーメーションを行います。
| プライマリ学習目標 | 一般的なトランスフォーメーションのニーズに対応すべく、使用できるTabular Transformation Connectorのシンプルで強力なコマンドをいくつか紹介 |
| 前提条件 | HTTP 、ファイルユーティリティ 、表形式変換 コネクター接続の構成 |
| チェーンテンプレートのサポート | CLP|表形式の変換/トランスフォーメーション |
ステップ1:チェーンの作成
- 新規チェーンの追加
- チェーンの名称:CLP|表形式の変換/トランスフォーメーション
- チェーン変数の作成
- チェーンの保存
ステップ2:ソースシステムからのデータ取得
HTTP コネクタを使用して、Workiva コネクタが存在しないデータソースからデータを取得する方法を説明します。
- HTTPコネクターからStartノードへのGETコマンド追加
- コマンドを以下のように構成する:
ステップ3:データファイルのヘッダーを更新する
ファイルないのヘッダーを、トランスフォーメーション完了後にデータファイルが読み込み中となるシステムのフィールド名と一致するように更新します。マップヘッダーコマンドでは、インデックスに基づいてフィールド名称を更新することができるため、将来フィールド名称が変更された場合でも、コマンドはより柔軟に対応することができる。
- マップヘッダーコマンドを表形式変換コネクタ からチェーンに追加
- 開始ノード(HTTP - ソース・システム・データの取得)をマップ・ヘッダー コマンドに接続する。
- コマンドを編集する:
- コマンドの名称マップヘッダー
- 入力ファイル パラメータをクリックする。変数選択ペインが左に開きます。Command セクションの下で、Get - Source System Data Commandを展開し、Response Outputを選択する。
- 出力ファイルパラメータは空白のままにする。
- 結果のプレビューにチェックを入れる。
- ソースシステムのデータファイルはカンマ区切りなので、デリミタ をカンマ のままにしておく。
- Input Headers パラメータには、0から7までの数字を入力する。ファイルには8つのフィールドがあり、リストはゼロベースだからである。数字をそれぞれ入力したら、必ずEnterキーを押してください!
- Use Indexesボックスにチェックを入れます。これは、入力ヘッダーが実際の列名称ではなく、ファイル内の位置に基づいていることをコマンドに伝える。
- 出力ヘッダーで、作成する新規フィールドの名称を指定する。リストの最初の仕分けは、ソース・システム・ファイルの最初のフィールドのヘッダー名称を置換し、残りの各エントリでも同様に行うことから、順序は重要です。以下のヘッダーを入力し、それぞれの後にEnterキーを押します:
- 製品
- 市場
- 月
- シナリオ
- 売上高
- COGS
- 経費
- 営業利益
- コマンドの保存
ステップ4:データ列の行への移動
次へ、データファイルを更新して、複数列のデータを行に移し、1つのデータ列を作成する。この操作をアンピボットと呼ぶ。ピボット解除操作は、下流システムの期待される書式、すなわちすべてのデータを含む単一列にデータを整列します。
- Unpivot コマンドをTabular Transformation Connector からチェーンに追加する。
- マップヘッダー コマンドをアンピボット コマンドに接続する。
- コマンドの編集
- コマンドの名称: ピボット解除 - 測定単位を行に移動
- 入力ファイル パラメータには、マップヘッダー出力 を選択する。
- マップヘッダー出力はカンマ区切りのままなので、デリミター はカンマのままにしておく。
- 集計 パラメータで、合計 を選択。Sumを選択した場合、ピボット解除によって作成された行がすべての列で同じであれば、データ値は1つのデータポイントに集計されます。
- 新規列ラベル パラメータに、測定単位 と入力する。これは新規作成される列のヘッダーで、ピボット解除される列のヘッダー値が入力されます。
- データ列ラベル パラメータに「金額」と入力。
-
データヘッダー 、ピボット開始列名称 、ピボット終了列名称 、ピボット開始列インデックス 、ピボット終了列インデックス フィールドは、ピボット操作を実行するために使用されます。これらすべてのパラメータを指定する必要はない。
- データヘッダー パラメータを使用する場合、残りのパラメータは空白のままにしておく。データヘッダーパラメータでは、列の名称を指定することができる。このパラメータは、同時並行でないフィールドに有効です。
- Starting/Endding Column Nameパラメータでは、(同時実行範囲の)最初と最後の列の名称を指定できます。これらのパラメータを使用する場合、データヘッダー パラメータと、開始/終了列インデックス は空白のままにしておかなければならない。終了列名称 が空白のままである場合、ピボット解除は、開始列名称 以降(を含む)のすべてのフィールドに対して実行される。
-
開始/終了列インデックス パラメータは、(同時実行範囲の)最初の列と最後の列の位置を指定することができる。これらのパラメータを使用する場合、Data Headers パラメータおよびStarting/Ending Column Name は空白のままでなければならない。Endding Column Indexが空白のままだと、Starting Column Index以降のすべてのフィールドに対してピボット解除が実行されます。この練習では、これらのパラメータを使用する。
- 開始ピボット列インデックス に、4 と入力する。これは、インデックスがゼロベースであるため、5列目からピボットするようコマンドに指示します。
- Ending Pivot Column Index は空白のままにする。
- 結果のプレビューオプションをチェック
- コマンドの保存
ステップ5:シナリオの更新
次に、シナリオ名を変更します。これは、Integration Studioに適した、シンプルで単発のトランスフォーメーションを示しています。より幅広い、または複雑な名前の変更変換は、データの準備によって大幅に効率化されます。
- 検索と置換コマンドを、表形式変換コネクタ からチェーンに追加
- Unpivot コマンドをFind and Replace コマンドに接続する。
- コマンドを編集する:
- コマンドの名称: 検索と置換 - 予算と計画
- Input file パラメータで、Pivoted Result Output from Unpivot Command を選択する。
- 出力ファイル パラメータを空白のままにする。
- 結果のプレビューにチェックを入れる。
- ピボット化されていないファイルはカンマ区切りのままなので、デリミター として、カンマを指定する。
- これからBudgetというテキストを検索し、Planというテキストに置換する。Find pattern パラメータに、Budget と入力。
-
Match Pattern ValueパラメータでExactを選択
- Exact は、検索パターンパラメータで指定されたテキスト全体を検索する意味である。部分文字列やワイルドカードを検索するには、正規表現(regex)パターンタイプを使う必要がある。
- 置換値 パラメータに、プラン と入力する。テキスト「Budget」はすべてテキスト「Plan」に置換される。
- Replace matches only パラメータは完全一致には適用されないので、デフォルトのままにしておくことができます。
- Case Insensitive オプションのチェックは外したままにしてください。これにより、検索と置換では大文字と小文字が区別され、予算 は計画 に置換されますが、予算 は置換されません。
- 検索パターン(予算)が4列目にあるシナリオ列。Columns パラメータには、ゼロベースなので数字の3(3)を入力する。
- コマンドの保存
ステップ6:ニューヨーク・プランのデータのみを残す
次へ、スマートフィルターコマンドを使ってニューヨークのプランだけを残す。このスマートフィルターでは、データセットから特定の行を保持または削除するために使用されるデータに基づいて条件を指定することができます。
- Smart Filter RowsコマンドをTabular Transformation Connector からチェーンに追加
- Smart Filter Rows コマンドをFind and Replace コマンドに接続する。
- コマンドを編集する:
- コマンドの名称: スマートフィルター行 - ニューヨークプランのみ
- 入力ファイルパラメータで、検索と置換コマンドから検索と置換出力 を選択する。
- 出力ファイル パラメータを空白のままにする。
- デリミターとしてカンマ を指定する。
-
フィルターセクションには、テキスト、数字および日付 のフィルター機能があります。フィルター条件は複数指定可能。異なるタイプ(テキスト、数値、日付)のフィルターを適用する場合は、左上のOperatorを適宜指定する必要があります。あるタイプ(テキストなど)で複数の条件を適用する場合は、そのフィルタータイプのOperatorを指定する必要があります。
- このエクササイズでは、テキストベースのフィルターを適用して、グローバルオペレーターがAnd またはOr のいずれかになるようにします。
- 必要に応じて、一般演算子をAND に設定する。
- テキスト フィルターの追加ボタンをクリックする。
- 列名称 パラメータに「シナリオ」と入力する。
- 大文字と小文字を区別しない」のチェックを外したままにする
- 条件ドロップダウンから、Equalsを選択
- Compare Textパラメータに、Actualと入力
- Not およびTrim のチェックボックスはオフのままにしておく。
- このフィルターは、シナリオフィールドにActualという値が含まれるレコードを削除するために使用される。
- テキストフィルターセクションで再度追加ボタンをクリックする。
- テキストフィルター演算子をOR に設定する。
- ORの結合を選択し、ActualとNew Yorkの両方をフィルターにかける
- 2つ目の条件では、列名称にMarketを指定
- 条件をEqualsに設定
- 比較テキスト をニューヨーク と指定する。
- 最終的に、Not オプションをチェックする。
- テキストフィルター演算子をOR に設定する。
- プレビュー結果オプションをチェックしたままにする。
- 必要に応じて、一般演算子をAND に設定する。
- このエクササイズでは、テキストベースのフィルターを適用して、グローバルオペレーターがAnd またはOr のいずれかになるようにします。
- 逆オプションにより、スマートフィルターはフィルター条件に一致するすべての行を保持(チェックを入れる)または削除(チェックを外す)することができます。この練習では、シナリオが Actual と等しいか、マーケットが New York と等しくない行をすべて削除したい。これを実現するために、 Inverseオプションのチェックを外します。
- コマンドの保存
ステップ7:年列の追加
最終的に、データの「年」を示す列をデータセットに追加する。
- チェーンへのTabular変換/トランスフォーメーションコネクタからの列挿入コマンドの追加
- 列挿入コマンドとスマートフィルター行コマンドの接続
- コマンドを編集し、以下のように構成する:
| 名称 | 列の挿入 - 計画年 |
| 入力ファイル | スマートフィルター行出力 |
| 出力ファイル | <leave> |
| プレビュー結果 | チェック済み |
| デリミター | コンマ |
| ヘッダーテキスト | 年 |
| データ値 | 2022 |
| 挿入インデックス | 3 |
- コマンドの保存
ステップ8:エクササイズのテスト中
チェーンが完成したら、結果をテストする。
- チェーンを更新
- ExecuteをクリックしてRun Chainを選択します。
- チェーンが完了したら、[列の挿入]-[計画年]ノードをクリックする。
- 出力タブで、385 レコード が出力されたことを確認する。
- 記録タブをクリックし、以下の画像に従ってデータを確認する。
出力タブ
記録タブ
チェーンを使ったデータ変換の詳細は、Connected Learning Paths - Transformation Introduction をご覧ください!