Vaex 개요 — 초당 10억 행을 다루는 Out-of-Core DataFrame

Vaex 개요 — 초당 10억 행을 다루는 Out-of-Core DataFrame

데이터가 수십억 행으로 커지면 pandas는 메모리 한계에 부딪혀요. Vaex 는 이런 상황을 위해 만들어진 파이썬 라이브러리로, lazy Out-of-Core DataFrame 을 제공해서 큰 표 형식 데이터를 탐색·시각화할 수 있게 해 줘요.

출처: https://vaex.io/docs/

Vaex의 가장 큰 특징은 메모리 매핑(memory mapping)과 영 복사(zero memory copy), lazy computation 이에요. 데이터를 통째로 메모리에 올리지 않고 필요한 만큼만 참조하기 때문에, 초당 10억 개(10^9) 행 수준의 평균·합·개수·표준편차 같은 통계를 N차원 그리드 위에서 계산할 수 있어요.

시각화는 히스토그램, density plot, 3D volume rendering 으로 이뤄져서 큰 데이터를 인터랙티브하게 탐색해요.

설치는 이렇게 해요:

conda install -c conda-forge vaex
pip install --upgrade vaex

pip install vaex 는 메타 패키지라 밑의 구성요소들이 함께 설치돼요. 핵심은 vaex-core(DataFrame과 코어 알고리즘)이고, 그 위에 HDF5 메모리 매핑(vaex-hdf5), Arrow 지원(vaex-arrow), 시각화(vaex-viz), Jupyter 위젯(vaex-jupyter), ML(vaex-ml) 등이 얹혀요.

시작은 간단해요. vaex.example() 로 예제 데이터셋을 열고, df.mean(df.r, binby=[df.x, df.y], shape=32, limits=[-10, 10]) 처럼 그리드 위에서 통계를 내거나 df.viz.heatmap(df.x, df.y, show=True) 로 바로 시각화할 수 있어요.

더 알아보기