azure databricks 기초6 - deltatable

hyeok2·2024년 12월 26일

databricks

목록 보기
6/6
post-thumbnail

데이터브릭스의 핵심 중 하나인 deltatable을 불러오는 방법 및 메타스토어 관련으로 포스팅을 하고자한다.

1. 테이블 불러오기 (metastore 등록유무에 따라 다를수 있다.)

기존 마운트 된 블롭스토리지에서 델타테이블을 만들었던 것과 동일한 방법으로 진행한다고 생각하면 수월하다.

1.1 메타스토어에 등록되어있지 않은경우

만약 메타스토어에 델타테이블이 등록되어있지 않지만, dbfs에서 조회가능한 mount가 되어있는 블롭스토리지 내부에 저장되어있다면 다음과 같이 테이블을 불러올 수 있다.

# Delta 테이블 불러오기 (파일 시스템 경로를 통해)
delta_table = spark.read.format("delta").load("/path/to/delta-table")

# 테이블 데이터 확인
delta_table.show()

여기서 show()를 사용했지만, 테이블 형태로 제대로 보고싶다면 display()를 추천한다.
추가로 display(delta_table)과 같은 형태도 사용이 가능하다.

1.2 메타스토어에 등록되어있는경우

메타스토어에 등록되어있는 경우라면, catalog에서 확인한 후 테이블을 불러올 수 있다.
이때, 좋은 점이라고 한다면 스키마.테이블명으로 비교적 간단한 조회가 가능하다는 점이다.

# Spark 세션 생성
spark = SparkSession.builder.appName("DeltaTableExample").getOrCreate()

# Delta 테이블 불러오기 (메타스토어에 등록된 경우)
delta_table = spark.table("스키마명.테이블명")

# 테이블 데이터 확인
delta_table.show()

1.3 메타스토어에 테이블을 생성하는 방법

1.1에서 조회하였을때 값이 제대로 나왔다면, CREATE TABLE을 이용하여 메타스토어에 테이블을 등록할 수 있다.
이로써 가장 기본이 되는 테이블 생성 및 조회를 알아보았다.

-- 기존 테이블을 메타스토어에 등록
CREATE TABLE 스키마명.테이블명
USING delta
LOCATION '/path/to/delta-table';

2. 델타테이블 이용하는 장점

장점이라면... spark를 몰라도 spark table을 생성하여 sql을 이용해서 바로 조회 및 데이터를 추출하는게 가능하다는점?

이게 큰 장점이라고 생각한다.
처음에는 pyspark를 이용하여 처리하는 코드를 다 작성해놓았는데, 새로운 PO의 요청사항에 따라서, 해당코드들을 모두 SQL로 변경하였다.
-> 이유는 현업(sales 담당자)들이 python을 배우는 장벽이 클 것이라는 우려 때문이었다.
이전까지만해도 나는 python과 비슷하니까 쉬울 것이다라고만 생각했는데, enduser가 무언가를 배울 여유가 되지 않는다면, SQL만으로도 처리할 수 있는 것이 참 좋은 방법일 수도 있겠구나라는 것을 깨달았다.

즉, 성능(Compute를 사용하는 시간 단축) < 비용(교육 및 시간) 일 수도 있다.

비용을 산정할때 고려해야하는 사항이 늘어날 수도 있다는 점을 알게된 프로젝트였다.

profile
땅을 파다보면 흙과 물을 보겠지만, 코드를 파다보면 답이 보일것이다.

0개의 댓글