Git Product home page Git Product logo

embulk-docker's Introduction

OracleからDWHへ送る連携ファイル抽出

Embulkを利用して、データベースからDWHへ送る連携ファイルを抽出する

概要

更新日時が「対象日の前日0時以降から対象日の0時前まで」の指定テーブルのレコードを抽出する。

※ 対象日は引数で指定される。指定されていない場合に対象日が実行日である。

出力ファイルの仕様

  • ファイルの文字コード:UTF-8
  • 改行コード:LF
  • 区切文字:"|"(半角パイプ) 、囲み文字なし(※データ内に半角パイプ、改行コード「CR」「LF」が存在した場合は削除)
  • 圧縮前のファイル名:[ファイル名]_YYYYMMDDHHMMSS.csv(YYYYMMDDHHMMSSは処理開始日時(csv、zip、ctlでは同じ))
  • 圧縮後のファイル名:[ファイル名]_YYYYMMDDHHMMSS.csv.zip
  • コントロールファイル(空ファイル):[ファイル名]_YYYYMMDDHHMMSS.ctl

デプロイ

Dockerイメージのビルド

docker build -t [docker_image_name:tag] .

環境変数の変更

ora_dwh.envで定義されている以下の環境変数の値を変更する。

変数名 説明
LOCAL_BASEDIR シェル実行用の入出力ファイルを含む箇所
OUTPUT_DIR DWHへ送る連携ファイルを含む箇所
DOCKER_IMAGE Dockerイメージの名前

設定ファイルの配置

Embulk設定用のテンプレートファイル

Embulk設定用のテンプレートファイルを、ora_dwh.envファイルのLOCAL_BASEDIRで定義されたディレクトリにコピーする。

例)

cp ./config/_config.yml.liquid /nas/etl01/batch/ETC/ETC_BAT_EMBULK/yml/input/config

Embulk設定ファイル

lowercase型のあるテーブル名をファイル名としてEmbulk設定ファイルを作成して、yml/inputフォルダに配置する。

例)

/nas/etl01/batch/ETC/ETC_BAT_EMBULK/yml/input/m_apcrd_mem_tmp_mch.yml.liquid

参考: m_apcrd_mem_tmp_mch.yml.liquid

Embulk実行用のdocker-compose

ora_dwh.envファイルのLOCAL_BASEDIRで定義されたディレクトリに、docker-composeのテンプレートファイルをコピーする。

例)

cp ./docker/docker-compose.yml /nas/etl01/batch/ETC/ETC_BAT_EMBULK/yml/

シェル実行

引数

引数 必須 説明
第1引数 抽出対象のテーブル名
第2引数 出力ファイル名
第3引数 抽出対象日(フォーマット: YYYY-MM-DD) ※ 設定されない場合に実行日を抽出対象日とする

シェル実行

  • 対象日を設定してシェルを実行する。
sh ETC_BAT_ORA_DWH_EXPORT.sh TEST_TABLE TEST_FILE_NAME 2018-01-01
  • 対象日を設定せずにシェルを実行する。
sh ETC_BAT_ORA_DWH_EXPORT.sh TEST_TABLE TEST_FILE_NAME

embulk-docker's People

Contributors

lannt-xyz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.