- サポセンブログ
そうぞうしてみようmappingの世界
DataSpiderでデータの加工やフィルターを作成時に利用する「マッピング」の裏側で流れているデータの構造や流れについての動画を作成してみました。
|
DataSpider Servistaで複雑な情報加工を行う上で、XPathの知識は大変役に立ちます。
DataSpider Servistaでは加工処理を行う場合、以下2種類のデータ形式が利用されます。
最近ではクラウドとのデータ連携でDataSpiderを活用いただくシーンが多くなり、DataSpiderの加工処理ではXML型でのデータ形式がよく利用されます。
※DataSpiderではJSONデータを加工する場合もXML型と呼ばれる統一的なデータ形式として表現・取り扱いされます。
しかしながらXML型のデータはテーブル型の場合と比べて構造が複雑であり、その取り扱いも難しいという印象を抱かれている方も多いのではないでしょうか。
XMLデータから特定の位置にあるデータを抽出することを考えてみましょう。
|
上記は、「山田太郎」さんが入社以来4回部署異動していることが記録されているXMLデータで、例えばこの中から最終の異動先部署コードや異動日の情報を抽出したり、入社以来からの異動回数を数えたい、という場面をことを考えてみましょう。
最終の異動日は「2018/04/01」で異動回数は合計4回でということがわかりますが、これを実際にDataSpider Servistaに抽出させるとなると、通常の処理で複数件のデータの中から最終データを選択的に抽出したり、件数をカウントするのは簡単そうではあるものの、その実装が即座にイメージできない方も少なくないと思います。
ここで活躍するのがXPathというものです。
XPathとは端的に言うと、「XML文書内の要素を指定・抽出するためのクエリ言語」です。
DataSpider Servistaでは「XPathによる値の取得」ロジックアイコンでXPathをご利用いただけます。
具体的には、ドキュメントMapper編集画面において、
[ツールパレット]-[基本]-[XPathによる値の取得]
にあります。
|
ここで、DataSpiderのドキュメントMapperでの定義例を示します。
以下はXMLファイルを読み込んだ直後のMapperの内容です。
※右側にはCSVファイルへの出力データが存在します。
|
Mapperの定義内容でまず最初に注目したいのは、左側の入力データから右側の出力データへ一直線に線が引かれている以下の4つの項目です。
- 社員番号
- 氏名
- 入社時部署コード
- 入社年月日
これらの項目は繰り返される項目ではなく、1つのXMLファイルに1回限り登場するデータであるため、その抽出はシンプルに線を引くだけで可能です。
しかし、今回欲しいのは特に「異動」に関する項目であり、「異動」に関する項目は、複数回繰り返されるため、線を引くだけでは抽出できないことに気が付きます。
そこで、XPathによる値の取得アイコンを使用します。
XPath式は、前に少し触れましたが「XML文書内の要素を指定・抽出するためのクエリ言語」で、XMLデータ内の特定レコードを柔軟に抽出することが可能です。
例えば、1回目の異動レコードを抽出する場合、このように設定して抽出可能です。
/root/異動[1]/異動先部署コード
また、XPathには関数も用意されており、番号指定以外の抽出条件も指定することが可能です。
今回、ご紹介するのは、last()関数とcount()関数です。
|
上記の場合、"/root/異動" の階層内で最後(一番下)のものの中から異動先部署コードを抽出します。
※数値指定であれば、/root/異動[N]/異動先部署コード に相当するものですが、
この最も大きい「N」を自動的に取得してくれるのがlast()関数です。
異動日についても、以下の通りに同様です。
|
次に、count()関数です。
これは、"/root/異動" という階層が何回繰り返されるのか、XMLデータから読み解いてその値を返してくれます。
|
例示のドキュメントMapperからCSVファイルに出力した場合ですと、以下のように最終異動に関する情報と異動回数が出力されていることがわかります。
|
XPathはXMLの世界では一般的なツールであり、これをDataSpider Servistaの中で活用することでXML関連のデータ加工が楽になることが垣間見えたかと思います。
ぜひご活用ください。
アシストでは、お客様のスピーディな自己解決を支援するため、FAQの「改善」「作成」に常に力を入れています。2022年6月時点での、DataSpiderの公開FAQ数は2600超となります。現在公開中のサンプルスクリプトにつきましては、さらに内容を分かりやすくお客様へお届けできるよう創意工夫して参りますので、今後ともどうぞご期待ください!
なお、本件のサンプルスクリプトは、FAQ No.「66613」に添付されているので、お客様の環境で実際に検証いただくことが可能です。
FAQの参照には、サポートWebサイトへアカウント登録が必要です。これからアカウント作成される方は、以下の『AWSC-2』ご紹介サイトよりアカウントの登録をお願いいたします。
https://www.ashisuto.co.jp/support/awsc2/
新宮 英之 (しんぐう ひでゆき)
サポートサービス技術本部 本部付 DX推進サポート部
DataSpiderでデータの加工やフィルターを作成時に利用する「マッピング」の裏側で流れているデータの構造や流れについての動画を作成してみました。
お客様の課題解決を早めるため、アシストサポートWebサイトではFAQを日々更新しています。本記事では、FAQの中で特に人気の「CSVファイルをJSON形式に変換する方法」について動画も合わせてご説明いたします。