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()