Databricks의 데이터 엔지니어링 기초

Databricks 개념

Kevin Barlow

Data Practitioner

메달리온 아키텍처

메달리온 아키텍처 다이어그램

Databricks 개념

데이터 읽기

Spark는 매우 유연하며 다양한 데이터 소스/유형을 읽을 수 있습니다.

주요 데이터 소스와 유형:

  • Delta 테이블
  • 파일 형식(CSV, JSON, Parquet, XML)
  • 데이터베이스(MySQL, Postgres, EDW)
  • 스트리밍 데이터
  • 이미지/비디오

데이터 소스 - 파일 형식

데이터 소스 - 데이터베이스

데이터 소스 - 새로운 형식

Databricks 개념

데이터 읽기

Spark는 매우 유연하며 다양한 데이터 소스/유형을 읽을 수 있습니다.

주요 데이터 소스와 유형:

  • Delta 테이블
  • 파일 형식(CSV, JSON, Parquet, XML)
  • 데이터베이스(MySQL, Postgres, EDW)
  • 스트리밍 데이터
  • 이미지/비디오
#Delta table
spark.read.table()
#CSV files
spark.read.format('csv').load('*.csv')
#Postgres table
spark.read.format("jdbc")
  .option("driver", driver)
  .option("url", url)
  .option("dbtable", table)
  .option("user", user)
  .option("password", password)
  .load()
Databricks 개념

Delta 테이블 구조

Delta 테이블은 오픈 파일 포맷에 테이블과 같은 특성을 제공합니다.

  • 읽을 때 테이블처럼 동작
  • 기본 파일(Parquet, JSON)에 접근 가능

Delta 구조

Databricks 개념

Delta Lake 구조 설명

레시피 카드 - 음식 사진

레시피 카드 - 재료와 단계

Databricks 개념

DataFrame

DataFrame은 2차원 데이터 표현입니다.

  • 표와 비슷한 형태와 사용감
  • 여러 도구에서 공통 개념
    • Spark(기본), pandas, dplyr, SQL 쿼리
  • 대부분의 데이터 처리의 기반 구조
id customerName bookTitle
1 John Data Guide to Spark
2 Sally Bricks SQL for Data Engineering
3 Adam Delta Keeping Data Clean
df = (spark.read
  .format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("/data.csv"))
Databricks 개념

데이터 쓰기

Databricks의 테이블 종류

  1. 관리형 테이블
    • 기본 유형
    • Unity Catalog에 저장
    • Databricks에서 관리
  2. 외부 테이블
    • 다른 위치에 저장
    • LOCATION 설정
    • 고객이 관리
df.write.saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
AS ...
df.write
  .location('').saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
LOCATION "<path>" 
AS ...
Databricks 개념

연습해 봅시다!

Databricks 개념

Preparing Video For Download...