Skip to content

データローダWebAPI・テーブル初期化

データローダが使用する data_name を定義し、データの挿入を可能な状態にします。(データ投入テーブルの初期化を行います)

エンドポイント

https://pf.xdata.nict.jp/api/v1/dataloaderapi/jsonrpc

リクエスト例

下記は test_event_001 という名前で data_name を定義し、test_varchar_1 という256文字までの文字列カラムを含むテーブルを初期化するリクエストになります。

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "loaderwebapi.register_loader",
  "params": {
    "data_name": "test_event_001",
    "schema": "event",
    "record_def": {
      "test_varchar_1": {
        "udt_name": "varchar",
        "is_nullable": false,
        "column_default": "",
        "length": 256
      }
    },
    "unique_columns": [
      "location",
      "start_datetime"
    ]
  }
}

下記は test_event_002 という名前で data_name を定義し、test_varchar_1 という暗号化された文字列カラムを含むテーブルを初期化するリクエストになります。暗号化の際は、型指定は varchar または text のみを指定でき、また文字長にあたる length および column_default は指定できません。

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "loaderwebapi.register_loader",
  "params": {
    "data_name": "test_event_002",
    "schema": "event",
    "record_def": {
      "test_varchar_1": {
        "udt_name": "varchar",
        "is_nullable": false,
        "need_crypto": true
      }
    },
    "unique_columns": [
      "location",
      "start_datetime"
    ]
  }
}

レスポンス例

下記は上記のリクエスト内容での返却内容になります。

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "schema": "event",
    "table_name": "test_event_001"
  }
}

パラメータ

JSON-RPCリクエスト内容のうち、params 内に指定可能なものを下記に表示します。 Required と書かれたものは必須パラメータです。

  • data_name: string (Required)
    • データを挿入したいテーブルを指し示す名前。ここで定義した名前を init_record, add_record でも使用
  • schema: string (Optional)
    • テーブルが作成されるスキーマ名
    • 対向データベースのスキーマ構成を知っており、かつテーブル作成スキーマを指定したい場合のみ使用
  • record_def: object (Required)
    • キー: 属性名(カラム名), 値: 属性情報を表す object
    • start_datetime(timestamptz型), end_datetime(timestamptz型), location(geometry型) の3つは自動で作成されるため属性名として指定することができず、指定した場合はエラーとなる
    • 値 object の構造:
      • udt_name: string (Required)
        • 属性の型名。指定可能な値は後述
        • is_nullable: bool (Optional, 未指定の場合 false)
          • null 値を許容する場合、true
        • need_crypto: bool (Optional, 未指定の場合 false)
          • udt_namevarchar または text のときで暗号化したい場合、true
        • column_default: string (Optional)
          • add_record 時に属性値が渡されない場合のデフォルト値
          • need_crypto の場合は指定できない
        • length: int (Optional)
          • 格納可能な値の最大長 (指定可能な型名の場合のみ使用可能)
          • need_crypto の場合は指定できない
        • srid: int (geometry 型の場合のみ, Optional, 未指定の場合 4326)
        • file_name_column: string (file 型の場合のみ, Required)
          • 保存対象のファイルに対するファイル名を保存するカラムの名前
          • record_defで指定する際は文字列系の定義にする必要がある
        • file_type_column: string (file 型の場合のみ, Required)
          • 保存対象のファイルに対するファイルタイプ(content-type)を保存するカラムの名前
          • record_defで指定する際は文字列系の定義にする必要がある
        • file_prefixid_column: string (file 型の場合のみ, Required)
          • 保存対象のファイルに対するプレフィックスIDを保存するカラムの名前
          • record_defで指定する際はint系の定義にする必要がある
        • file_pathid_column: string (file 型の場合のみ, Required)
          • 保存対象のファイルに対するパスIDを保存するカラムの名前
          • record_defで指定する際は文字列系の定義にする必要がある
        • file_relativepath_property: string (file 型の場合のみ, Required)
          • 保存対象のファイルに対するファイル保存位置の相対パスを送信するjsonキー名
          • record_defでは指定しないが、add_record 時にはここで指定した値をproperties以下でキー名として使って相対パスを指定する必要がある
    • udt_name に指定可能な型名。file, raster及びbytea型は、add_recordで送信するときにはbase64化する必要がある
      • 時間系
        • timestamptz
        • timestamp
        • timetz
        • time
        • date
      • int 系
        • int8
        • int4
        • int2
      • float系
        • float8
        • float4
      • 文字列系
        • varchar
        • bpchar
        • text
      • bool
        • bool
      • geometry
        • geometry
      • ファイル(「ファイル参照」を示す独自の型定義)
        • file
      • その他
        • raster
        • bytea
  • unique_columns: string array (Required)
    • パフォーマンス改善上、必ずひとつ(複合)ユニークキーを定義する必要があり、それを指定する
    • record_def で指定したキー(および予約カラム名)に含まれる文字列の配列を指定する必要あり

戻り値

正常終了時:

  • schema: テーブルが作成されたスキーマ
  • table_name: 実テーブル名

data_name に対応する初期化処理がすでに実施済みの場合等、エラーが起きた場合は error を返します。