반응형
데이터 마이그레이션 작업에서, Oracle DB의 데이터타입이 적힌 엑셀 파일을 PostgreSQL용 데이터타입으로 변환해야 하는 경우가 많습니다.
이번 글에서는 Python과 Pandas를 이용해 A열에 있는 Oracle 타입을 기준으로 B열에 PostgreSQL 타입을 자동 채우는 방법을 정리했습니다.
import pandas as pd
# 엑셀 파일 경로
file_path = "데이터타입매핑.xlsx"
# 헤더 없는 경우 (엑셀 첫 행이 데이터일 때)
df = pd.read_excel(file_path, header=None)
# Oracle → PostgreSQL 매핑 함수
def map_type(oracle_type):
oracle_type = str(oracle_type).upper()
if oracle_type.startswith("VARCHAR2"):
return "VARCHAR"
elif oracle_type.startswith("CHAR"):
return "CHAR"
elif oracle_type == "NUMBER":
return "NUMERIC"
elif oracle_type == "DATE":
return "TIMESTAMP"
else:
return oracle_type
# B열 생성 (0 = A열, 1 = B열)
df[1] = df[0].apply(map_type)
# 엑셀에 덮어쓰기
df.to_excel(file_path, index=False, header=False)
print("B열(PostgreSQL 타입) 자동 채우기 완료!")
- header=None → 첫 행을 데이터로 인식
- df[0] → A열 데이터
- df[1] → B열(PostgreSQL 타입) 자동 생성
- Oracle NUMBER → PostgreSQL NUMERIC (필요 시 INTEGER/BIGINT 세분화 가능)
- 실행 후 엑셀 파일에 B열이 자동으로 채워집니다.
- 헤더가 있는 경우: df = pd.read_excel(file_path) 후 df['Oracle_Type'] 형식으로 컬럼명 지정 가능
- 데이터 타입 세분화:
- 정수 ID → BIGINT
- 소규모 정수 → INTEGER
- 금액, 소수점 → NUMERIC(15,2)
결론
- Excel → PostgreSQL 데이터타입 변환을 수작업으로 하지 않아도 됨
- Python + Pandas로 자동화 가능
- 누구나 쉽게 엑셀 파일만 준비하면 바로 적용 가능
반응형
'IT > 빅데이타' 카테고리의 다른 글
| PostgreSQL 테이블스페이스 생성 방법 정리 (Rocky Linux / RHEL 기반) (0) | 2025.11.24 |
|---|---|
| [Pandas] iterrows()를 to_dict('records')로 바꾸면 어떤 점이 좋아질까? (0) | 2025.11.18 |
| PGvector 설치하기 (0) | 2025.09.22 |
| Market Intelligence: E-Commerce (0) | 2024.04.05 |
| 데이터 구조 변경에 따른 예외값 설정 (0) | 2023.08.23 |