こんにちは。CData Software Japan の色川です。
「バッチ連携シナリオでのデータフォーマットとして」など、CSV(Comma-Separated Values)ファイルが利用される機会は多いと思います。こちらの情報 によるとCSV 形式は、使われだしてから50年超、CSV の名称で呼ばれるようになってから約40年を数える歴史あるデータフォーマットとのこと。
この記事では「CData Arc でCSV ファイルを出力する方法」をご紹介します。
CData Arc でCSV ファイルを出力する幾つかの方法
CSV 形式でデータを得たい場面は様々かと思いますが、対象とするデータソースの構造や、編集・加工の要件にあわせて選択できるように、CData Arc では複数の方法が提供されています。以下ではそれぞれの方法をご紹介していきます。
A |
XML Map コネクタ + CSV コネクタ |
データソースの構造が複雑な場合も適用可能な「CData Arc でCSV 出力(CSV 変換)するための最もスタンダードな方法」です |
B |
CSV Map コネクタ |
データソースの構造がフラットな場合に適用できます。項目のマッピングのみをシンプルに行いたい場合に便利です |
C |
Select アクションのアウトプットファイル形式 |
データソース系コネクタのSelect アクションで得られる結果をそのままCSV で得たいケース(データ形式や項目順序が無変換で良いケース)に便利です |
CSV 化するサンプルデータソース
この記事では、それぞれの方法において設定の流れを紹介するためのサンプルデータソースとして、kintone の「顧客リスト」を利用します。
CSV 化したいデータソースやオブジェクトなど対象データを構成する条件は様々かと思いますが「CSV ファイルを出力する」部分は変わりませんので、それぞれ実現したいシナリオに読み替えてお試しください。
A. XML Map コネクタ + CSV コネクタ
CSV コネクタは「XML をCSV に」または「CSV をXML に」変換するコネクタです。
XML Map コネクタは「入力されたXML フォーマットを出力したいXML フォーマットへとマッピング」するCData Arc の中核的なコネクタです。データ項目の編集・加工には豊富に用意された[フォーマッタやスクリプト機能]を利用する事ができます。
最初にご紹介するのは、XML Map コネクタで「データソースから取得したXML フォーマットを、CSV として出力したい項目を持つXML フォーマットへとマッピング」した後、CSV コネクタで「XML からCSV に」変換する方法です。
この方法は最も広範なシナリオで適用することができ「CData Arc でCSV 変換するためのスタンダードな方法」とも言えます。
それではサンプルデータソースを対象に「XML Map コネクタ + CSV コネクタ」を使ってCSV 出力するフローを設定していきます。
CData コネクタ
CData コネクタで、データソースとするkintone から「顧客リスト」をSelect する設定をします。kintone との接続設定の詳細については こちらの記事 などを参考にしてください。
CData コネクタでのSelect では、デフォルトでレコード単位にメッセージファイルを出力します。取得するレコードを1つのCSV ファイルとして出力したいので、取得する段階でメッセージファイルが1つのファイルで生成されるように構成しておきます。高度な設定の「最大レコード数」を「-1」として構成して、コネクタの設定を保存します。
CSV コネクタ
CSV 出力・変換のステップとして最初にCSV コネクタを配置し「XML からCSV に変換」するための設定をします。コアカテゴリから「CSV コネクタ」を選択・配置して、CSV への変換を構成します。
カラムヘッダー(列名を表す行)の有無などCSV ファイル全般のレイアウトについて設定します。
CSV コネクタに備わっている「テストファイルをアップロード」機能はCSV コネクタで扱う予定のCSV ファイルを明示することで、XML Map で扱えるスキーマ情報を自動生成することができます。この機能を利用して、CSV コネクタが「どのような構造のCSV ファイルを扱う予定なのか」を判断できるようにしておくと、この後のXML Map コネクタで別途スキーマファイルを構成する必要がなく便利です。インプットタブの「その他」から「テストファイルをアップロード」を選択します。
この記事では以下のようなデータを含むCSV を「顧客リスト.csv」として用意してテストファイルとしてアップロードしました。
レコード番号,会社名,部署名,住所,担当者名,メールアドレス
99,会社名,部署名,住所,担当者名,[email protected]
XML Map コネクタ
最後に、XMLMap コネクタを配置し「CData コネクタでデータソースから取得したXML データを、CSV として出力したい項目を持つXML フォーマットへマッピング」するための設定をします。コアカテゴリから「XML Map コネクタ」を選択・配置します。
フローをつなぐと、ソースファイル・デスティネーションファイルが選択できるようになり、マッピングでは同名項目は自動的にマッピングされます。
データ項目の加工や変換をしたい場合、XML Map コネクタで 各種フォーマッタ などスクリプト機能を利用する事ができます。
この方法のまとめ
この「XML Map コネクタ + CSV コネクタ」を使ってCSV 出力する方法は、データソースの構造が複雑な場合も適用できる「CData Arc でCSV 出力(CSV 変換)するための最もスタンダードな方法」です。
- 例えば、こちらの記事 のようにSelect アクションでChild Table を利用しているケースなど、フラットではない(ネストされた)XML 形式である場合や、マッピングの中で項目の編集・加工を行いたい場合は、この方法を活用してください。
- CSV 以外にも、TSV やPSV、JSON も、CSV コネクタと同じ「対象データ形式とXML の変換コネクタ」が用意されていますので、同じ考え方で変換・出力することが可能です。
B. CSV Map コネクタ
CSV Map コネクタは、フラットなXML ファイルを CSV 形式に変換できるコネクタです。CSV Map コネクタにはビジュアル設定できる「デザイナー」ビューと、スクリプトで設定する「コード」ビューの2つのモードが提供されています。コードビューでArcScript を利用することでデータ項目の編集・加工することができますが、基本的にはデザイナーモードを利用して「項目のマッピングのみをシンプルに行いたい場合」に利用するのが良いでしょう。
それではサンプルデータソースを対象に「XML Map コネクタ + CSV コネクタ」を使ってCSV 出力するフローを設定していきます。
CData コネクタ
CData コネクタの設定は先ほどの「1. XML Map コネクタ + CSV コネクタ」と同じです。
CData コネクタで、データソースとするkintone から「顧客リスト」をSelect する設定をして、メッセージファイルが1つのファイルで生成されるように高度な設定の「最大レコード数」を「-1」として構成して、コネクタの設定を保存します。
CSV Map コネクタ
CSV Map コネクタを配置し「CData コネクタでデータソースから取得したXML データを、出力したいCSV 形式へマッピング」するための設定をします。コアカテゴリから「CSV Map コネクタ」を選択・配置します。
CData コネクタでデータソースから取得したXML データがインプットとなるようにフローを繋ぎます。
「出力したいCSV 形式」を指定するために、デスティネーションファイルに「出力したいCSV 形式」のCSV ファイルをアップロードします。先ほどと同じく以下のようなデータを含むCSV を「顧客リスト.csv」として用意して、デスティネーションファイルのサンプルファイルとしてアップロードしました。
レコード番号,会社名,部署名,住所,担当者名,メールアドレス
99,会社名,部署名,住所,担当者名,[email protected]
これでCSV のそれぞれの項目に、データソースのどの項目をマッピングするかを選択できるようになります。
この方法のまとめ
この「CSV Map コネクタ」を使ってCSV 出力する方法は、データソースの構造がフラットな場合に適用できます。この方法は、データソースの構造がフラットで、項目のマッピングのみをシンプルに行いたい場合に便利です。コードビューを利用すれば、項目のマッピングのみでなく編集や加工もできますが、そう言った場合は1 の方法の方がフィットするケースが多いでしょう。この方法はデザイナービューで対応できる範囲のデータ構造を扱いたい場合に活用するのが良いと思います。
- 例えば、こちらの記事 のようにSelect アクションでChild Table を利用しているケースなど、フラットではない(ネストされた)XML 形式である場合、CSV Map コネクタのデザイナービューでは扱うことができません。
C. Select アクションのアウトプットファイル形式
最後に紹介するのは、データを取得するSelect アクションのアウトプットファイル形式で「CSV」を指定する方法です。Select アクションは、CData コネクタをはじめ、Database Connectors に含まれるそれぞれのコネクタ、Application Connectors の内Salesforce などデータソース系コネクタで実行できるデータ取得のためのアクションです。
それではサンプルデータソースを対象に「Select アクションのアウトプットファイル形式」を指定してCSV 出力する設定をしていきます。
CData コネクタ
この方法の場合、CData コネクタの設定で完結します。CData コネクタで、データソースとするkintone から「顧客リスト」をSelect する設定をして、アウトプットファイル形式を「CSV」として構成して、コネクタの設定を保存します。
この方法のまとめ
この「Select アクションのアウトプットファイル形式」で指定する方法は、2 の方法と同様にデータソースの構造がフラットな場合に適用できます。この方法は、Select アクションで得られる結果をそのままCSV で得たいケース(データ形式や項目順序が無変換で良いケース)に便利です。
- 例えば、こちらの記事 のようにSelect アクションでChild Table を利用しているケースなど、フラットではない(ネストされた)XML 形式である場合、この方法では扱うことができません。
その他
CData コネクタ + CData Drivers for CSV
その他のアプローチとして、CData コネクタから「CData Drivers for CSV」を利用することで、CSV ファイルに対してSQL でアクセスすることもできます。この方法は、CSV に出力するときよりも、CSV ファイルをマスタファイル的に参照・検索したいときに活用頂くことが多いかも知れません。CSV に含まれるデータに対してSQL 関数などを駆使してデータを取得・活用することができます。
おわりに
この記事では「CData Arc でCSV ファイルを出力する方法」をご紹介しました。対象とするデータソースの構造や、編集・加工の要件にあわせて選択できるように、CData Arc では複数の方法が提供されています。実現したいシナリオに併せて選択してください。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
この記事では CData Arc™ 2023 - 23.2.8630.0 を利用しています
関連コンテンツ