Когда отчёт мал вашим данным (вам данные не жмут?)

13.10.2020

Храните данные по COVID-19 в Excel?

FastReport

Может ли отчет показывать не все данные?

Вот тут: https://tjournal.ru/news/219937-v-velikobritanii-ne-uchli-pochti-16-tysyach-sluchaev-zarazheniya-covid-19-v-tablice-excel-zakonchilos-mesto

Совершенно прекрасная история о том, Великобритании не учли почти 16 тысяч случаев заражения Covid-19 — в таблице Excel закончилось место.

https://medium.com/@ivlad/история-про-логи-63dbe37fd50c#.2drb508t7
или вот - о многолетнем анализе безопасником лога доступа к интернет большой компании в Excel.

Если лень читать, напомню, что предел таблицы Excel - 65000 строк.

Т.е. из в года в год безопасником еженедельно из миллиона записей анализировались данные только первых минут недели. Остальные данные в отчёт не попадали из-за технических ограничений выбранного для анализа инструмента.

Это не единичные случаи! Люди не представляют, с какими объемами даных им и их клиентам-заказчикам придётся иметь дело, какие возможности инструментов, которые они используют!

Потому появляются такие статьи https://www.techrepublic.com/blog/microsoft-office/10-things-you-should-never-do-in-excel/

Что же делать?

1. Для хранения данных используйте базы данных!

Звучит совершенно дико, но - всегда и везде, когда вы задумываете какой-то список, базу (это у меня профессиональное - я сразу оперирую этим термином), систему складирования данных - подбирайте базу данных. Оцените объём данных. Потомки будут благодарны!

Наш пример - в нашей CRM (у нас одна из первых собственных онлайн-CRM - мы даже термина такого не знали) сейчас сотни тысяч регистраций, клиентов, записей, партнёрских регистраций. Это работает.

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

2. Проверьте, будет ли ваша отчётная система справляться с таким объёмом.

К нам, особенно в последнее время, стали часто приходить интересные клиенты. Подрядчики, уже полгода как сдавшие свой проект заказчику, которым приходится наживую (!) во внедрённом и работающем проекте менять систему генерации отчётов на нашу.

Они всерьёз подошли к проекту, они рассматривали инструментарий, компоненты, сравнивали их по куче критериев (возможно, наш даже и не рассматривали, или рассматривали, но по каким-то признакам FastReport не прошёл в "финал), но, затем, проект стал наполняться реальными данными, работать с этими реальными данными и ...падать. (В лучшем случае - “отображать первые 65 тысяч записей”, в худшем - “сжирать всю выделенную память и показывать ничего”).

Я далёк от мысли, что современные разработчики недостаточно внимания уделяют грамотному проектированию нагрузки системы.

Тем более, все остальные элементы систем вполне справляются с этой нагрузкой.

А валится именно на этапе выборки данных в генератор отчётов!

А реальные данные - это могут быть и миллионы записей (это только выборка, это не вся база, конечно же!) - из которых надо достаточно часто генерировать документы абонентам, например.

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

И сегодня, когда меня спрашивают "а как вам удалось, что банки, ПФР, ФСС, производители высоконагруженных корпоративных систем, биллингов в реальном времени, используют именно ваш продукт, FastReport?" - мне ничего не остаётся, как отвечать "а у них, в принципе, не было другого выбора".

Я не призываю использовать только и исключительно FastReport ("покупайте наших слонов!"), но настоятельно советую разработчикам подвергать жесточайшему нагрузочному тестированию все компоненты ваших систем (как это делаем мы), чтобы не разочаровывать клиентов и не рисковать репутацией.

Особенно это касается систем биллинга, CRM, ERP - где идёт постоянная живая работа с клиентами.

3. Оцените информативность вашего отчёта

Да, у нас есть тестовые примеры отчётов из миллионов записей, где мы оцениваем качество и скорость построения документов (в отчёте получается несколько десятков тысяч страниц, которые потом конвертируются в PDF без потери качества). Это был вызов нам самим - нас не устроила скорость формирования отчёта, и мы ускорили их в три раза.
Вот ссылка на пример построения отчёта из BigData.

Вот такая "биг дата"

Радость первооткрывателей "а как это работает в других генераторах отчётов?" я оставляю благодарным читателям.
Это неплохо при формировании квитанций по оплате электричества жителям мегаполисов, например, но насколько этот отчёт информативен сам по себе?

Потому выделяйте главное, основное, используйте графики (Charts) - чтобы данные не терялись, а превращались в охватываемую взглядом информацию. Как, например, сделал один из победителей нашего конкурса на лучший отчёт  - как видите, большие данные о COVID-19 свёрнуты в достоверный информативный документ.

Продукты Fast Reports всегда готовы быстро сделать вам верные отчёты по вашим данным любого размера.
Ну или хотя бы просто спросите нас - мы неплохо разбираемся во всех популярных форматах документов и СУБД - и можем подсказать, где именно вас может поджидать “коварство какого-либо формата”.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.