TL;DR

  • 25~200GB TPC-H 분석에서 iPhone 17 Pro의 DuckDB가 가장 큰 규모를 제외한 모든 경우에 Databricks Serverless SQL 클러스터보다 빠르고, 최대 규모에서도 경쟁력 있는 성능을 보임.
  • 현실적인 비즈니스 분석 워크로드는 최신 CPU가 처리할 수 있는 규모에 비해 작아, 분산 시스템의 쿼리 계획·컴파일 비용과 데이터 셔플 비용이 두드러짐.
  • DuckDB와 Polars 같은 단일 노드 실행 엔진은 분산 실행의 오버헤드를 피할 수 있으며, 단일 노드 실행이 회사 전체 워크로드를 한 머신에서 처리해야 한다는 뜻은 아님.
  • 클라우드 컴퓨팅 비용은 10년간 10분의 1로 줄었지만 주요 데이터 인프라 제공업체의 마진은 커졌으며, SQL·Python 분석에 분산 플랫폼을 쓰면 기반 컴퓨팅 비용보다 큰 금액을 지불할 수 있음.
  • Iceberg 테이블로 수집·변환·선택적 읽기 작업을 단계적으로 옮기면 저렴한 로컬 컴퓨팅을 활용하고, AI 에이전트가 공유 클러스터에 막히지 않도록 할 수 있음.

iPhone과 Databricks의 TPC-H 비교

  • 빅데이터는 죽었으며, 데이터 관리 시스템 분야에서 10년간 일하며 확인한 현실은 실제 비즈니스 데이터셋이 벤치마크에서 이야기되는 규모보다 훨씬 작다는 것임.
  • 과거에는 분산 시스템이 필요했던 워크로드도 이제 iPhone에서 실행될 수 있음. 이를 과장이 아님을 보이기 위해 iPhone 17 Pro에서 직접 벤치마크를 수행함.
  • 선택한 워크로드는 가상의 도매 공급업체 데이터베이스를 대상으로 하는 22개 분석 쿼리 모음인 TPC-H임.
  • 실제 비즈니스 사용자 워크로드의 상단에 가까운 규모를 추정하기 위해 Snowflake와 Amazon이 공개한 실제 쿼리 크기 분포 통계를 참고하고, 25GB·50GB·100GB·200GB 네 가지 규모로 실행함.
  • iPhone에서는 DuckDB를 사용하고, Databricks에서는 XS·S·M 세 가지 크기의 클러스터와 Databricks Serverless SQL을 사용함.
  • iPhone의 DuckDB가 가장 큰 규모를 제외한 모든 경우에 Databricks 클러스터보다 빠르며, 가장 큰 규모에서도 경쟁력 있는 성능을 보임.
  • 하드웨어 구성과 시간당 비용은 다음과 같음.
  • Databricks XS: CPU 24개, 메모리 128GB, 시간당 4.20달러.
  • Databricks S: CPU 40개, 메모리 224GB, 시간당 8.40달러.
  • Databricks M: CPU 80개, 메모리 448GB, 시간당 16.80달러.
  • iPhone 17 Pro: CPU 6개, 메모리 12GB, 시간당 비용 해당 없음.
  • 가장 작은 Databricks 클러스터도 iPhone보다 CPU 코어 수가 많지만, 이 벤치마크에서는 iPhone이 대부분의 규모에서 더 빠름.

성능 차이가 발생하는 이유

  • 실제 비즈니스 분석 기준으로는 큰 워크로드라도 최신 CPU의 처리 능력에 비하면 작으므로, 이 벤치마크에서는 쿼리 계획과 컴파일의 고정 비용이 큰 비중을 차지함. DuckDB는 작은 쿼리를 빠르게 실행하는 데 강점을 보임.
  • DuckDB는 단일 노드 데이터베이스인 반면 Databricks XS도 여러 노드로 구성된 시스템임. 큰 JOIN과 GROUP BY를 실행할 때 Databricks는 데이터를 노드 사이에 분산하는 셔플을 수행해야 함.
  • 쿼리가 단일 노드에 들어갈 수 있다면 이런 비용을 피하는 편이 더 효율적임. 이제 단일 노드에 들어가지 않는 쿼리는 매우 드물며, AWS c9 시리즈는 Graviton5 코어 192개 구성을 제공함.

분산 컴퓨팅 비용과 현실적인 워크로드

  • 이 결과의 가장 중요한 의미는 비용임. 비즈니스 데이터를 대상으로 SQL 쿼리나 Python 데이터프레임을 실행하는 데 Databricks나 Snowflake 같은 시스템만 사용한다면, 기반 컴퓨팅 자원에 매우 높은 프리미엄을 지불하는 것임.
  • 지난 10년간 클라우드 컴퓨팅 비용은 10분의 1로 떨어졌지만, 주요 데이터 인프라 제공업체의 마진은 커졌으며 그 결과 현재의 큰 가격 프리미엄이 형성됨.
  • iPhone에서 TPC-H를 실행하는 일은 재미있는 시연임. 대부분의 기업이 iPhone을 데이터 웨어하우스로 채택하지는 않겠지만, 실제로 사용한다면 냉찜질 팩 위에 올려둘 것을 권함. 열 스로틀링으로 성능이 약 30% 떨어질 수 있음.
  • 이 시연이 보여주는 점은 현실적인 비즈니스 워크로드가 최신 컴퓨터에 전혀 버거운 수준이 아니라는 것임. 실제 워크로드 대부분은 비분산 실행의 효율을 활용하도록 설계된 DuckDB와 Polars 같은 실행 엔진을 통해 단일 머신에서 처리할 수 있음.
  • 단일 노드 실행 엔진을 사용해도 회사 전체 워크로드를 한 머신에서 실행할 필요는 없음. 여러 사용자의 쿼리를 여러 워커에 분산할 수 있음.
  • Lake Compute 서비스는 대규모 워커 노드 풀을 두되 각 워커 노드가 한 번에 하나의 고객 dbt 모델만 처리하는 방식임.

단일 노드 실행 적합성 확인

  • 주요 데이터 플랫폼에는 이제 대화형 분석 기능이 내장되어 있으므로, 워크로드가 단일 노드 실행 엔진에 적합한지 확인할 때 이를 활용할 수 있음.

운영 데이터 웨어하우스에서 쿼리가 읽은 데이터 크기의 히스토그램을 보여줘. x축은 로그 스케일로, 단위는 GB로 표시해.

  • 대부분의 쿼리가 얼마나 작은지 확인하면 놀랄 수 있음. iPhone에서도 실행할 수 있는 쿼리에 고가의 분산 실행 엔진을 사용하고 있음.
  • 더 저렴한 컴퓨팅을 활용하려면 레이크하우스의 모든 구성 요소가 스토리지 계층과 직접 통신하는 새로운 아키텍처로 이동해야 함.

레이어별 아키텍처 전환

  • 이 아키텍처는 다음과 같이 단계별로, 계층별로 도입할 수 있음.
  • 수집 작업이 Iceberg 테이블에 쓰도록 변경함. Fivetran 사용자는 Managed Data Lake 마이그레이션 워크플로를 통해 기존 테이블과 과거 데이터를 Iceberg로 전환할 수 있으며, 데이터 웨어하우스의 기존 테이블은 외부 테이블로 투명하게 마이그레이션되어 쿼리를 계속 사용할 수 있음.
  • 변환 작업의 출력 형식을 Iceberg로 재설정함. 주요 컴퓨팅 엔진은 모두 Iceberg 출력을 지원하므로 주로 설정 변경이 필요함. dbt 사용자는 구현에 DuckDB와 단일 노드 실행을 사용하는 Lake Compute 서비스로 dbt 모델을 실행할 수 있음.
  • 노트북과 애드혹 쿼리처럼 선택한 읽기 워크로드를 로컬 컴퓨팅으로 옮김. 가장 저렴한 CPU는 책상 위에 있는 CPU임.
  • 저렴하거나 무료인 컴퓨팅을 활용하는 일은 비용 절감에 그치지 않으며, 사용자에게 컴퓨팅을 배급할 필요도 줄어듦.
  • AI 에이전트는 누구에게나 떠올릴 수 있는 질문에 답하는 개인 분석가를 제공하지만, 작고 비싼 컴퓨팅 클러스터를 공유하느라 병목이 생기지 않을 때만 가능함.
  • AI를 데이터에 연결하려면 주머니 속까지 널리 존재하는 저렴한 컴퓨팅을 활용하는 개방형 데이터 인프라가 필요함.

벤치마크 재현

  • 벤치마크 재현 세부 정보: github.com/fivetran/iphone_benchmark