Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Час необхідний для прочитання 11 хвилин

Ми та Квадрат Гартнера 2019 BI 🙂

Метою цієї статті є порівняння трьох провідних BI платформ, які знаходяться у лідерах квадранта Gartner:

- Power BI (Microsoft)
- Tableau
- Qlik

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 1. Gartner BI Magic Quadrant 2019

Мене звуть Жданов Андрій, я керівник відділу аналітики компанії Аналітікс Груп (www.analyticsgroup.ru). Ми будуємо наочні звіти з маркетингу, продажу, фінансів, логістики, тобто займаємося бізнес-аналітикою та візуалізацією даних.

Я зі своїми колегами вже кілька років працюємо із різними BI платформами. Маємо досить непоганий досвід проектів, що дозволяє нам порівнювати платформи з погляду розробників, аналітиків, бізнес-користувачів та впроваджувачів BI систем.

У нас буде окрема стаття порівняно цін та візуального оформлення цих BI систем, тому тут постараємося оцінити ці системи саме з погляду аналітика та розробника.

Виділимо кілька напрямків для аналізу та оцінимо за 3 бальною системою:

- поріг входження та вимоги до аналітика;
- Джерела даних;
- Очищення даних, ETL (Extract, Transform, Load)
- Візуалізації та розробка
- Корпоративне середовище - сервер, звіти
- Підтримка мобільних пристроїв
- Embedded (вбудована) аналітика в сторонні програми/сайти

1. Поріг входження та вимоги до аналітика

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Потужність БІ

Я бачив багато користувачів Power BI, які не були фахівцями ІТ, але могли створити непоганий звіт. Power BI використовує ту ж мову запитів, що й Excel – Power Query та мова формул DAX. Багато аналітиків добре знають Excel, тому перейти на цю BI-систему у них виходить досить легко.

Більшість дій досить легко виконуватися в редакторі запитів. Плюс є розширений редактор із мовою M для професіоналів.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 2. Конструктор запитів Power BI

QlikSense

Qlik Sense виглядає дуже доброзичливо - невелика кількість налаштувань, швидка можливість створити звіт можна використовувати конструктор завантаження даних.

Спочатку він здається простіше ніж Power BI та Tableau. Але з досвіду скажу, що через деякий час, коли аналітик створить пару простих звітів і знадобиться щось складніше, він зіткнеться з необхідністю програмувати.

Qlik має дуже потужну мову завантаження та обробки даних. Є власна мова формул Set Analysis. Тому аналітик повинен вміти писати запити та з'єднання, поміщати дані у віртуальні таблиці, активно користуватися змінними. Можливості мови дуже широкі, але вона вимагатиме її вивчення. Напевно, всі аналітики Qlik, яких я знаю, мають якийсь серйозний ІТ бекграунд.

Інтегратори Qlik, як нас, часто люблять розповідати про асоціативну модель, коли при завантаженні даних всі вони поміщаються в оперативну пам'ять, а зв'язок між даними здійснюється внутрішнім механізмом платформи. Що при виборі значень не проводиться внутрішніх підзапитів, як у класичних базах даних. Дані видаються майже миттєво за рахунок заздалегідь проіндексованих значень та зв'язків.

Правда на практиці це призводить до створення автоматичних з'єднань таблиць при збігу назв полів. Наприклад, не можна мати різні таблиці без зв'язків, які мають однакове поле. До цього треба звикнути. Доводиться або перейменовувати стовпці і стежити, щоб імена не збігалися, або зводити всі таблиці фактів на одну і оточувати їх довідниками на кшталт “зірка”. Напевно новачкам зручно, а досвідченим аналітикам вже не має значення.

Типовий інтерфейс із завантаження та обробки даних для аналітика виглядає так.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 3. Редактор завантаження даних Qlik Sense, таблиця Calendar

Примітка: У Power BI ситуація зазвичай виглядає інакше, ти залишаєш різні таблиці фактів та довідників, можеш вручну поєднувати таблиці класичним способом, тобто. зіставляю стовпці один одному вручну.

Жива картина

Tableau розробники позиціонують як BI зі зручним та доброзичливим інтерфейсом, який дозволить аналітику самостійно вивчати свої дані. Так, у нас у компанії були аналітики, які без ІТ досвіду могли робити свої звіти. Але оцінку Tableau знижу з кількох причин:
— Слабка локалізація з російською мовою
- Сервера Tableau Online знаходяться не в РФ
— Досить простий конструктор завантаження починає викликати проблеми, коли потрібно збудувати досить складну модель даних.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 4. Конструктор завантаження даних Tableau

Одне з питань, яке ми ставимо на співбесіді аналітикам по Tableau "Як побудувати модель таблиць фактів з таблицями довідниками, не наводячи все в єдину таблицю?!" Data Blending потребує вдумливого використання. Я багато разів виправляв у своїх аналітиків помилки засвоєння даних після таких об'єднань.

Плюс у Tableau досить своєрідна система, коли ти кожен графік робиш на окремому аркуші Sheet, а потім створюєш Dashboard, де починаєш розміщувати створені аркуші. Потім можна створити Story, це комбінація різних Dashboard. Розробка в Qlik і Power BI у цьому плані простіше, ти відразу накидав на лист шаблони графіків, поставив міри та вимірювання та Dashboard готовий. Трудовитрати на підготовку у Tableau мені здається через це зростають.

2. Джерела даних та завантаження

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

У цьому розділі немає явного лідера, але ми виділимо Qlik через кілька приємних особливостей.

Tableau у безкоштовній версії обмежений у джерелах, але ми у наших статтях більше орієнтуємося на бізнес, а бізнес може дозволити собі комерційні продукти та аналітиків. Тому Tableau не стали знижувати оцінку за цим параметром.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 5. Список можливих джерел Tableau

В іншому, список джерел скрізь вражає - всі табличні файли, всі стандартні бази даних, web-підключення, все скрізь працює. Я не стикався з нестандартними сховищами даних, там, можливо, є свої нюанси, але в більшості випадків у вас не буде проблем із завантаженням даних. Виняток, мабуть лише 1С. Прямих конекторів до 1С немає.

Партнери Qlik в Росії продають свої власні конектори по 100 000 - 200 000 руб., Але здебільшого дешевше зробити вивантаження з 1С на FTP в Excel або базу даних SQL. А можна опублікувати базу 1С в Інтернеті та підключатися до неї за протоколом Odata.

PowerBI та Tableau вміють це стандартно, а ось Qlik попросить платний конектор, тому тут теж простіше вивантажити у проміжну базу даних. У будь-якому випадку питання всі питання підключення можна вирішити.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 6. Список можливих джерел Qlik Sense

Додатково варто відзначити особливість Qlik, що окремим продуктом вони постачають як платні, так і безкоштовні конектори.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 7. Додаткові конектори Qlik Sense

З досвіду додам, що при великих обсягах даних чи численних джерелах не завжди доцільно підключати одразу BI систему. У серйозних проектах зазвичай використовується сховище даних, база даних із підготовленими для аналізу даними тощо. Не можна взяти та вивантажити скажімо 1 мільярд записів у BI систему. Тут уже необхідно продумувати архітектуру рішення.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 8. Джерела даних Power BI

Але чому виділили Qlik? Мені дуже подобається 3 речі:
- QVD файли
Власний формат зберігання даних. Іноді можна створити серйозні комерційні проекти тільки на QVD файлах. Наприклад, перший рівень – сирі дані. Другий рівень – оброблені файли. Третій рівень – агреговані дані тощо. Ці файли можна використовувати в різних програмах, за них можуть відповідати різні співробітники та послуги. Швидкість завантаження таких файлів у десять разів швидше, ніж зі звичайних джерел даних. Це дозволяє заощаджувати на базі даних та обмінюватися інформацією між різними програмами Qlik.

- Інкрементальне завантаження даних
Так, Power BI та Tableau також можуть це робити. Але Power BI вимагатиме дорогої Premium версії, а у Tableau немає тієї гнучкості, як у Qlik. У Qlik на QVD файлах ви можете робити зліпки систем на різний час і потім обробляти ці дані як вам завгодно

— Підключення зовнішніх скриптів
Крім QVD файлів для зберігання даних, Qlik код скрипту також можна винести за межі програми і підключати командою Include. Це дозволяє організовувати командну роботу, використовувати системи контролю версій, управляти єдиним кодом для різних додатків. У Power BI є розширений редактор запитів, але такої командної роботи нам не вдалося налаштувати як у Qlik. Взагалі, у всіх BI є з цим проблеми, керувати одночасно і даними, і кодом, і візуалізаціями у всіх додатках з єдиного місця просто неможливо. Максимум, що нам вдалося зробити, це винести QVD файли та код скриптів. Візуальні елементи доводиться редагувати всередині самих звітів, що дозволяє нам масово змінювати візуалізації в усіх клієнтів одночасно.

А як же такий механізм, як Live з'єднання? Tableau та Power BI підтримують LIVE з'єднання до ряду джерел, на відміну від Qlik. До цієї фічі ми ставимося досить байдуже, т.к. практика показує, що коли йдеться про великі дані працювати з LIVE з'єднанням стає просто неможливо. А BI у більшості випадків і потрібне для великих даних.

3. Очищення даних, ETL (Extract, Transform, Load)

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

У цьому розділі у мене 2 лідери, Qlik Sense та Power Bi.
Скажімо так, Qlik потужно, але складно. Розберетеся в їх SQL подібною мовою і ви зможете майже все - віртуальні таблиці, з'єднання та об'єднання таблиць, пробігтися циклом по таблиці і згенерувати нові таблиці, купа команд з обробки рядків. Наприклад, поле в 1 осередку, яке забите даними виду "Іванов 851 Білий" на льоту можна розкласти не тільки на 3 стовпці (як уміють), а відразу і на 3 рядки наприклад. Теж саме на льоту зробити об'єднання 3 рядків на 1 теж легко.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 9. Як завантажити та транспонувати таблицю в Qlik Sense з Google Sheets

Power BI у цьому плані видається простіше, але більшість завдань легко вирішується через конструктор запиту. Виставив ряд параметрів, транспонував таблицю, попрацював над даними, і це без єдиної рядки коду.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 10. Як завантажити та транспонувати таблицю в Power BI з AmoCRM

У Tableau мені здається інша ідеологія. Вони більше за красу та дизайн. Підключити купу різних джерел, об'єднати їх усі та обробити всередині Tableau мені здається дуже важко. У комерційних проектах у більшості випадків для Tableau вже готуються та акумулюються дані у сховищах та базах даних.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 11. Як завантажити та транспонувати таблицю в Tableau

4. Візуалізації

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

У цьому розділі ми не стали виокремлювати лідера. У нас буде окрема стаття, де ми на прикладі одного кейсу покажемо один і той самий звіт у всіх трьох системах (Стаття «Аналітика дівчат із низькою соціальною відповідальністю „). Тут більше справи смаку та майстерності аналітика. На просторах інтернету можна знайти дуже гарні картинки, збудовані на базі будь-якої з цих систем. Базові можливості візуалізацій приблизно однакові у всіх. Решта вирішується використанням Extensons. Є платні, безкоштовні. Є розширення від самих вендорів, так і від фрілансерів та інтеграторів. Ви можете написати власне розширення візуалізації для будь-якої платформи.

Мені подобається стиль Tableau, вважаю його строгим та корпоративним. Але отримати по-справжньому красиву картинку в Tableau важко. Відмінний приклад візуалізації Tableau, де використані одні розширення. Не зможу так повторити, т.к. у мене немає цих розширень, але виглядає красиво.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 12. Зовнішній вигляд звітів Tableau c Extensions

Power BI також можна зробити цікаво.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 13. Зовнішній вигляд звітів Power Bi c Extensions

Єдине, чого я не розумію в Power BI, чому у них такі дивні кольори за замовчуванням. На будь-якому графіку я змушений змінювати колір на свій фірмовий, корпоративний і дивуюся стандартному забарвленню.

Qlik Sense також залежить від Extensions. Використання додатків може змінювати звіти до невпізнання. Також можна накотити свою тему та оформлення.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 14. Зовнішній вигляд звітів Qlik Sense з Extensions

З точки зору розробника мені зручніше Qlik Sense через стандартні опції як альтернативні вимірювання та заходи. Можна в налаштуваннях візуалізації задати кілька вимірювань та заходів, і користувач може легко сам задати, що йому дивитися на тому чи іншому графіку.

У Power Bi та Tableau мені доводиться налаштовувати параметри, кнопки, програмувати поведінку системи залежно від цих параметрів. Дивуюсь, чому так складно. Теж саме з можливістю змінити вигляд вілуалізацій.

У Qlik можна в одному об'єкті заховати різні види візуалізацій, а в Power BI та Tableau з цим складніше. Знову ж таки, тут більше залежить від майстерності виконавця. Можна в будь-якій системі зробити шедевр, а без досвіду всюди виходитимуть невиразні графіки.

5. Корпоративне середовище - сервер, звіти

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Усі продукти мають корпоративні серверні версії. Я працював з усіма редакціями і можу сказати, що всі мають сильні і слабкі сторони. Вибір продукту повинен підбиратися з ваших вимог до програмного забезпечення з урахуванням їх нюансів. У всіх вендорів можна роздавати права як на рівні облікових записів та груп, так і на рівні Data Row Level Security. Доступно автоматичне оновлення звітів за розкладом.

Qlik Sense Enterprise чудова можливість побудувати аналітику всередині вашої організації для середнього бізнесу. Це може здатися дорожчим за Power BI Pro, але не треба забувати, що сервери Power BI Pro знаходяться в хмарі на території Microsoft і на продуктивність ви не можете вплинути, а коли вам потрібен буде Power BI Premium, який можна розгорнути на ваших серверах, то Ціна починається від 5000 $ на місяць.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Qlik Sense Enterprise стартує від 230 000 руб. на 5 ліцензій (плата за рік, далі тільки тех.підтримка), що набагато доступніше, ніж Power BI Premium. І Qlik Sense Enterprise дозволить використати всі можливості Qlik. Мабуть, крім однієї. Чомусь Qlik вирішили, що така функція як можливість надсилати звіти в PDF електронною поштою повинна поставлятися у вигляді окремого сервісу NPrinting.

Але Qlik Sense Enterprise потужніша за Power BI Pro і тому тут можна зробити наступне порівняння.

Qlik Sense Enterprise = Power BI Premium, при рівних можливостях виходить дешевше за середніх впроваджень. Великі застосування зазвичай прораховуються вже за вендора, там вони можуть давати індивідуальні умови під вашу компанію.

У цьому плані ми надамо перевагу Qlik Sense Enterprise, там є всі можливості побудувати серйозну аналітику на величезних даних. На нашу думку на великих масивах Qlik працюватиме швидше за Power BI, на конференціях Qlik траплялися клієнти, які спочатку тестували свої дані в мільярди записів і Power BI показував гірший результат.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 15. Зовнішній вигляд звітів сервера Qlik Sense Enterprise

Qlik Sense Cloud = Power BI Pro. Qlik Sense Cloud виходить у 1.5 рази дорожче* і там є дуже суттєве обмеження, яке нам не дозволяє цю платформу. Не можна використовувати Extensions, навіть вбудовані. А без розширень Qlik дещо втрачає свою візуальну красу.
Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 16. Зовнішній вигляд панелі керування Power BI Pro

*Альтернативним варіантом є використання Qlik Sense Enterprise за підпискою. Але щоб ця стаття не сприймалася як рекламна, своє ціноутворення ми не висвітлюватимемо.

А Tableau стоїть трохи осторонь для нас. Вони мають як хмарні передплати по 70$ на розробника і 15$ на перегляд, так і дорогі серверні рішення. Але основна ідея Tableau, що для великих даних потрібно обробку даних та їх зберігання організовувати на стороні. Об'єктивно менший функціонал не дозволить зробити серйозну обробку даних у Tableau. Візуалізувати, аналізувати, так. Але для маленького та середнього бізнесу зазвичай створювати окреме сховище буває проблемно. Я би знизив бал для Tableau тому, якби не їх 1 фішка. Сервер Tableau без проблем надсилає листи електронною поштою за розкладом із вкладеннями в CSV або PDF. Причому можна робити роздачу прав, автофільтрів та інше. Power BI і Qlik чомусь то так не можуть, а комусь це може бути критично. За рахунок цього Tableau витримує позицію у нашій суперечці.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 17. Зовнішній вигляд панелі керування Tableau Server

Також у корпоративному середовищі потрібно подумати про вартість впроваджень та обслуговування. У Росії склалася практика, що Power BI найпоширеніший у малому бізнесі. Це призвело до появи великої кількості вакансій та резюме, появи невеликих інтеграторів. Це дозволить знайти спеціалістів для невеликого проекту. Але швидше за все у них не буде досвіду великих впроваджень та роботи з великими даними. Qlik та Tableau навпаки. Партнерів Qlik небагато, а Tableau і ще менше. Ці партнери спеціалізуються на великих впровадження з великим середнім чеком. Вакансій та резюме на ринку не багато, поріг входження в ці продукти складніше, ніж у Power BI. Але в Росії є успішні впровадження цих продуктів на тисячі користувачів, і ці продукти добре показують себе на великих даних. Необхідно просто розуміти слабкі та сильні сторони продуктів стосовно саме вашого бізнесу.

6. Підтримка мобільних пристроїв.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

У цьому розділі ми виділимо Power BI та Tableau. Ви можете встановити мобільні програми і вони досить адекватно виглядатимуть на екранах мобільних пристроїв. Хоча нам здається, аналітика на мобільних пристроях програє аналітиці на ПК. Все ж таки не так зручно користуватися фільтрами, картинки маленькі, цифри погано видно і т.д.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 18. Зовнішній вигляд звіту Power BI iPhone

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Рисунок 19. Зовнішній вигляд звіту Tableau на iPhone

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 20. Зовнішній вигляд звіту Qlik Sense на iPhone

Чому занизили бали Qlik? З незрозумілих нам причин мобільний клієнт доступний тільки на iPhone, на Android доведеться користуватися звичайним браузером. Плюс при використанні Qlik відразу доводиться розуміти, що ряд Extension або візуалізацій не зменшуються або позиціонуються авто в мобільних пристроях як очікується. Звіт, який дуже красиво виглядає в ПК, на маленькому екрані виглядає набагато гірше. Доводиться для мобільних пристроїв робити окремий звіт, де прибирати фільтри, KPI та ще ряд об'єктів. Це також стосується Power BI або Tableau, але Qlik особливо сильно проявляється. Ми сподіваємося, Qlik ще попрацює над своїм мобільним клієнтом.

Якщо у вас багато часу планується проводити аналітику саме з мобільних пристроїв, то є сенс поставити всі 3 клієнти та на тестових звітах перевірити їх відображення. Будь-який вендор на своєму сайті має галерею тестових звітів для ознайомлення.

7. Embedded (вбудована) аналітика в сторонні програми/сайти

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Використання аналітики як стороннього сервісу не завжди зручне. Можливо ви розробляєте свій продукт, але не готові зайнятися розробкою візуалізації та двигуна аналітики з нуля. Можливо, ви хочете розгорнути аналітику на своєму сайті, щоб клієнт сам реєструвався, завантажував свої дані та проводив аналіз усередині особистого кабінету. Для цього вам потрібна вбудована аналітика (Embedded).
Всі продукти дозволяють зробити це, але в цій категорії ми виділимо Qlik.

Power Bi та Tableau однозначно говорять, що для таких цілей потрібно купувати окремий продукт Tableau Embedded Analytics або Power BI Embedded. Це не дешеві рішення в тисячах доларів за місяць, що одразу обмежує їхнє використання. Більшість проектів одразу стає нерентабельними для наших клієнтів. Мається на увазі, що вам потрібно не просто опублікувати звіт усієї мережі Інтернет, а забезпечити публікацію звітів відповідно до певних доступів, захисту даних, авторизації користувачів і т.д.

А Qlik дозволить вам викрутитись. Звичайно, у них теж є Qlik Analytics Platform, який ліцензується на сервер і організує необмежену кількість підключень. Це також буде дорого як і конкуренти Tableau та Power Bi. І у випадку з необмеженими підключеннями варіантів особливо немає.

Але у Qlik є таке поняття як Mashup. Допустимо у вас є Qlik Sense Enterprise та 10 ліцензій. Стандартна аналітика, зовнішній вигляд усе вже набридло. Ви піднімаєте власний сайт або програму, і можете впровадити всю свою аналітику прямо туди. Фішка в тому, що спрощено кажучи, Mashup – це візуалізація в програмному коді. За API ви можете програмно задати створення візуалізації всередині вашої програми або сайту. Qlik Sense Enterprise вам, як і раніше, буде потрібен для ліцензування (ліцензії на підключення до сайту = ліцензій на підключення до BI), для завантаження даних тощо, але візуалізації вже відображатимуться не на стороні цього сервера, а вбудовуватимуться до вас у програму або сайт. Ви можете використовувати CSS стилі, встановити нові шрифти, кольори. Ваші 10 користувачів тепер не заходитимуть на сервер аналітики, а користуватимуться вашим корпоративним порталом або програмою. Аналітика вийде нового рівня.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)
Малюнок 21. Зовнішній вигляд звіту Qlik Sense, впровадженого на веб-сайт

Вже складно буде зрозуміти, де елементи сайту, а де вже починається Qlik Sense.
Звичайно, вам знадобиться програміст, а навіть скоріше кілька. Один для веб-програмування, один для роботи з API Qlik. Але результат того вартий.

Висновки. Підведемо підсумки.

Технічні відмінності BI систем (Power BI, Qlik Sense, Tableau)

Важко однозначно сказати, хто кращий, а хто гірший. Power BI і Qlik у нашому змаганні йдуть нарівні, Tableau трохи поступається. Але можливо, для вашого бізнесу результат буде інший. У BI платформах дуже важливою є візуальна складова. Якщо ви подивилися десятки демо звітів і картинок в інтернеті по всіх BI системах і вам не подобається як виглядає одна з платформ, то швидше за все ви її не впроваджуватимете, навіть якщо вас влаштовує ціна або тих. Характеристики.

Далі вам обов'язково потрібно буде прорахувати вартість ліцензій, впровадження та змісту BI платформи. Можливо, у вашому випадку буде виявлено лідера. Велике значення має підрядник або можливість найняти відповідного фахівця. Без професіоналів у будь-якій платформі результат буде плачевним.

Успішних вам BI-інтеграцій, Андрій Жданов та Лазарєв Володимир, Аналітікс Груп

Джерело: habr.com

Додати коментар або відгук