40MB Parquet 파일 하나로 대시보드 드릴다운 구현하기
Fast drilldown dashboards from a single Parquet file

데이터베이스나 쿼리 엔진 없이, 단일 Parquet 파일과 HTTP range request만으로 고객용 분석 대시보드를 구축하는 방법을 소개합니다. 저자는 NYC 311 데이터(약 3,400만 행)를 40MB Parquet 데이터 큐브로 롤업하고, 브라우저에서 동작하는 경량 Parquet 리더인 Hyparquet와 Cloudflare Worker를 이용해 R2에 호스팅했습니다. 파일 레이아웃을 신중히 설계하여 min/max 통계를 활용하면 필요한 행 그룹만 부분적으로 읽어 빠른 응답을 얻을 수 있습니다. 이 접근 방식은 복잡성을 데이터 파이프라인으로 옮기며, 사용량 및 결제 대시보드와 같이 제한된 차트와 필터 조합을 가진 경우에 적합합니다.
올바르게 배치된 파일이라면 한 번에 몇 개의 작은 조각만 읽으면 되므로, 큐브는 수십 또는 수백 MB가 될 수도 있습니다.
HN 토론
21- simonw
> 바이트가 가는 길에 작은 Cloudflare Worker를 통과하는데, 무료 r2.dev URL이 속도 제한이 있기 때문입니다.
40MB 파일이라면 GitHub Pages에 직접 호스팅하는 것을 추천합니다. 사실상 무료로 CORS가 활성화된 CDN이고 HTTP 범위 요청을 지원하므로, Cloudflare Worker를 전혀 사용하지 않고도 데모를 작동시킬 수 있을 겁니다.
- wyck
겉으로 보기에는(테스트해보진 않았지만) 비용과 런타임을 크게 절약할 수 있는 좋은 방법처럼 보이지만, 5분 정도 이상의 주기로 업데이트가 필요한 데이터셋에만 해당합니다. 이 창 밖의 '최신' 데이터를 얻기 위한 새로고침 버튼은 가질 수 없을 텐데, 크기와 빌드 시간에 따라 다르지 않을까요? 과거 parquet 파일과 실시간 쿼리를 결합하는 하이브리드 방식을 적용할 수 있을지 궁금하네요.
- mrbluecoat
기술을 영리하게 재활용한 것이지만, 현실적으로는 웹 응답에 담을 수 있을 만큼 작은 범위 페이로드를 가진 정적 데이터셋에만 가치가 있습니다.
> 파이프라인은 업데이트 주기를 맞추기 위해 각 고객의 파일을 충분히 빨리 재구축해야 합니다. ... 실시간이 아닌 대략적인 일정으로 업데이트되는 데이터