Сколько данных может обработать Raspberry Pi быстро

от автора

Время обработки данных в одном знакомом мне проекте энтерпрайз-хранилища данных с реляционной моделью составляет почти 6 часов. Много это или мало?

Заметка описывает эксперимент по созданию маленькой копии энтерпрайз-хранилища данных с сильно ограниченными техническими условиями. А именно, на базе одноплатного компьютера Raspberry Pi.
Модель и архитектура будут упрощёнными, но похожими на энтерпрайз-хранилище. Результатом является оценка возможности использования Raspberry Pi в области обработки и анализа данных.


№1

Роль опытного и сильного игрока будет выполнять машина Exadata Х5 (один юнит) корпорации Оракл.
Процесс обработки данных включает в себя следующие шаги:

  • Чтение из файла 10,3 ГБ — 350 миллионов записей за 180 минут.
  • Обработка и очистка данных — 2 SQL запроса и 130 минут.
  • Загрузка измерений — 10 минут.
  • Загрузка таблиц фактов 20 миллионами новых записей — 5 SQL запросов и 35 минут.

Итого, интеграция 350 миллионов записей за 6 часов, что эквивалентно 990 тысячам записей в минуту или примерно 17 тысячам записей исходных данных в секунду.

№2

В роли экспериментального оппонента будет выступать Raspberry Pi 3 Model B+ с 4х-ядерным процессором 1.4 ГГц.
В качестве хранилища используется sqlite3, чтение файлов происходит с помощью PHP.
Файлы и база данных находятся на SD карте размером 32 ГБ класса 10 во строенном ридере.
Резервная копия создаётся на флэш диске 64 ГБ, подключённом к USB.

Модель данных в реляционной базе sqlite3 описана в статье о маленьком хранилище.

Тест первый

Исходный файл access.log — 37 МБ с 200 тысячами записей.

  • Прочитать лог и записать в базу данных заняло 340 секунд.
  • Загрузка измерений с 5 тысячами записей длилась 5 секунд.
  • Загрузка таблиц фактов 90 тысячами новых записей — 32 секунды.

Итого, интеграция 200 тысяч записей заняла почти 7 минут, что эквивалентно 28 тысячам записей в минуту или 470 записям исходных данных в секунду. База данных занимает 7,5 МБ; всего 8 SQL запросов для обработки данных.

Тест второй

Файл более активного сайта. Исходный файл access.log — 67 МБ с 290 тысячами записей.

  • Прочитать лог и записать в базу данных заняло 670 секунд.
  • Загрузка измерений с 25 тысячами записей длилась 8 секунд.
  • Загрузка таблиц фактов 240 тысячами новых записей — 80 секунд.

Итого, интеграция 290 тысяч записей заняла чуть больше 12 минут, что эквивалентно 23 тысячам записей в минуту или 380 записям исходных данных в секунду. База данных занимает 22,9 МБ

Вывод

Для получения данных в виде модели, которая позволит проводить эффективный анализ, необходимы значительные вычислительные и материальные ресурсы, и время в любом случае.
Например, один юнит Экзадаты обходится более чем в 100К. Один Raspberry Pi стоит 60 единиц.
Линейно их нельзя сравнивать, т.к. с увеличением объёмов данных и требований надёжности возникают сложности.

Однако, если представить себе случай, когда тысяча Raspberry Pi работают параллельно, то, исходя из эксперимента, они обработают около 400 тысяч записей исходных данных в секунду.
И если решение для Экзадаты оптимировать до 40 тысяч записей в секунду, то это ощутимо меньше, чем 400 тысяч. Это подтверждает внутреннее ощущение того, что цены энтерпрайз-решений завышены.

В любом случае, Raspberry Pi отлично справлятся с обработкой данных и реляционными моделями соответствующего масштаба.

Ссылка

Домашний Raspberry Pi был настроен как веб сервер. Эксперимент с его производительностью можно провести самостоятельно по адресу. Модель базы данных (DDL), процедуры загрузки (ETL) и саму базу данных можно там же скачать.

ссылка на оригинал статьи https://habr.com/ru/post/508648/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *