From 938a0953309099c033862292e73e7a5411eb6282 Mon Sep 17 00:00:00 2001 From: *lcOeIaePm0 Date: Fri, 12 Nov 2021 10:08:00 +0900 Subject: [PATCH] =?UTF-8?q?fix:=E6=8A=95=E5=85=A5=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E3=81=AE=E3=83=87=E3=83=BC=E3=82=BF=E9=A0=85=E7=9B=AE?= =?UTF-8?q?=E9=A0=86=E5=BA=8F=E3=81=8C=E5=A4=89=E6=9B=B4=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=82=82=E6=AD=A3=E5=B8=B8=E3=81=AB=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E7=99=BB=E9=8C=B2=E3=81=8C=E3=81=A7=E3=81=8D=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/Dockerfile/dataimport/main.py | 62 ++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/ecs/Dockerfile/dataimport/main.py b/ecs/Dockerfile/dataimport/main.py index 2420551e..bc5363ad 100644 --- a/ecs/Dockerfile/dataimport/main.py +++ b/ecs/Dockerfile/dataimport/main.py @@ -9,9 +9,6 @@ from common import debug_log # 定数 DIRECTORY_WORK = '/work/' -DELETE_FLG = 'delete_flg' -UPDATE_USER = 'upd_user' -UPDATE_DATE = 'upd_date' LOG_LEVEL = {"i": 'Info', "e": 'Error', "w": 'Warning'} SETTINGS_ITEM = { 'dataSource': 0, @@ -114,13 +111,23 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf process_count += 1 # SQL文生成 - sql = f'INSERT INTO {settings_list[SETTINGS_ITEM["loadSchemaName"]]} VALUES (' + settings_db_columu_list = settings_list[SETTINGS_ITEM["dbColumuName"]].rstrip().split(',') + sql = f'INSERT INTO {settings_list[SETTINGS_ITEM["loadSchemaName"]]} (' + for i in range(len(settings_db_columu_list)): + sql = f'{sql} {settings_db_columu_list[i]},' + sql = f'{sql} file_name,' # システム項目:取込ファイル名 + sql = f'{sql} file_row_cnt,' # システム項目:取込ファイル行番号 + sql = f'{sql} delete_flg,' # システム項目:論理削除フラグ + sql = f'{sql} ins_user,' # システム項目:登録者 + sql = f'{sql} ins_date,' # システム項目:登録日時 + sql = f'{sql} upd_user,' # システム項目:更新者 + sql = f'{sql} upd_date)' # システム項目:更新日時 + sql = f'{sql} VALUES (' for i in range(len(line)): replace_line = line[i].replace('\\', '\\\\') sql = f'{sql} "{replace_line}",' - sql = f'{sql} "{target_file_name}",' # システム項目:取込ファイル名 - sql = f'{sql} "{index}",' # システム項目:取込ファイル行番号 + sql = f'{sql} "{index + 1}",' # システム項目:取込ファイル行番号 sql = f'{sql} "0",' # システム項目:論理削除フラグ sql = f'{sql} CURRENT_USER(),' # システム項目:登録者 sql = f'{sql} CURRENT_TIMESTAMP(),' # システム項目:登録日時 @@ -129,6 +136,8 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf index += 1 + debug_log(sql, log_info, mode) + # ロードスキーマのトランザクション開始 with conn.cursor() as cur: cur.execute(sql) @@ -148,20 +157,39 @@ def main(bucket_name, target_data_source, target_file_name, settings_key, db_inf print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-MAIN-08 - ロードスキーマ({settings_list[SETTINGS_ITEM["loadSchemaName"]]})のデータを蓄積スキーマ({settings_list[SETTINGS_ITEM["storageSchemaName"]]})に登録します') # SQL文生成 - sql = f'INSERT INTO {settings_list[SETTINGS_ITEM["storageSchemaName"]]}' - sql = f'{sql} SELECT t.*' + sql = f'INSERT INTO {settings_list[SETTINGS_ITEM["storageSchemaName"]]} (' + for i in range(len(settings_db_columu_list)): + sql = f'{sql} {settings_db_columu_list[i]},' + sql = f'{sql} file_name,' # システム項目:取込ファイル名 + sql = f'{sql} file_row_cnt,' # システム項目:取込ファイル行番号 + sql = f'{sql} delete_flg,' # システム項目:論理削除フラグ + sql = f'{sql} ins_user,' # システム項目:登録者 + sql = f'{sql} ins_date,' # システム項目:登録日時 + sql = f'{sql} upd_user,' # システム項目:更新者 + sql = f'{sql} upd_date)' # システム項目:更新日時 + sql = f'{sql} SELECT' + for i in range(len(settings_db_columu_list)): + sql = f'{sql} t.{settings_db_columu_list[i]},' + sql = f'{sql} t.file_name,' # システム項目:取込ファイル名 + sql = f'{sql} t.file_row_cnt,' # システム項目:取込ファイル行番号 + sql = f'{sql} t.delete_flg,' # システム項目:論理削除フラグ + sql = f'{sql} t.ins_user,' # システム項目:登録者 + sql = f'{sql} t.ins_date,' # システム項目:登録日時 + sql = f'{sql} t.upd_user,' # システム項目:更新者 + sql = f'{sql} t.upd_date' # システム項目:更新日時 sql = f'{sql} FROM {settings_list[SETTINGS_ITEM["loadSchemaName"]]} as t' sql = f'{sql} ON DUPLICATE KEY UPDATE' - settings_db_columu_list = settings_list[SETTINGS_ITEM["dbColumuName"]].rstrip().split(',') for i in range(len(settings_db_columu_list)): - if settings_db_columu_list[i] == DELETE_FLG: - sql = f'{sql} {settings_db_columu_list[i]}={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.{settings_db_columu_list[i]},' # システム項目:論理削除フラグ - elif settings_db_columu_list[i] == UPDATE_USER: - sql = f'{sql} {settings_db_columu_list[i]}={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.{settings_db_columu_list[i]},' # システム項目:更新者 - elif settings_db_columu_list[i] == UPDATE_DATE: - sql = f'{sql} {settings_db_columu_list[i]}={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.{settings_db_columu_list[i]}' # システム項目:更新日時 - else: - sql = f'{sql} {settings_db_columu_list[i]}=t.{settings_db_columu_list[i]},' + sql = f'{sql} {settings_db_columu_list[i]}=t.{settings_db_columu_list[i]},' + sql = f'{sql} file_name=t.file_name,' # システム項目:取込ファイル名 + sql = f'{sql} file_row_cnt=t.file_row_cnt,' # システム項目:取込ファイル行番号 + sql = f'{sql} delete_flg={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.delete_flg,' # システム項目:論理削除フラグ + sql = f'{sql} ins_user=t.ins_user,' # システム項目:登録者 + sql = f'{sql} ins_date=t.ins_date,' # システム項目:登録日時 + sql = f'{sql} upd_user={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.upd_user,' # システム項目:更新者 + sql = f'{sql} upd_date={settings_list[SETTINGS_ITEM["storageSchemaName"]]}.upd_date' # システム項目:更新日時 + + debug_log(sql, log_info, mode) # トランザクション開始 print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-MAIN-09 - 標準SQL:{settings_list[SETTINGS_ITEM["storageSchemaName"]]} のトランザクションを開始します')