오라클 19c에서의 Spark 및 하둡 통합 강화 의미

2025. 2. 12. 00:01IT/Oracle

반응형
  • 오라클 19c는 빅데이터 환경에서의 연계 및 분석 성능을 극대화하기 위해 Apache Spark 및 Hadoop과의 통합을 강화하였습니다.
  • 이는 대량 데이터 처리, 실시간 분석, 분산 환경 지원을 필요로 하는 기업 환경에서 중요한 의미를 가집니다.

Spark 및 Hadoop 통합 강화의 주요 내용

오라클 19c는 빅데이터 플랫폼과의 원활한 연계를 위해 다음과 같은 기능을 개선했습니다.

(1) Hadoop Distributed File System(HDFS) 직접 액세스

  • 오라클 데이터베이스에서 HDFS에 저장된 데이터를 직접 읽고 쓸 수 있는 기능이 추가됨.
  • SQL을 통해 Hadoop에 저장된 데이터를 질의할 수 있으며, 이를 통해 ETL(Extract, Transform, Load) 프로세스를 간소화.
  • 기존에는 별도의 커넥터 또는 외부 테이블을 생성해야 했으나, 19c에서는 더욱 원활한 네이티브 연동 가능.

HDFS에서 직접 데이터를 조회하는 예시

SELECT * FROM external_table_on_hdfs;
  • external_table_on_hdfs는 HDFS에 저장된 데이터를 직접 참조하는 외부 테이블.

(2) Oracle Big Data SQL 지원 강화

  • Big Data SQL은 오라클 데이터베이스와 하둡(HDFS), NoSQL 등의 빅데이터 소스 간 SQL을 통해 통합 질의가 가능하도록 지원하는 기술.
  • 기존의 빅데이터 환경에서는 MapReduce 또는 Spark을 사용해 데이터를 변환 후 오라클로 이동해야 했으나, 19c에서는 이를 줄이고 직접 SQL로 데이터 활용이 가능.

Big Data SQL을 활용한 Hadoop + Oracle 통합 쿼리

SELECT a.*, b.*
FROM oracle_table a
JOIN hdfs_external_table b
ON a.id = b.id;

 

  • 하둡에 저장된 데이터(HDFS)를 오라클 SQL 엔진에서 직접 조회 및 조인 가능.

장점

  • 데이터 이동 없이 즉시 분석 가능 → 성능 향상.
  • Spark, Hadoop과의 연계가 강화되어 하이브(Hive) 및 Spark 데이터 소스도 SQL에서 바로 조회 가능.

(3) Oracle + Spark 연계 최적화

  • Apache Spark은 대용량 데이터 처리를 위한 인메모리 분산 처리 프레임워크로, 오라클 19c에서는 Spark와의 연계를 최적화하Spark 엔진에서 직접 오라클 데이터를 읽고 쓸 수 있도록 지원.
  • 이를 통해 ETL 및 실시간 스트리밍 처리 성능을 향상.

Spark에서 오라클 데이터 조회

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("OracleIntegration") \
    .config("spark.jars", "/path/to/ojdbc8.jar") \
    .getOrCreate()

df = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:oracle:thin:@//host:1521/service_name") \
    .option("dbtable", "oracle_table") \
    .option("user", "username") \
    .option("password", "password") \
    .load()

df.show()
  • Spark에서 직접 오라클 테이블을 읽어와서 처리 가능.
  • ETL 과정에서 별도의 변환 없이 오라클 데이터와 Spark 데이터 결합이 가능.

Spark Streaming + Oracle 연계 (실시간 데이터 분석)

from pyspark.sql import SparkSession
from pyspark.sql.functions import *

spark = SparkSession.builder.appName("StreamOracle").getOrCreate()

df = spark.readStream \
    .format("jdbc") \
    .option("url", "jdbc:oracle:thin:@//host:1521/service_name") \
    .option("dbtable", "streaming_table") \
    .option("user", "username") \
    .option("password", "password") \
    .load()

query = df.writeStream.outputMode("append").format("console").start()
query.awaitTermination()

 

  • 오라클 데이터베이스에서 변경된 데이터를 실시간으로 Spark Streaming으로 분석 가능.

(4) Hybrid Partitioned Table 지원

  • 오라클 19c는 Hybrid Partitioned Table(하이브리드 파티션 테이블) 기능을 제공하여 로컬 스토리지와 HDFS를 동시에 사용할 수 있도록 지원.
  • 즉, 오라클의 테이블 일부는 오라클 DB에 저장하고, 일부는 HDFS 또는 Object Storage에 저장 가능.

Hybrid Partitioned Table 예시

CREATE TABLE sales (
    sales_id NUMBER,
    sales_date DATE,
    amount NUMBER
)
PARTITION BY RANGE (sales_date) (
    PARTITION p1 VALUES LESS THAN (DATE '2022-01-01') STORAGE IN 'LOCAL',
    PARTITION p2 VALUES LESS THAN (DATE '2023-01-01') STORAGE IN 'HDFS'
);
  • p1 파티션은 오라클 내부 저장소(Local Storage),
  • p2 파티션은 HDFS에 저장됨.

장점

  • 오라클의 강력한 SQL 기능을 그대로 유지하면서 빅데이터 연동이 가능.
  • 데이터 이동을 최소화하여 스토리지 비용 절감 및 성능 최적화.

오라클 19c의 Spark + Hadoop 통합의 의미


1. 데이터 이동 없이 SQL로 빅데이터 분석 가능

  • 기존 Hadoop/Spark 데이터를 Oracle SQL에서 직접 조회할 수 있어 데이터 이동 필요 없음.
  • 성능 저하 없이 대량 데이터 분석 가능.

2. ETL 및 데이터 처리 속도 향상

  • Spark 엔진에서 오라클 데이터를 직접 활용 가능하여 기존의 복잡한 데이터 변환 과정 없이 실시간 분석 가능
  • Spark Streaming과 연계하여 실시간 스트리밍 데이터 처리 가능.

3. 스토리지 비용 절감

  • Hybrid Partitioned Table을 통해 HDFS, Object Storage 등을 효율적으로 활용 가능.
  • 데이터 이동 없이 필요한 데이터만 오라클에서 직접 조회 가능하여 저장 공간 최적화.

4. 클라우드 및 빅데이터 환경에서 유연한 확장성

  • 클라우드 환경에서 Hadoop과 오라클을 쉽게 연동할 수 있어 하이브리드 클라우드 및 빅데이터 분석이 더욱 유연해짐.

 

반응형