본문 바로가기
Database

EXTERNAL TABLE을 이용한 외부 데이터 처리

by 굿센스굿 2024. 12. 4.
반응형

 

오라클 데이터베이스에서 EXTERNAL TABLE은 데이터베이스 외부에 저장된 파일을 마치 데이터베이스 테이블처럼 사용할 수 있도록 지원하는 기능입니다. 이 기능은 대용량 데이터 처리, 데이터 통합, ETL 작업 등에 유용하며, 데이터를 데이터베이스로 로드하지 않고도 SQL 쿼리를 실행할 수 있어 효율적인 데이터 처리를 제공합니다.

이번 포스팅에서는 EXTERNAL TABLE의 개념, 구성 방법, 장점, 그리고 실무 예제를 통해 외부 데이터를 효과적으로 처리하는 방법을 알아보겠습니다.


1. EXTERNAL TABLE이란?

EXTERNAL TABLE은 데이터베이스 외부에 위치한 데이터를 Oracle SQL을 통해 조회하거나 처리할 수 있도록 해주는 테이블입니다.
이 테이블은 데이터 파일에 직접 액세스하며, 읽기 전용으로 동작합니다. 데이터를 물리적으로 DB에 저장하지 않기 때문에 대규모 데이터 처리에서 유용합니다.

특징:

  • 데이터 파일에 직접 액세스.
  • 데이터 변경 불가(읽기 전용).
  • SQL 쿼리를 통해 일반 테이블처럼 데이터 조회 가능.
  • 데이터 로드 작업 없이도 빠르게 데이터 처리 가능.

2. EXTERNAL TABLE 구성 방법

EXTERNAL TABLE을 사용하려면 다음의 구성 요소가 필요합니다:

  1. 디렉터리 객체 생성: 데이터 파일이 저장된 디렉터리를 오라클 데이터베이스에서 인식할 수 있도록 정의합니다.
  2. 데이터 파일 준비: CSV, TXT 등 외부 데이터를 포함한 파일.
  3. EXTERNAL TABLE 정의: 파일의 구조를 설명하는 테이블을 생성합니다.

(1) 디렉터리 객체 생성

먼저 외부 데이터 파일이 저장된 디렉터리를 오라클에 등록해야 합니다.

CREATE OR REPLACE DIRECTORY ext_table_dir AS '/data/external_files';
GRANT READ, WRITE ON DIRECTORY ext_table_dir TO 사용자명;
  • /data/external_files는 실제 파일 경로입니다.
  • 권한을 부여하여 해당 디렉터리를 사용할 수 있도록 설정합니다.

(2) 데이터 파일 준비

외부 데이터 파일은 CSV, TXT 등으로 준비됩니다. 예를 들어, employee_data.csv라는 파일의 내용은 다음과 같습니다:

101,John Doe,50000
102,Jane Smith,60000
103,Robert Brown,55000

(3) EXTERNAL TABLE 생성

준비된 데이터 파일을 참조하는 테이블을 생성합니다.

CREATE TABLE external_employees (
    emp_id NUMBER,
    emp_name VARCHAR2(100),
    salary NUMBER
)
ORGANIZATION EXTERNAL (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY ext_table_dir
    ACCESS PARAMETERS (
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ',' 
        MISSING FIELD VALUES ARE NULL
    )
    LOCATION ('employee_data.csv')
)
REJECT LIMIT UNLIMITED;
  • ORGANIZATION EXTERNAL: 테이블이 외부 데이터 파일을 참조하도록 정의.
  • ACCESS PARAMETERS: 데이터 파일의 형식 지정.
  • LOCATION: 참조할 데이터 파일의 이름.

3. EXTERNAL TABLE 사용 예시

예시 1: 데이터 조회

외부 테이블에서 데이터를 조회합니다.

SELECT * FROM external_employees;

결과:

EMP_ID EMP_NAME SALARY

101 John Doe 50000
102 Jane Smith 60000
103 Robert Brown 55000

예시 2: 특정 조건 조회

특정 급여 이상인 직원 정보를 조회합니다.

SELECT emp_name, salary 
FROM external_employees
WHERE salary > 55000;

결과:

EMP_NAME SALARY

Jane Smith 60000

예시 3: 외부 데이터와 내부 데이터 결합

외부 테이블과 내부 테이블을 조인하여 데이터를 조회합니다.

SELECT e.emp_name, d.department_name 
FROM external_employees e
JOIN departments d ON e.emp_id = d.manager_id;

결과:

EMP_NAME DEPARTMENT_NAME

John Doe Sales

4. EXTERNAL TABLE의 장점

  1. 성능 최적화
    데이터 로드 작업 없이도 대규모 데이터를 빠르게 처리할 수 있습니다.
  2. 유연한 데이터 관리
    데이터를 데이터베이스에 저장하지 않고도 SQL을 통해 분석할 수 있어 저장 공간을 절약할 수 있습니다.
  3. 통합 작업 간소화
    외부 데이터를 내부 테이블과 쉽게 결합하여 ETL 과정의 복잡성을 줄일 수 있습니다.

5. 주의사항

  • 외부 파일에 문제가 있으면 테이블 조회 시 오류가 발생할 수 있습니다.
  • 외부 테이블은 읽기 전용이므로 데이터를 수정하려면 데이터를 내부 테이블로 로드해야 합니다.

마무리

오라클의 EXTERNAL TABLE 기능은 외부 데이터를 효율적으로 처리할 수 있는 강력한 도구입니다. 대규모 데이터 분석, ETL 작업, 데이터 통합 등 다양한 활용 사례에서 유용하게 사용할 수 있습니다. 이번 포스팅에서 소개한 개념과 예제를 기반으로 실무에서 활용해 보시기 바랍니다.

반응형