From 2a076e69c976ae82b1c852d317fffbc78f60d7f8 Mon Sep 17 00:00:00 2001 From: yono Date: Wed, 28 May 2025 10:27:46 +0900 Subject: [PATCH] =?UTF-8?q?feat:=E4=B8=8D=E8=A6=81=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=89=8A=E9=99=A4=EF=BC=88=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E9=83=A8=E5=88=86=EF=BC=89=E3=80=81?= =?UTF-8?q?readme=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=81=E3=82=A8=E3=83=A9=E3=83=BC=E7=99=BA=E7=94=9F=E6=99=82?= =?UTF-8?q?=E3=81=AE=E3=83=AD=E3=82=B0=E3=83=AC=E3=83=99=E3=83=AB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=81JskultArchiveManager=E3=81=AE=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=81=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=86=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=B3=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E8=BF=BD=E5=8A=A0=E3=80=81SQL=E3=81=AE?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E3=81=AE=E5=80=A4=E3=83=91=E3=83=A9=E3=83=A1?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=AB=E5=A4=89=E6=9B=B4=E3=80=81=E7=84=A1?= =?UTF-8?q?=E9=A7=84=E3=81=AA=E3=82=B9=E3=83=9A=E3=83=BC=E3=82=B9=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-batch-archive-jsk-data/Pipfile | 6 --- ecs/jskult-batch-archive-jsk-data/README.md | 15 +------ .../src/batch/archive_jsk_data.py | 3 +- .../src/batch/jskult_archive_manager.py | 40 +++++++++++-------- 4 files changed, 26 insertions(+), 38 deletions(-) diff --git a/ecs/jskult-batch-archive-jsk-data/Pipfile b/ecs/jskult-batch-archive-jsk-data/Pipfile index 2b56d8c0..12961dde 100644 --- a/ecs/jskult-batch-archive-jsk-data/Pipfile +++ b/ecs/jskult-batch-archive-jsk-data/Pipfile @@ -3,12 +3,6 @@ url = "https://pypi.org/simple" verify_ssl = true name = "pypi" -[scripts] -"test:ultmarc" = "pytest tests/batch/ultmarc/" -"test:ultmarc:cov" = "pytest --cov=src/batch/ultmarc/ --cov-branch --cov-report=term-missing tests/batch/ultmarc/" -"test:vjsk" = "pytest tests/batch/vjsk/" -"test:vjsk:cov" = "pytest --cov=src/batch/vjsk/ --cov-branch --cov-report=term-missing tests/batch/vjsk/" - [packages] boto3 = "*" PyMySQL = "*" diff --git a/ecs/jskult-batch-archive-jsk-data/README.md b/ecs/jskult-batch-archive-jsk-data/README.md index b9a9340c..c5b79335 100644 --- a/ecs/jskult-batch-archive-jsk-data/README.md +++ b/ecs/jskult-batch-archive-jsk-data/README.md @@ -1,4 +1,4 @@ -# 実消化&アルトマーク 日次バッチ +# 実消化過去データアーカイブ処理 ## 概要 @@ -45,19 +45,6 @@ - 実際の処理は、「src/jobctrl_daily.py」で行っている。 -### テスト準備 - -- VSCodeで以下の拡張機能をインストールする - - Python - - Python Test Explorer for Visual Studio Code - - Test Explorer UI -- VSCode 上でショートカット「ctrl」+「shift」+「P」でコマンドパレットを開く -- コマンドパレットの検索窓に「Python」と入力し、「Python: テストを構成する」を押下する -- 現在のワークスペースを選び、「pytest」を選択する -- 「tests」フォルダを選択する -- バックグランドで、pytest モジュールのインストールが始まれば成功 - - ## フォルダ構成 ```text diff --git a/ecs/jskult-batch-archive-jsk-data/src/batch/archive_jsk_data.py b/ecs/jskult-batch-archive-jsk-data/src/batch/archive_jsk_data.py index d9693c98..e02b3da8 100644 --- a/ecs/jskult-batch-archive-jsk-data/src/batch/archive_jsk_data.py +++ b/ecs/jskult-batch-archive-jsk-data/src/batch/archive_jsk_data.py @@ -11,6 +11,7 @@ import zipfile logger = get_logger("実消化_過去データアーカイブ処理") def exec(): + """実消化_過去データアーカイブ処理""" try: logger.info("処理開始:実消化_過去データアーカイブ処理") jskult_archive_manager = JskultArchiveManager() @@ -59,4 +60,4 @@ def exec(): logger.info(f"アーカイブ管理テーブルの更新に成功しました。対象テーブル:{jskult_archive_manage_data['target_table']}") logger.info("処理終了:実消化_過去データアーカイブ処理") except Exception as e: - logger.info(f"異常終了:実消化_過去データアーカイブ処理 {e}") \ No newline at end of file + logger.exception(f"異常終了:実消化_過去データアーカイブ処理 {e}") \ No newline at end of file diff --git a/ecs/jskult-batch-archive-jsk-data/src/batch/jskult_archive_manager.py b/ecs/jskult-batch-archive-jsk-data/src/batch/jskult_archive_manager.py index 033be013..3d027aa9 100644 --- a/ecs/jskult-batch-archive-jsk-data/src/batch/jskult_archive_manager.py +++ b/ecs/jskult-batch-archive-jsk-data/src/batch/jskult_archive_manager.py @@ -8,8 +8,9 @@ class JskultArchiveManager: self._db = Database.get_instance() def get_archive_manage(self): + """対象テーブル、対象項目、対象年月、実行間隔(月)、前回対象年月、保存先を取得""" try: - logger.info("処理開始:アーカイブ管理テーブル取得") + logger.info("処理開始:get_archive_manage") sql = """ select target_table @@ -23,60 +24,65 @@ class JskultArchiveManager: """ self._db.connect() jskult_archive_manage_data = self._db.execute_select(sql) - logger.info("処理終了:アーカイブ管理テーブル取得") + logger.info("処理終了:get_archive_manage") return jskult_archive_manage_data except Exception as e: - logger.info("異常終了:アーカイブ管理テーブル取得") + logger.info("異常終了:get_archive_manage") raise finally: self._db.disconnect() def get_archive_data(self,target_table:str, filter_column:str, filter_date:str): + """アーカイブするデータを取得""" try: - logger.info("処理開始:アーカイブデータ取得") + logger.info("処理開始:get_archive_data") sql = f""" select * from src07.{target_table} where - str_to_date({filter_column},'%Y%m%d') <= '{filter_date}'; + str_to_date({filter_column},'%Y%m%d') <= :filter_date; """ self._db.connect() - target_table_data = self._db.execute_select(sql) - logger.info("処理開始:アーカイブデータ終了") + parameter_dict = {'filter_date' : filter_date} + target_table_data = self._db.execute_select(sql, parameter_dict) + logger.info("処理終了:get_archive_data") return target_table_data except Exception as e: - logger.info("異常終了:アーカイブ管理テーブル取得") + logger.info("異常終了:get_archive_data") raise finally: self._db.disconnect() def delete_archive_data(self, target_table:str, filter_column:str, filter_date:str): + """アーカイブしたデータを削除""" try: - logger.info("処理開始:アーカイブ後データ削除") + logger.info("処理開始:delete_archive_data") sql = f""" delete from src07.{target_table} where - str_to_date({filter_column},'%Y%m%d') <= '{filter_date}'; + str_to_date({filter_column},'%Y%m%d') <= :filter_date; """ self._db.connect() self._db.begin() - self._db.execute(sql) + parameter_dict = {'filter_date' : filter_date} + self._db.execute(sql, parameter_dict) self._db.commit() - logger.info("処理終了:アーカイブ後データ削除") + logger.info("処理終了:delete_archive_data") return except: self._db.rollback() - logger.info("異常終了:アーカイブ後データ削除") + logger.info("異常終了:delete_archive_data") raise finally: self._db.disconnect() def update_archive_manage(self, target_table:str): + """アーカイブ管理テーブルの指定した対象テーブルのレコードを更新する""" try: - logger.info("処理開始:アーカイブ管理テーブル条件年月更新") + logger.info("処理開始:update_archive_manage") sql = f""" update internal07.jskult_archive_manage set @@ -84,7 +90,7 @@ class JskultArchiveManager: , filter_date = LAST_DAY( DATE_ADD(filter_date, INTERVAL run_interval_months MONTH) ) - , upd_user = CURRENT_USER () + , upd_user = CURRENT_USER() , upd_date = NOW() where target_table = '{target_table}'; @@ -93,11 +99,11 @@ class JskultArchiveManager: self._db.begin() self._db.execute(sql) self._db.commit() - logger.info("処理終了:アーカイブ管理テーブル条件年月更新") + logger.info("処理終了:update_archive_manage") return except: self._db.rollback() - logger.info("異常終了:アーカイブ管理テーブル条件年月更新") + logger.info("異常終了:update_archive_manage") raise finally: self._db.disconnect()