가장 확실한 방법은 CSV 파일의 데이터를 다시 데이터베이스에 삽입하여 데이터베이스의 원래 스키마를 사용해 데이터 타입을 복원하는 것입니다.
먼저 CSV 파일을 데이터베이스의 임시 테이블에 가져옵니다. 임시 테이블의 모든 컬럼을 문자열 타입으로 설정합니다.
sql코드 복사
CREATE TABLE temp_table (
col1 VARCHAR(255),
col2 VARCHAR(255),
col3 VARCHAR(255),
...
);
CSV 파일을 임시 테이블에 로드합니다. 예를 들어 MySQL에서는 다음과 같이 할 수 있습니다.
sql코드 복사
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE temp_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
원래 테이블로 데이터를 삽입하면서 필요한 데이터 타입으로 변환합니다.
sql코드 복사
INSERT INTO original_table (col1, col2, col3, ...)
SELECT
CAST(col1 AS INT),
CAST(col2 AS DECIMAL(10, 2)),
col3, -- 이미 문자열인 경우
...
FROM temp_table;
CSV 파일을 Pandas 데이터프레임으로 불러와 각 컬럼의 데이터 타입을 변환할 수 있습니다.
python코드 복사
import pandas as pd
# CSV 파일 불러오기
df = pd.read_csv('/path/to/your/file.csv')
# 각 컬럼의 데이터 타입 변환
df['col1'] = df['col1'].astype(int)
df['col2'] = df['col2'].astype(float)
df['col3'] = df['col3'].astype(str)
# 변환된 데이터프레임을 새로운 CSV 파일로 저장
df.to_csv('/path/to/your/new_file.csv', index=False)
DBeaver와 같은 도구에서는 CSV 파일을 불러온 후 직접 데이터 타입을 변경할 수 있습니다.
DBeaver에서 CSV 파일을 임포트합니다.
Excel을 사용하여 데이터 타입을 변환한 후 CSV로 저장할 수도 있습니다.
Excel에서 CSV 파일을 엽니다.
각 셀 또는 컬럼의 데이터 타입을 변경합니다. 예를 들어, 숫자 데이터는 "숫자" 형식으로 변경합니다.
다시 CSV 파일로 저장합니다.
위의 방법 중 하나를 선택하여 CSV 파일의 데이터를 원래 데이터 타입으로 복원할 수 있습니다. 데이터베이스에 다시 삽입하여 변환하는 방법이 가장 확실하지만, Python을 사용하거나 DBeaver, Excel 등의 도구를 이용하여 변환하는 방법도 상황에 따라 유용할 수 있습니다.