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"]]} のトランザクションを開始します')