qvd — чтение Qlik QVD файлов из Python и SQL



Написал open-source библиотеку для работы с QVD файлами без Qlik. Ядро на Rust, биндинги для Python.

Что умеет:

pandas / Polars / DuckDB — одной строкой:

df = qvd.read_qvd("data.qvd").to_pandas()
df = qvd.read_qvd("data.qvd").to_polars()

batch = qvd.read_qvd_to_arrow("data.qvd")
duckdb.sql("SELECT * FROM batch WHERE x > 100")



SQL-запросы к QVD через DataFusion — JOIN, GROUP BY, агрегации прямо по QVD файлам
Конвертация QVD ↔ Parquet — с компрессией (snappy, zstd, gzip, lz4)
Streaming — чтение огромных файлов по чанкам, без загрузки в память
EXISTS() — O(1) хеш-индекс, как в Qlik

Скорость (проверено реальных файлах, byte-identical roundtrip):

- 41 МБ / 465K строк / 12 колонок — чтение 0.5с, запись 0.03с
- 587 МБ / 5.4M строк / 15 колонок — чтение 6.1с, запись 0.4с
- 1.7 ГБ / 87M строк / 6 колонок — чтение 37с, запись 1.6с
- 2.8 ГБ / 11.9M строк / 42 колонки — чтение 24с, запись 2.4с

Первый и единственный QVD crate на crates.io.

`pip install qvdrs`

github.com/bintocher/qvdrs

————
Подпишись, потом забудешь!

https://max.ru/join/U4r4IN8vgLwYowRRsU42LWb5HmsSOSvy4ExmqTSQ0yc
https://vk.com/chernovdev
https://dzen.ru/chernovdev
Просмотры: 178
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти