TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
5 minutes of data

4 Feb, 10:13

Открыть в Telegram Поделиться Пожаловаться

Arrow + ADBC + dlt — новый speed limit для ingestion

DLT недавно сделал бенчмарк, и результат получился интересный:

EL-пайплайны ускоряются примерно в 3.7 раза, если просто перестать ломать Arrow по дороге.

Проблема в том, как обычно устроен ingestion.
Даже если источник уже отдаёт данные в Arrow, дальше они почти всегда проходят через Python.

Arrow-таблица превращается в миллионы dict’ов, потом это всё скармливается ORM или SQLAlchemy, а уже оттуда летит в базу.

Формально пайплайн работает, но по факту мы берём columnar-данные и насильно запихиваем их в row-based мир.

В этот момент Arrow раздувается в Python-объекты, и всё, ради чего он вообще существует, исчезает:
векторизация, zero-copy, нормальная работа с кэшем.

CPU начинает тратиться не на данные, а на сериализацию и сборку мусора.
Поэтому стадия нормализации, которая по идее должна занимать миллисекунды, внезапно занимает минуты и выглядит это как ну, данные большие, ничего не поделаешь.

Решение оказалось банально простым: вообще не выходить из columnar-пути.
Arrow остаётся Arrow от источника до приёмника, ADBC даёт columnar-доступ к базе, а dlt просто оркестрирует этот процесс.

На выходе те самые ~3.7× ускорения, заметно меньшая нагрузка на CPU и ощущение, что пайплайн наконец-то делает работу, а не борется сам с собой.

А если делать ingest с ConnectorX, то вообще будет пушка.

Про то, как arrow захватывает мир данных, был пост в канале.

♾️benchmark ♾️

@five_minutes_of_data

604 0 26 3 6
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot