Не удалось загрузить сжатые csv-файлы в корзину s3 через Python

#python-3.x

Вопрос:

Я пытаюсь извлечь и загрузить около 50 zip-файлов из корзины s3 в базу данных Oracle с помощью Python. Каждый файл размером около 80 МБ заархивирован и содержит один csv (400 МБ несжатого csv). Процесс завершается неудачно после загрузки около 9 файлов с сообщением «Убит». Код выполняется на экземпляре Linux EC2 и выглядит следующим образом.

     # This function gets list of files in s3 bucket
    s3_files_list = get_files_from_s3(p_bucket_object=bucket_object, p_prefix=file_prefix)
    if s3_files_list:
        try:
            files_exist = True

            #Creating database 
            connection, cursor = db_oracle_connection() 
            # Start Processing files
            for source_file in s3_files_list:
                source_file_name = source_file.split('/')[-1]
                logging.info(f"Loading file {source_file_name}.")
                zip_obj = bucket_object.Object(bucket_name=BUCKET_NAME, key=source_file)
                buffer = BytesIO(zip_obj.get()["Body"].read())
                zip_file = ZipFile(buffer)

                for filename in zip_file.namelist():
                    with zip_file.open(filename, 'r') as extract_file:
                        logging.info(f"Writing file {filename}")
                        file_reader = DictReader(TextIOWrapper(extract_file, 'utf-8'), delimiter=',', quotechar='"')
                        if prefixes == TPT_PREFIX:
                            file_reader.fieldnames.append('PTIPS_FILE_NAME')

                        # store no of total columns in csv
                        file_col_count = len(file_reader.fieldnames)

                        insert_statement = f"Insert into {target_table} ({','.join(x for x in file_reader.fieldnames)}) " 
                                           f"values ({','.join(':'   str(k) for k in range(1, file_col_count   1))})"
                        logging.info(f"Inserting data into {target_table}")

                        # store no of total rows in csv
                        file_row_count = 0
                        files_data = []
                        try:
                            for line in file_reader:
                                if prefixes == TPT_PREFIX:
                                    line['PTIPS_FILE_NAME'] = source_file_name
                                files_data.append(tuple(line.values()))
                                file_row_count  = 1
                                #BATCH_SIZE = 10000
                                if len(files_data) % BATCH_SIZE == 0:
                                    cursor.executemany(insert_statement, files_data)
                                    files_data = []
                            if files_data:
                                cursor.executemany(insert_statement, files_data)
                            logging.info(f"Total row count {file_row_count}")

                        except Exception as error_load:
                            connection.rollback()                                
                        else:
                            connection.commit()
                zip_file.close()
 

Не мог бы кто-нибудь, пожалуйста, помочь решить эту проблему.