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

2023年8月5日TreasureData

処理概要

日本郵政で公開している郵便番号のCSVファイルをS3からTreasureDataにインポートする


処理内容

  1. CSVファイルを一時テーブルにインポートする
  2. 一時テーブルに対してSQLを実行する
  3. SQL実行結果を目的のテーブルに格納する
  4. 一時テーブルを削除する

CSVファイル

digファイル

  • csv_import_test.dig
  • ワークフローの設計書となるファイル

ymlファイル

  • csv_import_test.yml
  • CSVファイルの入出力設定を記載するファイル
  • configディレクトリ配下に配置する

補足

  • time列がないのでインポート時に追加する設定をymlファイルに記載する

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ファイルの内容

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: {}