注目★★★★★Lobsters
Pandasの「100GBの壁」をPolarsとDuckDBで越える
30秒で把握
- 1筆者がPandasの非効率性を批判し分散基盤導入の過剰を論じた
- 2Redshiftの94.68%が100GB未満、86.9%のクエリが80GB以下
- 3PolarsとDuckDBはPandas比でメモリ使用量を2分の1と19分の1に削減
要約
筆者は、Pandasの非効率性が本来不要な分散システム導入を促すため、Python DataFrameライブラリとして廃れるべきだと論じた。Redshiftの分析では、94.68%のテーブルが100GB未満で、86.9%のクエリが80GB以下のデータを処理していた。筆者は、この規模にはSparkやSnowflakeではなく、単一マシンで動くPolarsとDuckDBが適すると主張した。1 billion rowの検証では、PolarsとDuckDBがPandasより大幅に高速で、メモリ使用量もそれぞれ2分の1と19分の1だった。Apache Arrowを使えば、Pandas・Polars・DuckDB間でメモリコピーなしにDataFrameを移行できる。
あなたへの影響
Pandasで数十GB規模の処理を運用する日本のエンジニアは、次の分散基盤へ移る前にPolarsとDuckDBを同一データでベンチマークすべき。Pandasの非効率性が不要な分散基盤導入につながり得るため、データ規模とクエリ特性に応じた構成選定が必要になる可能性がある。
推奨:単一マシン処理とArrow連携を試せば、既存コードの段階的な移行を検証できる。