TGViewer
tl;dr data tl;dr data @tldr_data · 153 subscribers
Post #119 147
Как Airtable сократил стоимость хранения архивных данных в 100 раз и сэкономил миллионы долларов

В 2024 году команда Airtable столкнулась с проблемой, знакомой многим крупным компаниям: объем данных в MySQL рос настолько быстро, что некоторые базы уже приближались к лимиту AWS RDS в 64 ТБ.
Основную часть занимали журналы изменений и история действий пользователей — данные, которые редко читаются, но по требованиям клиентов должны храниться до 10 лет.

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

Решение оказалось довольно элегантным.
Свежие данные остались в MySQL, а архивные перенесли в AWS S3, сохранив их в формате Apache Parquet.
Для выполнения запросов команда протестировала несколько движков, включая Athena, DuckDB и StarRocks, но в итоге остановилась на DataFusion — SQL-движке на Rust, который лучше остальных использовал возможности Parquet и позволял встроить движок прямо в существующие сервисы без запуска отдельного кластера.

Сама миграция была нетривиальной.
Снимки огромных MySQL-таблиц выгружались из RDS в Parquet, после чего Apache Flink перераспределял данные по отдельным базам. Затем специальные процессы объединяли файлы, удаляли дубликаты и формировали оптимизированные Parquet-файлы для дальнейшего хранения и обслуживания запросов.

Перед запуском новую систему долго проверяли.
Помимо сверки данных между MySQL и Parquet, команда включила shadow-режим на реальном трафике, когда каждый запрос параллельно выполнялся и через старую, и через новую систему.
Такой подход помог обнаружить множество неожиданных проблем: различия в обработке чисел между JavaScript и Rust, ошибки сортировки в DataFusion и даже проблемы во взаимодействии Rust-кода с Node.js.

После запуска основная работа сосредоточилась вокруг производительности.
Поскольку запросы выполнялись поверх файлов в S3, инженеры построили многоуровневую систему кэширования и добились более 99% попаданий в кэш для метаданных.
Для сложных фильтров появились собственные вторичные индексы на базе Parquet, а для некоторых типов запросов начали использовать Bloom Filters, чтобы не сканировать лишние данные.

Итог проекта:
Airtable вынес петабайты данных из MySQL, снизил стоимость хранения примерно в 100 раз и начал экономить миллионы долларов ежегодно.
При этом для пользователей практически ничего не изменилось — история изменений по-прежнему открывается с интерактивной скоростью.

Это отличный пример того, как современные форматы хранения данных, объектные хранилища и open-source инструменты вроде DataFusion позволяют строить решения, которые раньше ассоциировались только с полноценными СУБД.

♾️Оригинальный пост♾️

@tldr_data
Medium How we reduced archive storage costs by 100x and saved millions In this post, we introduce a new storage system that we built in order to cost-efficiently store log data while providing interactive query…
  • ❤ 2
More from @tldr_data
  1. Sep 18, 2026SLayer Спросите агента о выручке дважды — и он дважды напишет два никак не связанных между…
  2. Sep 13, 2026OpenAI запустила Data agent в ChatGPT Work — агента для работы с корпоративными данными. О…
  3. Sep 12, 2026LLMSQLQueryOperator В Airflow появился новый декоратор task.llm_sql, который генерирует SQ…
  4. Sep 11, 2026walshadow walshadow реплицирует данные из PostgreSQL в ClickHouse из физического WAL, вклю…
  5. Sep 9, 2026HydraDB - fast graph database on object storage HydraDB превращает графовую базу данных в…
  6. Sep 8, 2026Make analytics context usable by agents ktx — open-source context layer for data agents, к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →