아파치 스파크 외부 테이블
IT 위키
아파치 스파크 외부 테이블(External Table, Unmanaged Table)은 Spark SQL에서 테이블의 메타데이터만 관리하고, 실제 데이터 파일은 사용자가 지정한 외부 저장소에 보관하는 테이블 유형이다. 이 방식은 데이터의 소유권과 관리를 사용자에게 맡기며, 테이블 삭제 시에도 외부 데이터 파일은 그대로 유지된다.
1 개요[편집 | 원본 편집]
아파치 스파크 언매니지드 테이블은 매니지드 테이블과 달리, 테이블 생성 시 데이터 파일의 저장 위치를 사용자가 직접 지정한다. Spark는 Hive 메타스토어와 연동하여 테이블의 스키마와 메타데이터만 관리하며, 데이터는 HDFS, Amazon S3, 로컬 파일 시스템 등 외부 저장소에 저장된다. 따라서, DROP TABLE 명령어로 언매니지드 테이블을 삭제하면 메타데이터만 제거되고, 실제 데이터 파일은 삭제되지 않는다.
2 특징[편집 | 원본 편집]
- 데이터 소유권 분리
- 언매니지드 테이블은 데이터의 물리적 저장 위치와 소유권을 사용자가 관리하므로, 데이터 파일의 이동, 백업, 보존 등이 사용자 주도로 이루어진다.
- 테이블 삭제 시 데이터 보존
- 테이블을 삭제하더라도 외부 저장소에 있는 데이터 파일은 그대로 남아 있어, 재사용이나 별도 관리가 가능하다.
- 유연한 데이터 관리
- 다양한 외부 저장소와의 연동이 가능하며, 데이터 파일을 다른 애플리케이션과 공유하거나, 여러 테이블에서 재사용할 수 있다.
- 메타데이터 관리
- Spark는 Hive 메타스토어를 통해 테이블의 스키마와 메타데이터만 관리하여, 데이터 접근과 쿼리 실행을 용이하게 한다.
3 생성 및 관리 방법[편집 | 원본 편집]
언매니지드 테이블은 Spark SQL의 CREATE EXTERNAL TABLE 구문을 사용하여 생성할 수 있다. 예제 (SQL):
CREATE EXTERNAL TABLE sales (
order_id INT,
order_date DATE,
amount DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION 'hdfs://path/to/external/data';
위 구문은 sales라는 이름의 언매니지드 테이블을 생성하며, 데이터는 HDFS 상의 지정된 경로에 저장된다.
4 활용 및 응용[편집 | 원본 편집]
언매니지드 테이블은 다음과 같은 경우에 유용하다.
- 외부 데이터 통합
- 이미 존재하는 외부 데이터 파일을 Spark SQL과 연동하여 분석할 때 사용된다.
- 데이터 재사용
- 동일한 데이터 파일을 여러 테이블이나 애플리케이션에서 공유하여 재처리 및 분석에 활용할 수 있다.
- 데이터 보호 및 백업
- 테이블 삭제 시 데이터 파일이 보존되므로, 중요한 데이터의 안전한 보관 및 백업이 가능하다.
5 같이 보기[편집 | 원본 편집]
6 참고 문헌[편집 | 원본 편집]
- Apache Spark 공식 문서, "Spark SQL, DataFrames and Datasets Guide", https://spark.apache.org/docs/latest/sql-programming-guide.html
- Ousterhout, J. (2019). "A Technical Overview of Hive, HBase, and Spark", IEEE Software.