Низкая производительность Arrow Parquet нескольких файлов

После просмотра головокружительного вебинара на конференции Rstudio здесь меня накачали достаточно, чтобы выгрузить всю таблицу SQL-сервера в паркетные файлы. В результате получилось 2886 файлов (78 объектов за 37 месяцев), в общей сложности около 700 миллионов строк. введите описание изображения здесь

Выполнение базового выбора вернуло все строки менее чем за 15 секунд! (Просто необычный результат !!) На вебинаре Нил Ричардсон из Ursa Labs продемонстрировал набор данных Ny-Taxi с 2 миллиардами строк менее 4 секунд.

Я почувствовал, что пришло время сделать что-то более смелое, например, базовое среднее значение, стандартное отклонение, режим с данными за год, но это заняло минуту в месяц, поэтому я сидел 12,4 минуты в ожидании ответа от R.

введите описание изображения здесь

В чем проблема? Мой плохо написанный R-запрос? или просто слишком много файлов или степень детализации (десятичные значения в Контобелопе) ??

Любые идеи??

PS: Я не хотел помещать Jira-case на доску apache-arrow, поскольку я вижу, что поиск Google не получает оттуда ответы.


person Patricio Lobos    schedule 08.02.2021    source источник


Ответы (1)


Я предполагаю (без фактического просмотра данных или профилирования запроса) две вещи:

  1. Вы правы, десятичный тип потребует некоторой работы по преобразованию в тип R, потому что R не имеет десятичного типа, поэтому это будет медленнее, чем просто чтение в типе int32 или float64.
  2. Вы все еще читаете около 350 миллионов строк данных в свой сеанс R, и это займет некоторое время. В примере запроса на виньетке пакета со стрелкой отфильтровывается больше данных (и фильтрация выполняется очень быстро).
person Neal Richardson    schedule 08.02.2021