
데이터브릭스의 핵심 중 하나인 deltatable을 불러오는 방법 및 메타스토어 관련으로 포스팅을 하고자한다.
기존 마운트 된 블롭스토리지에서 델타테이블을 만들었던 것과 동일한 방법으로 진행한다고 생각하면 수월하다.
만약 메타스토어에 델타테이블이 등록되어있지 않지만, dbfs에서 조회가능한 mount가 되어있는 블롭스토리지 내부에 저장되어있다면 다음과 같이 테이블을 불러올 수 있다.
# Delta 테이블 불러오기 (파일 시스템 경로를 통해)
delta_table = spark.read.format("delta").load("/path/to/delta-table")
# 테이블 데이터 확인
delta_table.show()
여기서 show()를 사용했지만, 테이블 형태로 제대로 보고싶다면 display()를 추천한다.
추가로 display(delta_table)과 같은 형태도 사용이 가능하다.
메타스토어에 등록되어있는 경우라면, catalog에서 확인한 후 테이블을 불러올 수 있다.
이때, 좋은 점이라고 한다면 스키마.테이블명으로 비교적 간단한 조회가 가능하다는 점이다.
# Spark 세션 생성
spark = SparkSession.builder.appName("DeltaTableExample").getOrCreate()
# Delta 테이블 불러오기 (메타스토어에 등록된 경우)
delta_table = spark.table("스키마명.테이블명")
# 테이블 데이터 확인
delta_table.show()
1.1에서 조회하였을때 값이 제대로 나왔다면, CREATE TABLE을 이용하여 메타스토어에 테이블을 등록할 수 있다.
이로써 가장 기본이 되는 테이블 생성 및 조회를 알아보았다.
-- 기존 테이블을 메타스토어에 등록
CREATE TABLE 스키마명.테이블명
USING delta
LOCATION '/path/to/delta-table';
장점이라면... spark를 몰라도 spark table을 생성하여 sql을 이용해서 바로 조회 및 데이터를 추출하는게 가능하다는점?
이게 큰 장점이라고 생각한다.
처음에는 pyspark를 이용하여 처리하는 코드를 다 작성해놓았는데, 새로운 PO의 요청사항에 따라서, 해당코드들을 모두 SQL로 변경하였다.
-> 이유는 현업(sales 담당자)들이 python을 배우는 장벽이 클 것이라는 우려 때문이었다.
이전까지만해도 나는 python과 비슷하니까 쉬울 것이다라고만 생각했는데, enduser가 무언가를 배울 여유가 되지 않는다면, SQL만으로도 처리할 수 있는 것이 참 좋은 방법일 수도 있겠구나라는 것을 깨달았다.
비용을 산정할때 고려해야하는 사항이 늘어날 수도 있다는 점을 알게된 프로젝트였다.