変換定義ファイルの構成

変換定義ファイルは、データ変換ツールでCSVなどのデータをNGSIデータに変換するための、 データ変換規則を記述したファイルです。 YAML形式のフォーマットで記述し、文字コードはUTF-8です。

変換定義ファイルとデータファイルをデータ変換ツールに渡すことにより、 NGSIデータを生成することができます。

変換定義ファイル内では、変換元データの定義、 変換元のデータとNGSIデータの項目を紐付ける定義など、 複数の情報の集まりで構成されています。

変換定義ファイルは以下の情報より構成されます。

キー 各情報 説明
version バージョン情報 変換定義ファイルのバージョンを記述する。現行バージョンは"2"
input 変換元データ情報 変換元データの場所(URL)、データのフォーマット(CSV)などを記述する
output 変換先データ情報 NGSI変換後のデータ格納場所を記述する
columns 入力カラム情報 変換元データの項目名を記述する
entity エンティティ情報 エンティティの基本情報(モデル型、ID)を記述する
attributes 属性情報 エンティティ内の各属性のデータ変換方法について記述する

記述例

# 福岡市 市の施設(共通フォーマット)
version: 2
input:
  source:
    type: Url
    url: https://datasource
  reader:
    type: CSV
    encoding: CP932
output:
  storage:
    type: Orion
    url: https://orion
    service: example
    servicepath: /fukuoka_facilities
    token: zzz
columns:
  - 名称
  - 名称かな表記
  - 住所表記
  - 郵便番号
  - 緯度
  - 経度
  - 電話番号
  - FAX番号
  - Eメールアドレス
  - Webサイト
  - 種別
entity:
  type: PointOfInterest
  id:
    name: id
    type: Id
    params:
      - name: id
        values:
          - type: Const
            value: urn:ngsi-ld:fukuoka-facilities
          - type: Count
            value: "000001"
        subs: {}
    metadata: []
attributes:
  - name: name
    type: Text
    params:
      - name: text
        values:
          - type: Column
            value: 名称
        subs:
          regexp: ""
    metadata: []
  - name: location
    type: GeoJson
    params:
      - name: address
        values: []
        subs: {}
      - name: lat
        values:
          - type: Column
            value: 緯度
        subs: {}
      - name: lng
        values:
          - type: Column
            value: 経度
        subs: {}
    metadata: []

上記の形式で定義を記述することにより、 以下のような形式のNGSIデータを出力することができます。

出力例

[
  {
    "type": "PointOfInterest",
    "id": "urn:ngsi-ld:fukuoka-facilities-000001",
    "name": {
      "type": "Text",
      "value": "福岡市美術館",
      "metadata": {}
    },
    "location": {
      "type": "geo:json",
      "value": {
        "type": "Point",
        "coordinates": [
          130.379754,
          33.584041
        ]
      },
      "metadata": {}
    }
  }
]


© NEC Corporation 2019-2021