빅데이터/Databricks

Databricks Photon 엔진이란?

네야_IT 2025. 10. 13. 17:56
반응형

Photon은 Databricks에 내장된 차세대 벡터화 쿼리 엔진으로, SQL과 DataFrame 워크로드를 훨씬 더 빠르고 효율적으로 실행해주는 엔진입니다. Apache Spark API와 완벽하게 호환되기 때문에 기존 코드를 수정할 필요 없이 바로 사용할 수 있습니다.

 


🔹 왜 중요한가?

  • 성능 향상: 쿼리, 집계, 조인 등을 기존 Spark 엔진보다 빠르게 처리
  • 비용 절감: 실행 시간이 짧아져서 전체 워크로드당 비용이 줄어듬on은 Databricks에 내장된 차세대 벡터화 쿼리 엔진으로, SQL과 DataFrame 워크로드를 훨씬 더 빠르고 효율적으로 실행해주는 엔진입니다. Apache Spark API와 완벽하게 호환되기 때문에 기존 코드를 수정할 필요 없이 바로 사용할 수 있습니다.

🔹 왜 중요한가?

성능 향상: 쿼리, 집계, 조인 등을 기존 Spark 엔진보다 빠르게 처리

비용 절감: 실행 시간이 짧아져서 전체 워크로드당 비용이 줄어듦


 

🔹 주요 특징

  • Delta Lake와 Parquet 포맷 완벽 지원
  • SQL 및 DataFrame 연산 가속화
  • 디스크 캐시를 반복적으로 읽을 때도 더 빠른 성능 제공
  • 컬럼이 많은 테이블이나 작은 파일이 많은 경우에도 강력한 스캔 성능
  • UPDATE, DELETE, MERGE, INSERT, CTAS 같은 쓰기 작업 성능 최적화
  • 기존의 Sort-Merge Join 대신 Hash Join 사용 → 더 빠른 조인
  • AI/ML 작업 최적화: Spark SQL, DataFrame 기반 전처리, GraphFrames, xgboost4j 등 성능 개선

🔹 Photon 사용 가능 여부 (Enablement)

  • 기본 활성화
    • SQL 웨어하우스(SQL Warehouses)
    • 노트북/워크플로우용 서버리스 컴퓨트(Serverless Compute)
    • Databricks Runtime 9.1 LTS 이상의 컴퓨트
  • 수동 활성화 필요
    • Databricks Runtime 15.2 ML (EoS) 이상
    • Compute UI에서 “Use Photon Acceleration” 체크박스를 선택하여 활성화 가능
  • Clusters API나 Jobs API로 생성된 클러스터
    • 기본적으로 Photon이 꺼져 있음
    • runtime_engine 속성을 PHOTON으로 지정해야 활성화됨

 


🔹 지원되는 인스턴스 타입

  • Photon은 특정 드라이버/워커 인스턴스 타입을 지원
  • 같은 인스턴스여도 Photon 런타임에서는 DBU 소비량이 달라짐
  • 자세한 내용은 Databricks 가격 페이지 참고

 


🔹 지원되는 연산자, 표현식, 데이터 타입

✔ Operators (연산자)

  • Scan, Filter, Project
  • Hash Aggregate / Join / Shuffle
  • Nested-Loop Join
  • Null-Aware Anti Join
  • Union, Expand, Scalar Subquery
  • Delta / Parquet Write Sink
  • Sort
  • Window Function

✔ Expressions (표현식)

  • 비교/논리 연산
  • 산술/수학 연산 (대부분)
  • 조건문 (IF, CASE 등)
  • 문자열 처리 (자주 쓰는 함수들)
  • 형 변환 (Casts)
  • 집계 함수 (대부분)
  • 날짜/타임스탬프

✔ Data Types (데이터 타입)

  • Byte / Short / Int / Long
  • Boolean
  • String / Binary
  • Decimal
  • Float / Double
  • Date / Timestamp
  • Struct
  • Array
  • Map

 


🔹 Photon 필수 기능 (Photon 전용)

  • Predictive I/O (읽기/쓰기 성능 최적화)
  • H3 지리공간 표현식 (H3 geospatial functions)
  • MERGE, UPDATE, DELETE 문에서의 동적 파일 프루닝(Dynamic File Pruning)

 


🔹 제한 사항 (Limitations)

  • Structured Streaming
    • Delta, Parquet, CSV, JSON → Stateless Streaming 지원
    • Kafka / Kinesis → Delta 또는 Parquet sink에 쓸 때 지원
  • 지원 안 되는 것들
    • UDFs (사용자 정의 함수)
    • RDD API
    • Dataset API
  • 쿼리가 2초 이내에 끝나는 경우 → Photon 성능 차이 없음
  • 지원하지 않는 연산에 도달하면 → 해당 워크로드는 자동으로 표준 런타임 엔진으로 전환
반응형