2-1. 애플리케이션 SQL 변환 작업 메뉴 상세 분석

메뉴명

애플리케이션 SQL 변환 작업 : SQLID별 변환 ( 전체, 선택, 샘플 )

목적

MyBatis XML 파일 내의 Oracle SQL을 Target DBMS(PostgreSQL/MySQL) SQL로 변환하는 작업을 수행합니다. 사용자가 전체, 선택적, 또는 샘플 모드를 선택하여 변환 범위를 조정할 수 있습니다.

실행 흐름

initOMA.sh 
  → execute_sql_transform() 
    → $OMA_BASE_DIR/bin/processSqlTransform.sh
      → $APP_TOOLS_FOLDER/sqlTransformTarget.py

상세 분석

1. execute_sql_transform() 함수

# 위치: initOMA.sh (271행)
# 실행파일: $OMA_BASE_DIR/bin/processSqlTransform.sh

2. processSqlTransform.sh (핵심 실행 스크립트)

# 위치: $OMA_BASE_DIR/bin/processSqlTransform.sh
# 주요 기능: SQL 변환 작업 모드 선택 및 실행
# 실행명령: python3 $APP_TOOLS_FOLDER/sqlTransformTarget.py [옵션]

3. 주요 환경변수 매핑

# 입력 관련 환경변수
APPLICATION_NAME            # 프로젝트명
APP_TOOLS_FOLDER           # 애플리케이션 도구 폴더 경로
APP_TRANSFORM_FOLDER       # 변환 작업 폴더 경로

# 출력 관련 환경변수  
APP_TRANSFORM_FOLDER       # 변환 결과 저장 폴더

# 기타 설정 환경변수
OMA_BASE_DIR              # OMA 기본 디렉토리

4. 작업 단계

4.1 실행 모드 선택

  • 선별적 변환 (모드 1): SQLTransformTargetSelective.csv의 항목만 재변환 (사용자 임의 선택 변환)
  • 전체 변환 (모드 2): SQLTransformTarget.csv의 모든 미완료 항목 변환 (Sample 변환 대상은 별도 처리하므로 제외)
  • 샘플 변환 (모드 3): SampleTransformTarget.csv의 샘플 항목만 변환 (테스트 목적)

4.2 변환 기준

  • 그룹 단위 처리: 10개의 SQLID를 1개의 Group으로 묶어서 변환 수행
  • 파일 크기 고려: 파일 사이즈가 큰 경우는 소수 그룹으로 묶어서 수행
  • 배치 크기 조정: 시스템 성능과 파일 크기에 따라 배치 크기 자동 조정

4.3 SQL 변환 프로세스

  • XML 파일에서 SQL 추출 (xmlExtractor.py)
  • Oracle SQL을 Target DBMS SQL로 변환 (Amazon Q Chat 활용)
  • 변환된 SQL을 XML에 병합 (xmlMerger.py)
  • 변환 결과 검증 (xmllint 유효성 검사)

4.4 배치 처리 및 상태 관리

  • XML별 고유 배치 ID 생성 (xmlname000001 형식)
  • 체크포인트 기능으로 중단된 지점부터 재시작 가능
  • 배치별 상태 관리 및 진행 상황 추적

결과 파일

변환 결과 파일

# 출력 경로: $APP_TRANSFORM_FOLDER

1. SQLTransformTarget.csv           # 전체 변환 대상 목록
2. SQLTransformTargetSelective.csv  # 선별적 변환 대상 목록
3. SampleTransformTarget.csv        # 샘플 변환 대상 목록
4. [XML파일명]_tgt.xml              # 변환된 MyBatis XML 파일들
5. transform_progress.json          # 변환 진행 상황 추적 파일
6. batch_status.txt                 # 배치 상태 관리 파일

로그 파일

# 출력 경로: $APPLICATION_FOLDER/logs

1. sqlTransform_[timestamp].log     # SQL 변환 작업 로그
2. batch_[batchid].log             # 배치별 상세 로그

환경 변수 의존성

필수 환경변수

  • 프로젝트 설정: APPLICATION_NAME, APPLICATION_FOLDER
  • 도구 경로: APP_TOOLS_FOLDER, APP_TRANSFORM_FOLDER
  • 기본 경로: OMA_BASE_DIR

선택적 환경변수

  • 로깅: LOG_LEVEL, VERBOSE_MODE

사전 조건

  • 애플리케이션 분석 완료 (1-1, 1-2 단계)
  • SQLTransformTarget.csv 파일 존재
  • MyBatis XML 파일들이 분석되어 있어야 함
  • Amazon Q Chat 환경 설정 완료

다음 단계

이 단계의 결과물은 다음 단계들에서 사용됩니다:

  • 2-2. Post 변환 작업: 변환된 XML 파일의 후처리
  • 2-3. SQL 변환 Merge: 변환된 SQL들의 병합 처리
  • 3-1. XML List 생성: Unit Test용 XML 목록 생성
  • 3-2. SQL Unit Test: 변환된 SQL의 테스트 수행

주요 특징

  • 배치 처리: 대용량 XML 파일을 효율적으로 처리하기 위한 배치 시스템
  • 체크포인트: 중단된 지점부터 재시작 가능한 복구 기능
  • 모드 선택: 전체/선택적/샘플 변환 모드 지원
  • 상태 관리: XML별 고유 배치 ID와 상태 추적
  • AI 활용: Amazon Q Chat을 활용한 지능형 SQL 변환
  • 검증 기능: xmllint를 통한 변환 결과 유효성 검사
  • 그룹 단위 처리: 10개 SQLID 단위로 그룹화하여 효율적 변환

중요 주의사항

⚠️ Sample 변환을 먼저 수행하는 것을 강력히 추천합니다.

  • 전체 변환 작업 전에 샘플 변환(모드 3)을 통해 변환 품질과 시스템 성능을 사전 검증
  • 변환 규칙과 환경 설정의 정확성을 확인할 수 있음
  • 대용량 변환 작업 시 발생할 수 있는 문제를 미리 파악 가능

⚠️ 전체 변환 모드 처리 방식

  • 전체 변환(모드 2)에서 SQLTransformTarget.csv는 Sample 변환에 대해서는 별도 처리하는 형태로 간주
  • Sample 변환으로 처리된 항목들은 전체 변환 시 제외되어 중복 처리되지 않음

Back to top

Copyright © 2024 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.