File Formatコネクタ
File Formatコネクタは、ペイロードフィールド内に埋め込まれた構造化テキスト形式をパースおよびシリアライズします。各コネクタはinputKeyから読み取り、結果をoutputKeyに書き込みます。他のすべてのペイロードフィールドは変更されずにパススルーされます。
コネクタタイプ: CsvProcessor、XmlProcessor
パースモード
Section titled “パースモード”inputKeyからCSV文字列を読み取り、outputKeyに構造化された値を書き込みます。
{ "type": "CsvProcessor", "config": { "direction": "parse", "delimiter": ",", "hasHeader": true, "inputKey": "raw_csv", "outputKey": "rows" }}hasHeader: trueの場合、出力はヘッダー行をキーとするmap[string]stringの配列です。hasHeader: falseの場合、出力は配列の配列([][]string)です。
シリアライズモード
Section titled “シリアライズモード”inputKeyから配列の配列を読み取り、outputKeyにCSV文字列を書き込みます。
{ "type": "CsvProcessor", "config": { "direction": "serialize", "delimiter": ";", "inputKey": "rows", "outputKey": "csv_text" }}設定パラメータ
Section titled “設定パラメータ”- direction(必須):
parseまたはserialize - inputKey(必須):ソース値を保持するペイロードキー
- outputKey(必須):結果を書き込むペイロードキー
- delimiter: 単一文字のフィールド区切り文字(デフォルト
,) - hasHeader:
parse中にtrueの場合、最初の行を列名として扱う
パースモード
Section titled “パースモード”inputKeyからXML文字列を読み取り、outputKeyにネストされたマップを書き込みます。要素に混合した子が含まれる場合、テキストコンテンツは_textキーの下に格納されます。
{ "type": "XmlProcessor", "config": { "direction": "parse", "inputKey": "raw_xml", "outputKey": "parsed" }}シリアライズモード
Section titled “シリアライズモード”inputKeyからマップを読み取り、rootElementでラップされたXML文字列をoutputKeyに書き込みます。
{ "type": "XmlProcessor", "config": { "direction": "serialize", "inputKey": "data", "outputKey": "xml_text", "rootElement": "report" }}設定パラメータ
Section titled “設定パラメータ”- direction(必須):
parseまたはserialize - inputKey(必須):ソース値を保持するペイロードキー
- outputKey(必須):結果を書き込むペイロードキー
- rootElement: シリアライズされた出力をラップするルートタグ(デフォルト
root)
ユースケース
Section titled “ユースケース”- MESまたはSCADAシステムからレガシーCSVエクスポートを取り込む
- XMLベースの産業プロトコルをJSONネイティブのダウンストリームコネクタにブリッジ
- レポート用にS3またはローカルストレージにCSVファイルを出力
- MQTTまたはHTTP経由で受信したCSV/XMLペイロードのインラインパース
例: CSV取り込みパイプライン
Section titled “例: CSV取り込みパイプライン”{ "type": "CsvProcessor", "config": { "direction": "parse", "delimiter": ",", "hasHeader": true, "inputKey": "body", "outputKey": "records" }}HTTPソースと組み合わせると、受信したCSVアップロードが構造化されたrecords配列に変換され、Transform、Validation、またはデータベースシンクに供給できます。
ベストプラクティス
Section titled “ベストプラクティス”- 非標準の区切り文字(
;、\t、|)を持つCSVの場合、delimiterを明示的に設定 - ダウンストリームコネクタが列を名前で参照する場合は、常に
hasHeader: trueを設定 - 深くネストされたXMLの場合、JSONPathを使用して特定のパスを抽出するためにTransformを続ける
- ダウンストリームステージが失敗した場合に元のデータが保持されるように、生のテキストを専用キー(例:
raw_csv)に保持
関連コネクタ
Section titled “関連コネクタ”- Transform - パース後にJSONPathで値を抽出
- Reshape - パースされたフィールドの名前変更や再マッピング
- Protocol Translator - 構造化形式間の変換