Обычно, когда датасет превышает доступную память, инструменты падают или требуют ручного чанкинга и дорогого железа.
DuckDB решает проблему иначе:
он автоматически сбрасывает промежуточные данные на диск, если памяти не хватает.
Пример:
duckdb.sql("SET memory_limit = '500MB'")
duckdb.sql("SET temp_directory = '/tmp/duckdb_temp'")
result = duckdb.sql(f"SELECT * FROM '{parquet_path}'").df()
Итог:
- у вас 10GB Parquet
- оперативка только 500MB
- DuckDB сам делает чанки + сбрасывает overflow на диск
- запрос успешно выполняется ✔
Так вы работаете с большими данными без сложных пайплайнов и апгрейда железа.
