본문 바로가기
Data Migration 개요

데이터 마이그레이션 과정에서 데이터 클린징(Data Cleansing)

by save-time 2024. 8. 17.

데이터 클린징(Data Cleansing)은 데이터 마이그레이션 과정에서 데이터의 품질을 높이기 위해 필수적인 단계입니다. 데이터 클린징은 데이터의 정확성, 일관성, 완전성, 유효성을 보장하기 위해 데이터를 정제하고 오류를 수정하는 과정입니다. 데이터 클린징이 제대로 이루어지지 않으면 데이터 마이그레이션 후에 데이터 품질 문제가 발생할 수 있습니다.

 


데이터 클린징의 주요 목적

정확성 향상 데이터의 오류를 수정하고, 잘못된 값을 교정하여 데이터의 정확성을 높입니다.
일관성 유지 다양한 데이터 소스나 시스템 간의 데이터 일관성을 유지합니다.
완전성 확보 데이터에 결측값이나 누락된 정보를 추가하여 데이터를 완전하게 만듭니다.
유효성 보장 데이터가 정의된 형식과 비즈니스 규칙에 맞도록 변환합니다.


데이터 클린징의 주요 단계


1. 데이터 분석

데이터 프로파일링: 데이터의 현재 상태를 분석하여 데이터의 품질 문제를 식별합니다. 데이터의 분포, 패턴, 결측값 등을 검토합니다.

-- 데이터 프로파일링 예시

SELECT column_name, COUNT(*), COUNT(DISTINCT column_name) AS unique_count
FROM source_table
GROUP BY column_name;


문제 식별: 데이터의 오류, 중복, 불일치, 결측값 등을 파악하여 클린징이 필요한 영역을 정의합니다.

-- 결측값 검출 예시

SELECT COUNT(*) AS missing_values
FROM source_table
WHERE column_name IS NULL;

 

2. 데이터 정제

중복 제거: 데이터에서 중복된 레코드를 찾아 제거합니다. 중복 데이터를 식별하고 통합하여 데이터를 정제합니다.

-- 중복 데이터 제거 예시

DELETE FROM source_table
WHERE rowid NOT IN (
    SELECT MIN(rowid)
    FROM source_table
    GROUP BY column_name
);



형식 변환: 데이터의 형식을 표준화하여 일관되게 유지합니다. 날짜 형식, 전화번호 형식 등을 일관되게 변환합니다.

-- 날짜 형식 변환 예시

UPDATE source_table
SET date_column = TO_DATE(date_column, 'YYYY-MM-DD')
WHERE date_column IS NOT NULL;



값 수정: 잘못된 값이나 비즈니스 규칙에 맞지 않는 값을 수정합니다. 예를 들어, 잘못된 코드나 오류를 교정합니다.

-- 값 수정 예시

UPDATE source_table
SET column_name = 'CorrectValue'
WHERE column_name = 'IncorrectValue';



결측값 처리: 결측값을 처리하여 데이터의 완전성을 확보합니다. 결측값을 적절한 값으로 대체하거나, 결측값이 있는 레코드를 제거합니다.

-- 결측값 대체 예시

UPDATE source_table
SET column_name = 'DefaultValue'
WHERE column_name IS NULL;


3. 데이터 검증


클린징 후 검증: 클린징 작업이 완료된 후 데이터의 정확성, 일관성, 완전성을 다시 검토하여 클린징 작업의 효과를 확인합니다.

-- 데이터 검증 예시

SELECT COUNT(*) AS remaining_issues
FROM source_table
WHERE column_name IS NULL OR column_name = 'IncorrectValue';



비즈니스 규칙 검증: 비즈니스 규칙에 맞는지 검증합니다. 비즈니스 요구 사항에 따라 데이터를 확인하고 조정합니다.

-- 비즈니스 규칙 검증 예시

SELECT *
FROM source_table
WHERE age < 0 OR age > 120;


4. 데이터 통합

데이터 통합: 다양한 소스에서 가져온 데이터를 통합하여 일관된 데이터 세트를 생성합니다. 데이터 통합 과정에서 중복을 제거하고, 데이터를 정렬합니다.

-- 데이터 통합 예시

INSERT INTO target_table (column1, column2)
SELECT column1, column2
FROM source_table1
UNION
SELECT column1, column2
FROM source_table2;


데이터 클린징 도구 및 기술

 

ETL 도구 데이터 추출(Extract), 변환(Transform), 적재(Load) 과정에서 데이터 클린징 기능을 제공하는 도구입니다. 예를 들어, Talend, Informatica, Microsoft SSIS 등이 있습니다.
데이터 품질 도구 데이터 품질을 모니터링하고 클린징 기능을 제공하는 도구입니다. 예를 들어, Informatica Data Quality, IBM InfoSphere QualityStage 등이 있습니다.
스크립트 및 SQL:  직접 SQL 쿼리나 스크립트를 작성하여 데이터 클린징 작업을 수행할 수 있습니다.

 

데이터 클린징의 예시

예시 1: 중복 데이터 제거

-- 중복 데이터 제거

DELETE FROM source_table
WHERE rowid NOT IN (
    SELECT MIN(rowid)
    FROM source_table
    GROUP BY column_name
);


예시 2: 형식 변환

-- 날짜 형식 변환

UPDATE source_table
SET date_column = TO_DATE(date_column, 'YYYY-MM-DD')
WHERE date_column IS NOT NULL;


예시 3: 결측값 처리

-- 결측값 대체

UPDATE source_table
SET column_name = 'DefaultValue'
WHERE column_name IS NULL;


요약

데이터 클린징은 데이터 마이그레이션에서 데이터의 정확성, 일관성, 완전성, 유효성을 보장하기 위해 수행하는 과정입니다. 데이터 분석, 정제, 검증, 통합 단계를 통해 데이터의 품질을 향상시키며, 데이터 마이그레이션 후에 신뢰성 있는 데이터를 확보할 수 있습니다. 데이터 클린징을 통해 오류를 수정하고, 일관성을 유지하며, 비즈니스 요구 사항을 충족하는 고품질 데이터를 생성하는 것이 목표입니다.