72 lines
4.1 KiB
Markdown
72 lines
4.1 KiB
Markdown
# 実消化&アルトマーク データ転送処理
|
|
|
|
## 概要
|
|
|
|
実消化&アルトマークのデータ転送処理
|
|
|
|
## 環境情報
|
|
|
|
- Python 3.12
|
|
- MySQL 8.23
|
|
- VSCode
|
|
|
|
## 環境構築
|
|
|
|
- Python の構築
|
|
|
|
- Merck_NewDWH 開発 2021 の Wiki、[Python 環境構築](https://nds-tyo.backlog.com/alias/wiki/1874930)を参照
|
|
- 「Pipenv の導入」までを行っておくこと
|
|
- 構築完了後、プロジェクト配下で以下のコマンドを実行し、Python の仮想環境を作成する
|
|
- `pipenv install --dev --python <pyenvでインストールしたpythonバージョン>`
|
|
- この手順で出力される仮想環境のパスは、後述する VSCode の設定手順で使用するため、控えておく
|
|
|
|
- MySQL の環境構築
|
|
- Windows の場合、以下のリンクからダウンロードする
|
|
- <https://dev.mysql.com/downloads/installer/>
|
|
- Docker を利用する場合、「newsdwh-tools」リポジトリの MySQL 設定を使用すると便利
|
|
- 「crm-table-to-ddl」フォルダ内で以下のコマンドを実行すると
|
|
- `docker-compose up -d`
|
|
- Docker の構築手順は、[Docker のセットアップ手順](https://nds-tyo.backlog.com/alias/wiki/1754332)を参照のこと
|
|
- データを投入する
|
|
- 立ち上げたデータベースに「src05」スキーマを作成する
|
|
- [ローカル開発用データ](https://ndstokyo.sharepoint.com/:f:/r/sites/merck-new-dwh-team/Shared%20Documents/03.NewDWH%E6%A7%8B%E7%AF%89%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA3/02.%E9%96%8B%E7%99%BA/90.%E9%96%8B%E7%99%BA%E5%85%B1%E6%9C%89/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E9%96%8B%E7%99%BA%E7%94%A8%E3%83%87%E3%83%BC%E3%82%BF?csf=1&web=1&e=VVcRUs)をダウンロードし、mysql コマンドを使用して復元する
|
|
- `mysql -h <ホスト名> -P <ポート> -u <ユーザー名> -p src07 < src07_dump.sql`
|
|
- 環境変数の設定
|
|
- 「.env.example」ファイルをコピーし、「.env」ファイルを作成する
|
|
- 環境変数を設定する。設定内容は PRJ メンバーより共有を受けてください
|
|
- VSCode の設定
|
|
- 「.vscode/recommended_settings.json」ファイルをコピーし、「settings.json」ファイルを作成する
|
|
- 「python.defaultInterpreterPath」を、Python の構築手順で作成した仮想環境のパスに変更する
|
|
|
|
## 実行
|
|
|
|
- VSCode 上で「F5」キーを押下すると、バッチ処理が起動する。
|
|
- 「entrypoint.py」が、バッチ処理のエントリーポイント。
|
|
- 実際の処理は、「src/main.py」で行っている。
|
|
|
|
## フォルダ構成
|
|
|
|
```text
|
|
.
|
|
├── Dockerfile -- Dockerイメージを作成するためのファイル
|
|
├── Pipfile -- Pythonモジュールの依存関係を管理するファイル
|
|
├── Pipfile.lock -- Pythonモジュールの依存関係バージョン固定用ファイル
|
|
├── README.md -- 当ファイル
|
|
├── entrypoint.py -- バッチ処理のエントリーポイントになるpythonファイル
|
|
└── src -- ソースコードの保管場所
|
|
├── aws -- AWS関連処理
|
|
│ └── s3.py -- S3クライアントとバケット処理
|
|
├── db
|
|
│ └── database.py -- データベース操作共通処理
|
|
├── error
|
|
│ └── exceptions.py -- カスタム例外
|
|
├── logging
|
|
│ └── get_logger.py -- ロガー
|
|
├── main.py -- バッチ処理本体。entrypoint.pyから呼びだされる。
|
|
├── manager -- バッチ共通処理(DB操作関連)
|
|
│ └── jskult_hdke_tbl_manager.py -- 日付テーブルの操作クラス
|
|
└── system_var
|
|
├── constants.py -- 定数
|
|
└── environment.py -- 環境変数
|
|
```
|