Современные рабочие процессы с данными становятся все более сложными из-за растущих размеров массивов данных и сложности распределенной обработки. Многие организации сталкиваются с тем, что традиционные системы не справляются с длительным временем обработки, нехваткой памяти и эффективным управлением распределенными задачами. В таких условиях специалисты по обработке данных и инженеры часто тратят лишнее время на обслуживание системы, а не на извлечение полезных сведений из данных. Необходимость в инструменте, который упрощает эти процессы без ущерба для производительности, очевидна.
DeepSeek AI releases Smallpond
DeepSeek AI недавно выпустила Smallpond, облегчённую платформу для обработки данных, построенную на базе DuckDB и 3FS. Smallpond стремится расширить эффективные, in-process SQL аналитики DuckDB в распределённой среде. Сочетая DuckDB с 3FS — высокопроизводительной распределённой файловой системой, оптимизированной для современных SSD и RDMA сетей, Smallpond предлагает практическое решение для обработки больших наборов данных без сложности долгосрочных сервисов или значительных инфраструктурных затрат.
Технические детали и преимущества
Smallpond разрабатывалась для бесшовной работы с Python, поддерживая версии от 3.8 до 3.12. Её принцип основывается на простоте и модульности. Пользователи могут быстро установить фреймворк через pip и начать обработку данных с минимальной настройкой. Важной особенностью является возможность ручного разделения данных. Независимо от того, разбивка происходит по количеству файлов, количеству строк или конкретному хешу столбца, эта гибкость позволяет пользователям адаптировать обработку к данным и инфраструктуре.
Под капотом Smallpond использует DuckDB для своей надёжной, нативной производительности выполнения SQL-запросов. Фреймворк также интегрируется с Ray для обеспечения параллельной обработки на распределённых вычислительных узлах. Это сочетание не только упрощает масштабирование, но и гарантирует, что рабочие нагрузки могут быть эффективно выполнены across multiple nodes. Кроме того, избегая постоянных сервисов, Smallpond снижает операционные затраты, обычно связанные с распределёнными системами.
Установка Smallpond
- Поддерживается Python версии с 3.8 по 3.12.
- Установка:
pip install smallpond
Начало работы со Smallpond
- Скачайте пример данных:
wget https://duckdb.org/data/prices.parquet - Импортируйте Smallpond и инициализируйте сеанс:
import smallpondиsp = smallpond.init() - Загрузите данные:
df = sp.read_parquet("prices.parquet") - Обработайте данные:
- Перераспределение данных:
df = df.repartition(3, hash_by="ticker") - Выполнение SQL-запросов:
df = sp.partial_sql("SELECT ticker, min(price), max(price) FROM {0} GROUP BY ticker", df) - Сохранение результатов:
df.write_parquet("output/") - Вывод результатов:
print(df.to_pandas())
- Перераспределение данных:
Производительность и откровения
В тестах производительности с использованием бенчмарка GraySort, Smallpond продемонстрировала свою способность сортировать 110,5 ТиБ данных за чуть более 30 минут, достигая среднего пропускного показателя 3,66 ТиБ в минуту. Эти результаты иллюстрируют, насколько эффективно фреймворк использует комбинированные сильные стороны DuckDB и 3FS как для вычислений, так и для хранения. Такие показатели производительности обеспечивают уверенность в том, что Smallpond может удовлетворить потребности организаций, работающих с терабайтами и до петабайтов данных. Открытость проекта также подразумевает, что пользователи и разработчики могут сотрудничать в области дальнейших оптимизаций и адаптации фреймворка к различным случаям использования.
Заключение
Smallpond — это взвешенный, но значимый шаг вперёд в распределённой обработке данных. Она решает ключевые проблемы, расширяя доказанную эффективность DuckDB в распределённой среде с поддержкой высокоскоростных возможностей 3FS. С акцентом на простоту, гибкость и производительность, Smallpond предлагает практичный инструмент для учёных данных и инженеров, занимающихся обработкой больших наборов данных. Как открытый проект, он приглашает к участию и постоянному улучшению сообщества, что делает его ценным дополнением к современным наборам инструментов инженерии данных. Независимо от управления умеренными наборами данных или масштабирования до операций уровня петабайтов, Smallpond предоставляет надёжный фреймворк, который является как эффективным, так и доступным.








