TGViewer
SQL и Анализ данных SQL и Анализ данных @databases_tg · 12.5K subscribers
Post #1132 3.43K
📊 Анализ Данных Alibaba: Оптимизация Хранения Сжатых Файлов

Введение
В Alibaba, где ежедневно генерируются петабайты данных, эффективное хранение критически важно. Оно не только снижает затраты, но и ускоряет работу систем.

Сегодня мы разберём задачу по оптимизации хранения сжатых файлов, имитирующую реальные сценарии Alibaba.

🎯 Цель — определить сжатые файлы и рассчитать общую экономию памяти.

Постановка Задачи
Дана таблица files со столбцами:
- file_id — идентификатор файла
- file_type — тип файла
- file_size — исходный размер в байтах
- compressed_size — размер после сжатия (`NULL`, если файл не сжат)

Задачи:
1. Найти все сжатые файлы (`compressed_size IS NOT NULL`).
2. Для каждого сжатого файла вывести file_id и file_type.
3. Вычислить и вывести общую экономию места:
экономия = file_size - compressed_size.

Пример Данных

| file_id | file_type | file_size | compressed_size |
|---------|-----------|-----------|-----------------|
| 1 | image | 1000 | 600 |
| 2 | video | 5000 | NULL |
| 3 | document | 200 | 100 |
| 4 | image | 1500 | 700 |

Решение

🔹 Шаг 1. Идентификация Сжатых Файлов
Фильтруем только те строки, где compressed_size не равен NULL:


SELECT
file_id,
file_type
FROM
files
WHERE
compressed_size IS NOT NULL;


Результат для примера:

file_id file_type
1 image
3 document
4 image

🔹 Шаг 2. Вычисление Общей Экономии Места

Суммируем разницу между исходным и сжатым размером:


SELECT
SUM(file_size - compressed_size) AS total_space_saved
FROM
files
WHERE
compressed_size IS NOT NULL;


Промежуточные расчёты:

- Файл 1: 1000 - 600 = 400
- Файл 3: 200 - 100 = 100
- Файл 4: 1500 - 700 = 800
Общая экономия: 400 + 100 + 800 = 1300

Результат запроса:

- total_space_saved: 1300

Итоговое Решение

Обычно на платформах типа DataLemur ожидаются два отдельных запроса:

1. Список сжатых файлов


SELECT
file_id,
file_type
FROM
files
WHERE
compressed_size IS NOT NULL;


2. Общая экономия


SELECT
SUM(file_size - compressed_size) AS total_space_saved
FROM
files
WHERE
compressed_size IS NOT NULL;


💰 В чем плюс такой методики — меньше данных → меньше расходов на хранение и трафик. В масштабе Alibaba это миллионы долларов.

📊 Мониторинг эффективности — можно оценить, насколько хорошо работают алгоритмы сжатия.

📦 Планирование ёмкости — точный прогноз потребностей в хранилище.

⚡ Повышение производительности — сжатые файлы быстрее передаются и обрабатываются.

Эта задача показывает, как простые SQL-запросы решают ключевые задачи оптимизации Big Data.

Понимание подобных принципов помогает инженерам данных:
- рационально использовать ресурсы,
- снижать расходы,

- повышать эффективность работы систем.

📌 Задача
  • 👍 5
  • ❤ 4
  • 🔥 1
  • 🥰 1
More from @databases_tg
  1. Oct 2, 2026Как SQLite превращает числа в текст в 2 раза быстрее? Трюк с парами цифр Обычно число пере…
  2. Oct 2, 2026В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области Rec…
  3. Oct 1, 2026Жиз
  4. Sep 30, 2026📝 5 уровней ИИ-агентов: от промпта до продакшена Context, loop, Jev, harness и evals: раз…
  5. Sep 26, 2026UPDATE — оператор обновления данных в MySQL 🗂️ Если в таблице нужно изменить значение в у…
  6. Sep 25, 2026🧠 SQL-задача с подвохом Есть таблица транзакций: CREATE TABLE transactions ( id int PRIMA…
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 →