Skip to main content

Databricks SQL이란?

💡 Databricks SQL (DBSQL) 은 Delta Lake 위의 데이터를 SQL로 직접 조회하고 분석 할 수 있는 Databricks의 SQL 분석 환경입니다. 별도의 데이터 복사 없이, 레이크하우스 데이터에 대해 웨어하우스급 SQL 성능 을 제공합니다.
전통적인 데이터 웨어하우스(Snowflake, Redshift 등)에서는 원본 데이터를 독자 형식으로 복사 해야 했습니다. Databricks SQL은 이런 복사 과정 없이, 오픈 포맷(Delta Lake) 데이터를 직접 쿼리합니다. 이로써 데이터 사일로(Data Silo)와 ETL 복잡성을 제거하고, 동일한 데이터에 대해 데이터 엔지니어링과 SQL 분석을 하나의 플랫폼에서 수행할 수 있습니다. 전통적 방식 vs Databricks SQL 방식

DBSQL의 핵심 가치


주요 구성 요소


SQL Warehouse 아키텍처

SQL Warehouse는 DBSQL의 컴퓨팅 엔진 입니다. Photon이라는 C++ 네이티브 실행 엔진을 탑재하여 기존 Spark SQL 대비 최대 12배 빠른 성능을 제공합니다. SQL Warehouse 아키텍처

Photon 엔진

Photon은 C++로 작성된 벡터화 쿼리 실행 엔진(Vectorized Query Engine) 입니다.

SQL Warehouse 타입 비교

💡 Serverless SQL Warehouse를 권장하는 이유: 수 초 만에 시작되어 유휴 비용을 최소화하고, Databricks가 인프라를 관리하므로 운영 부담이 없습니다. Predictive I/O 등 최신 최적화 기능도 Serverless에서만 지원됩니다.

기존 데이터 웨어하우스와의 비교


SQL Editor 주요 기능

매개변수 활용 예제

SQL Editor에서 {{parameter}} 구문을 사용하면 동적으로 값을 바꿔가며 쿼리를 실행할 수 있습니다.
💡 매개변수 타입: Text, Number, Date, Date Range, Dropdown 등 다양한 타입을 지원합니다. Dropdown은 미리 정의한 값 목록 또는 쿼리 결과를 선택지로 사용할 수 있습니다.

쿼리 히스토리 및 쿼리 프로필

쿼리 히스토리 (Query History)

실행한 모든 쿼리의 이력, 상태, 실행 시간, 비용(DBU)을 확인할 수 있습니다. 관리자는 워크스페이스 전체의 쿼리 이력을 볼 수 있어 비용 분석과 성능 모니터링 에 유용합니다.

쿼리 프로필 (Query Profile)

개별 쿼리의 실행 계획을 시각적으로 분석 할 수 있습니다. 병목 지점을 찾아 성능을 최적화하는 데 핵심적인 도구입니다.
🆕 Query Tags: SQL Warehouse에서 실행되는 쿼리에 태그를 달아 비즈니스 맥락별로 비용을 추적할 수 있습니다.
🆕 Warehouse Activity Details: SQL Warehouse의 쿼리 활동, 세션, 유휴 상태를 색상 코딩된 시각화로 확인할 수 있습니다.

외부 BI 도구 연동

Databricks SQL은 표준 JDBC/ODBC 프로토콜을 지원하여 대부분의 BI 도구와 연동할 수 있습니다.

지원 BI 도구

JDBC/ODBC 연결 설정

BI 도구에서 SQL Warehouse에 연결하려면 다음 정보가 필요합니다.
💡 연결 정보 확인 방법: SQL Warehouse의 상세 페이지 → Connection Details 탭에서 모든 연결 정보를 확인할 수 있습니다. 각 BI 도구별 설정 가이드 링크도 제공됩니다.

비용 관리 및 최적화

SQL Warehouse 비용은 사용한 DBU(Databricks Unit) 를 기준으로 과금됩니다. 다음 전략으로 비용을 효과적으로 관리할 수 있습니다.

Auto Stop (자동 중지)

유휴 상태가 지속되면 자동으로 Warehouse를 중지하여 비용을 절감합니다.

스케일링 설정

비용 최적화 팁


실습: Warehouse 생성부터 쿼리 실행까지

Step 1: SQL Warehouse 생성 (UI)

  1. 좌측 메뉴에서 SQL Warehouses 클릭
  2. Create SQL Warehouse 클릭
  3. 다음 설정 입력:
    • 이름: my-analytics-warehouse
    • 크기: Small (개발/테스트 용도)
    • Type: Serverless
    • Auto Stop: 10분
    • Min/Max Clusters: 1 / 2
  4. Create 클릭

Step 2: SQL Editor에서 쿼리 실행

Step 3: 쿼리 프로필 확인

  1. 쿼리 실행 후 결과 하단의 Query Profile 탭 클릭
  2. 연산자 트리에서 가장 시간이 오래 걸린 노드 를 확인
  3. Scan 단계에서 읽은 파일 수와 데이터 양을 확인

SQL Warehouse vs All-Purpose Cluster

💡 언제 무엇을 쓸까?: SQL로 데이터를 분석하거나 BI 대시보드를 운영한다면 SQL Warehouse 를 사용하세요. Python/Scala로 ML 모델을 학습하거나 복잡한 ETL을 개발한다면 All-Purpose Cluster 를 사용하세요.

언제 DBSQL을 사용하나요?


정리


참고 링크