【TreasureData】郵便番号データをインポートする

TreasureData,データベース

日本郵政で公開している郵便番号のcsvファイルをインポートするワークフローです。
S3に配置したcsvファイルをインポートします。

実行手順 ①csvファイルを配置する
②digファイルを作成する
③ymlファイルを作成する

①csvファイルを配置する

日本郵政のサイトから取得したcsvファイルを配置する

  • 日本郵政のサイト へ移動します
  • 全国一括 のデータをダウンロードします
  • ファイルを展開し S3 の任意のバケット配下に配置します

②digファイルを作成する

timezone: Asia/Tokyo

schedule:
  daily>: 10:00:00

_export:
  td:
    dest_db: db_name
    dest_table: table_name

+prepare_table:
  td_ddl>:
  create_databases: ["${td.dest_db}"]
  create_tables: ["${td.dest_table}"]
  database: ${td.dest_db}

+load:
  td_load>: config/load_zip_code.yml
  database: ${td.dest_db}
  table: ${td.dest_table}

③ymlファイルを作成する

補足

  • 日本語を扱うので SJIS を指定します
  • 展開後のcsvファイルにはヘッダがありません
  • インポート実行時に time 列を追加します
in:
  type: s3
  access_key_id: ${secret:s3.access_key_id}
  secret_access_key: ${secret:s3.secret_access_key}
  bucket: bucket_name
  path_prefix: path/to/KEN_ALL.CSV
  use_modified_time: true
  incremental: true
  parser:
    charset: SJIS
    newline: CRLF
    type: csv
    skip_header_lines: 0
    columns:
    - name: col_01
      type: string
    - name: col_02
      type: string
    - name: col_03
      type: string
    - name: col_04
      type: string
    - name: col_05
      type: string
    - name: col_06
      type: string
    - name: col_07
      type: string
    - name: col_08
      type: string
    - name: col_09
      type: string
    - name: col_10
      type: string
    - name: col_11
      type: string
    - name: col_12
      type: string
    - name: col_13
      type: string
    - name: col_14
      type: string
    - name: col_15
      type: string
filters:
  - type: add_time
    to_column:
      name: time
      type: timestamp
    from_value:
      mode: upload_time
out: {}
exec: {}

以上で作成したワークフローを実行すればcsvファイルがインポートされます。