Partitioning & Bucketing, Spark에서 다른 점

먼저, 조금 더 쉬운 Partitioning을 설명하겠습니다. Partitioning은 같은 디렉터리에 데이터를 구성하는 방법입니다. 예를 들어, 2023년 5월 1일의 데이터와 2023년 5월 2일의 데이터를 다른 경로에 나눠서 저장하면 date 값이 5월 1일인 데이터를 읽을 때는 5월 1일 경로만 읽으면 됩니다. 1999년부터 모든 경로의 데이터를 읽을 필요가 없이요. 다음으로 Bucketing은 같은 '파일'에 데이터를 구성하는 방법입니다. 5월 1일 경로에 저장된 파일이 100개라고 가정합시다. 그런데 저는 user_id가 1인 레코드를 찾고 싶습니다. Bucketing이 되어있지 않다면 100개를 다 읽어야 할 겁니다. Bucketing이 되어있다면? 단 1개의 파일만 읽으면 됩니다. partitioning, bucketing 모두 데이터를 읽을 때 스캔해야하는 데이터의 양을 줄이는 최적화 방법입니다. 두가지 도구를 함께 써도 되고, 따로 써도 됩니다. 그런데 Spark의 Bucketing은 Hive의 방법과는 조금 다른데요. '스파크 버켓팅은 보는 것 만큼 단순하지 않다.' 는 글을 공유합니다. 아래 링크의 best practices for bucketing in spark sql도 좋아요. https://medium.com/analytics-vidhya/spark-bucketing-is-not-as-simple-as-it-looks-c74f105f4af0 https://towardsdatascience.com/best-practices-for-bucketing-in-spark-sql-ea9f23f7dd53

Spark Bucketing is not as simple as it looks

Medium

Spark Bucketing is not as simple as it looks

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 5월 3일 오후 1:27

 • 

저장 2조회 3,284

댓글 0