Как и зачем становиться data-driven в Казахстане

Автор: Kolesa Group
казахстанская IT-компания

Рассказывает Дмитрий Ботанов, операционный директор (COO) Kolesa Group

Объяснять в 2020 году, что такое data-driven, уже как-то неудобно. Но практика показывает, что многие компании в СНГ все еще пытаются распробовать этот подход. Так вот, data-driven — это работа через данные. Принимать решения о том, что стоит делать с продуктом или компанией, на основе собственного мнения — плохо. За каждым решением должны стоять цифры: результаты A/B-тестов, выводы из предиктивной аналитики и качественных исследований.

Команда Kolesa Group всегда старалась работать, ориентируясь на показатели. Дашборды в Grafana, Google Analytics, Firebase — это инструменты, которыми мы пользуемся столько, сколько себя помним. Но по-настоящему серьезно за работу с данными мы взялись в середине 2017 года. Сначала был подготовительный период, когда мы несколько месяцев занимались сбором и подготовкой данных. Как говорится, «You don't need Big Data — You need the Right Data».

Еще здесь стоит сразу оговориться, почти всё, что в Казахстане принято называть Big Data, на самом деле таковым не является. Даже в нашем случае, когда объем данных уже измеряется терабайтами, называть их Big Data было бы нескромно.

Дмитрий Ботанов

Создание своего отдела аналитики было одной из лучших инвестиций в развитие компании за последние несколько лет

 

В 2018 году мы начали с небольшой команды. Думали, нам хватит пяти крутых специалистов, в основном это были казахстанцы, которые работали за рубежом (Microsoft, Tinkoff Bank), и выпускники МГУ. Но в результате за 1,5 года отдел аналитики разросся до 15 человек и продолжает расти — таковы потребности бизнеса.

Накопленная экспертиза теперь позволяет нам обучать свой кадровый резерв. В феврале 2020 года (дедлайн для заявок — 31 января) мы проведем первую «Колёса Академию», посвященную анализу данных, — будем готовить product-аналитиков для себя и не только. Академия проходит в формате продвинутой трехмесячной оплачиваемой стажировки — к ребятам относятся как к полноценным сотрудникам и дают решать реальные задачи. Большинство стажеров становятся нашими сотрудниками.

Работа с данными не ограничивается специальным отделом, потому что наши аналитики создали среду, в которой любой product-менеджер, UX-дизайнер или руководитель отдела может самостоятельно достать нужные ему показатели или, скажем, сделать несложный отчет в AppMetrica. А в большинстве отделов есть дашборды, позволяющие мониторить результаты повседневной работы, моментально реагировать на аварии в дата-центрах, отслеживать результаты релизов или A/B-тестов. 

На старте важно понимать, чего вы хотите от своего отдела аналитики. Легко увлечься избыточно сложными решениями, которые могут не дать ощутимых результатов. Так что главное —  начать с правильно поставленных задач и KPI, а во главе работы с данными должны стоять правильные люди, менеджеры и тимлиды, понимающие потребности компании и обладающие крутым техническим бэкграундом. Они-то и обеспечат связь технологий с бизнесом. Иначе вы рискуете очнуться после релиза суперсложного проекта, который ничего не дал продукту.

Думаю, любой отдел data-science и ML (машинное обучение) через это проходил: запустили крутой сервис, применили машинное обучение, компьютерное зрение, использовали последние технологии, закупили мощное железо, выступили на конференции и… улучшили KPI продукта на 0,01%. Знакомо? Я утрирую, но мы были в ситуациях, когда для решения простой задачи придумывали сложное решение.

И если уж говорить о поджидающих граблях, то второй невероятно важный аспект — это доверие к данным. В работе с данными критична их чистота, а также правильность сбора и подготовки. Например, львиная доля всех ошибок в продуктовой аналитике приходится буквально на два кейса: какие-то нажатия пользователей на кнопки перестали записываться, но никто этого не заметил, либо стали записываться с дублированием. Любая регрессионная (предсказательная) модель или A/B-тест (тест на контрольной группе) ничего не стоят, если в их основе лежат ошибочные данные. И такие «фейлы» нам тоже знакомы. Если бизнес сделает на основе ошибочного анализа неправильные выводы, это может подорвать доверие ко всему подходу data-driven в принципе.

Как этого избежать? Ничего фантастического — перепроверять сделанную работу, наличие и корректность событий для аналитики. Плюс, конечно же, необходимо, чтобы аналитик «чувствовал» продукт не хуже product-менеджера. Тогда он изначально будет замечать, что какие-то цифры нереалистично растут, а другие — падают без видимых причин.

Содержать хороший отдел аналитики – очень дорого: хранение и обработка данных, «железо», зарплаты крутых специалистов, дорогие инструменты. Вам предстоит инвестировать десятки тысяч долларов каждый месяц, поэтому крайне важно понимать эффективность этой работы и давать команде по-настоящему амбициозные задачи, которые обеспечат бизнесу хороший рост.

Любовь к работе с данными заразна

Когда работа по принципу data-driven встанет на рельсы, вы увидите, как всё вокруг меняется. Работать с цифрами - это круто, эффективно и интересно. Если у вас хорошая команда, она быстро заразится этим подходом.

Несколько примеров использования:

  1. Любое изменение в продукте предварительно проверяется несколькими этапами аналитики. Это может быть предиктивная аналитика, качественные исследования, когортный анализ пользователей, A/В-тесты и много чего еще. Мы стараемся помнить, что разработка — самый дорогой способ проверки продуктовых гипотез. И по-хорошему на все вопросы и предположения нужно ответить до того, как вы решили занять целую команду разработчиков на три месяца.
  2. Постановка KPI. Мне приятно видеть, как руководитель отдела или product-менеджер, чтобы поставить KPI для команды, не просто берет прошлогодние показатели и умножает их на два, а самостоятельно строит нелинейную регрессию, учитывая сезональность и влияние разных внешних факторов, чтобы потом «провалидировать» эти цифры у аналитика. Это крутой подход, который позволяет задавать амбициозные, но выполнимые планы, чтобы регулярно мотивировать команду: «Было непросто, но мы это сделали!».
  3. Автоматизация задач. Если у вас 11,5 млн пользователей, любая мелкая задача превращается в ежедневную большую работу. Проверка объявлений, мониторинг показателей, сбор данных по маркетинговым компаниям. Большинство таких задач можно автоматизировать. Вместо работы нескольких модераторов — ML-модель для проверки объявлений, вместо ежедневного отчета об изменениях в показателях — автоматизированная рассылка или чат-бот.

    Самый яркий пример — наша «Гермиона». Это микросервис, работающий на основе алгоритмов машинного обучения и проверяющий большинство объявлений на kolesa.kz. Этот опыт мы сейчас активно масштабируем, часть объявлений market.kz уже также проверяется автоматически, а скоро аналогичный сервис появится и для анализа фотографий автомобилей на «Колёсах».

  4. Индивидуальный подход. Продукт должен быть максимально эффективен для всех типов пользователей. Тогда они готовы будут платить за полученную пользу. В такой задаче не обойтись без сегментации и индивидуального подхода. Мы работаем уже с двумя десятками сегментов. Они могут быть как очевидными (покупатель, продавец, частник, бизнес), так и нестандартными, рассчитанными по поведению пользователей. Не перестаю удивляться тому, как такие сегменты называют аналитики в своих отчетах: «орлы», «горячие штучки», «черепашки-ниндзя». Каждому сегменту мы стараемся предложить пакет услуг и функционал, который будет полезен конкретно для него.

Что нам дает data-driven-подход?

Вот уже третий год Kolesa Group растет в полтора-два раза от года к году. Со своей стороны этот успех я на 50% могу отнести именно к работе с данными, во всех ее проявлениях: ценообразование и автоматизация задач, продуктовая аналитика и многие другие процессы.

Быть data-driven в 2020 году — уже норма. Если в вашей компании все еще нет хорошей аналитики, то стоит поторопиться, ведь до получения профита предстоит пройти еще долгий путь.

: Если вы обнаружили ошибку или опечатку, выделите фрагмент текста с ошибкой и нажмите CTRL+Enter
27319 просмотров
Поделиться этой публикацией в соцсетях:
Forbes Video

Как Дамир Аманжолов боролся с мародерами и помогал раненым во время беспорядков в Алматы

Обсуждаемые в Соцсетях
Самые Читаемые

Орфографическая ошибка в тексте:

Отмена Отправить
176.02msRequest Duration7.25MBMemory UsageGET blogs/blogsid_{blogID}RouteAuth status
    • Booting (38.98ms)
    • Application (144.02ms)
      21 templates were rendered
      • blogs-inner (resources/views/blogs-inner.blade.php)3blade
        Params
        0
        article
        1
        mlt_articles
        2
        keywords
      • banners.B (resources/views/banners/B.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
      • partials.social-bid (resources/views/partials/social-bid.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
      • banners.C (resources/views/banners/C.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.F (resources/views/banners/F.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • partials.sidebar (resources/views/partials/sidebar.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.D (resources/views/banners/D.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • widgets.CorpBlogs (resources/views/widgets/CorpBlogs.blade.php)1blade
        Params
        0
        corp_blogs
      • widgets.Anounce (resources/views/widgets/Anounce.blade.php)1blade
        Params
        0
        anounce
      • widgets.BirthdaysToday (resources/views/widgets/BirthdaysToday.blade.php)1blade
        Params
        0
        birthdays
      • widgets.EditorChoise (resources/views/widgets/EditorChoise.blade.php)1blade
        Params
        0
        editor_choise
      • banners.E (resources/views/banners/E.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • widgets.RandProjectVideo (resources/views/widgets/RandProjectVideo.blade.php)1blade
        Params
        0
        video
      • widgets.MostShared (resources/views/widgets/MostShared.blade.php)1blade
        Params
        0
        most_shared
      • partials.most-shared (resources/views/partials/most-shared.blade.php)5blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        most_shared
      • widgets.MostViews (resources/views/widgets/MostViews.blade.php)1blade
        Params
        0
        most_views
      • partials.most-views (resources/views/partials/most-views.blade.php)5blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        most_views
      • banners.tds.4 (resources/views/banners/tds/4.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • layout (resources/views/layout.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.tds.1 (resources/views/banners/tds/1.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      • banners.G (resources/views/banners/G.blade.php)11blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        article
        5
        mlt_articles
        6
        keywords
        7
        __currentLoopData
        8
        item
        9
        key
        10
        loop
      uri
      GET blogs/blogsid_{blogID}
      middleware
      web
      as
      blog
      controller
      App\Http\Controllers\BlogsController@displayBlog
      namespace
      App\Http\Controllers
      prefix
      null
      where
      file
      app/Http/Controllers/BlogsController.php:35-61
      28 statements were executed66.91ms
      • select * from `forbes_data` where `Date` <= '2025-04-21 11:33:29' and `finished` = '1' and `DataID` = '217276' limit 11.16ms/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 2025-04-21 11:33:29
        • 1. 1
        • 2. 217276
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Data.php:101
        • 14. /app/Http/Controllers/BlogsController.php:37
        • 64. /public/index.php:54
      • select * from `forbes_data_data` where `forbes_data_data`.`DataID` in ('217276')1.13ms/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 217276
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 20. /app/Models/Data.php:101
        • 21. /app/Http/Controllers/BlogsController.php:37
        • 71. /public/index.php:54
      • select * from `forbes_data_images` where `forbes_data_images`.`ImageID` in ('99106')990μs/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 99106
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 27. /app/Models/Data.php:101
        • 28. /app/Http/Controllers/BlogsController.php:37
        • 78. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('99106')930μs/app/Models/Data.php:101forbes_base
        Metadata
        Bindings
        • 0. 99106
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 34. /app/Models/Data.php:101
        • 35. /app/Http/Controllers/BlogsController.php:37
        • 85. /public/index.php:54
      • SELECT * FROM forbes_mlt_index WHERE datatype=1 AND unxtime>=1713681209 AND id<>217276 AND MATCH('Как | зачем | становиться | datadriven | Казахстане | Рассказывает | Дмитрий | Ботанов | операционный | директор | Kolesa | Group') LIMIT 6 OPTION ranker = sph04,max_matches=6;39.23ms/app/Models/Search.php:56
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 8. /app/Models/Search.php:56
        • 9. /app/Http/Controllers/BlogsController.php:40
        • 59. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160104' limit 1620μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160104
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '159720' limit 1600μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 159720
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160816' limit 1580μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160816
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160009' limit 1570μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160009
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160010' limit 1580μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160010
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • select `ImagePath` from `forbes_images` where `ImageID` = '160463' limit 1610μs/app/Models/Images.php:22forbes_base
        Metadata
        Bindings
        • 0. 160463
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 13. /app/Models/Images.php:22
        • 14. /app/Http/Controllers/BlogsController.php:43
        • 64. /public/index.php:54
      • update `forbes_data_data` set `Views` = `Views` + 1 where `DataID` = '217276'3.32ms/app/Http/Controllers/BlogsController.php:50forbes_base
        Metadata
        Bindings
        • 0. 217276
        Backtrace
        • 15. /app/Http/Controllers/BlogsController.php:50
        • 16. /app/Http/Controllers/BlogsController.php:50
        • 66. /public/index.php:54
      • select * from `forbes_data_authors` where `forbes_data_authors`.`DataID` = '217276' limit 1990μsview::blogs-inner:9forbes_base
        Metadata
        Bindings
        • 0. 217276
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:9
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_authors` where `forbes_authors`.`AuthorID` = '1153' limit 1850μsview::blogs-inner:9forbes_base
        Metadata
        Bindings
        • 0. 1153
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:9
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` = '145474' limit 1740μsview::blogs-inner:64forbes_base
        Metadata
        Bindings
        • 0. 145474
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:64
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_data_social_stats2` where `forbes_data_social_stats2`.`DataID` = '217276' limit 1900μsview::blogs-inner:99forbes_base
        Metadata
        Bindings
        • 0. 217276
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 18. view::blogs-inner:99
        • 25. /vendor/symfony/http-foundation/Response.php:200
        • 71. /public/index.php:54
      • select * from `forbes_prteaser_group` where `url` not in ('sap') and `validfrom` <= '2025-04-21 11:33:29' and `validtill` >= '2025-04-21 11:33:29' limit 5610μs/app/Models/TeaserGroups.php:30forbes_base
        Metadata
        Bindings
        • 0. sap
        • 1. 2025-04-21 11:33:29
        • 2. 2025-04-21 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Models/TeaserGroups.php:30
        • 13. /app/Widgets/CorpBlogs.php:22
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:10
        • 28. view::partials.sidebar:10
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_anounces` order by `AnounceID` desc limit 1640μs/app/Models/Anounces.php:38forbes_base
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        • The SELECT statement has no WHERE clause and could examine many more rows than intended
        Backtrace
        • 13. /app/Models/Anounces.php:38
        • 14. /app/Widgets/Anounce.php:20
        • 20. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 23. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 28. view::partials.sidebar:13
        • 29. view::partials.sidebar:13
        • 35. view::blogs-inner:231
        • 42. /vendor/symfony/http-foundation/Response.php:200
        • 88. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('160604')770μs/app/Models/Anounces.php:38forbes_base
        Metadata
        Bindings
        • 0. 160604
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 20. /app/Models/Anounces.php:38
        • 21. /app/Widgets/Anounce.php:20
        • 27. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 28. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 29. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 30. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 35. view::partials.sidebar:13
        • 36. view::partials.sidebar:13
        • 42. view::blogs-inner:231
        • 49. /vendor/symfony/http-foundation/Response.php:200
        • 95. /public/index.php:54
      • select * from `forbes_bdays` where month(`Bday`) = '4' and day(`Bday`) = '21' order by `Bday` desc690μs/app/Models/Birthdays.php:29forbes_base
        Metadata
        Bindings
        • 0. 4
        • 1. 21
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Birthdays.php:29
        • 13. /app/Widgets/BirthdaysToday.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:16
        • 28. view::partials.sidebar:16
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select `forbes_data_tops`.`DataID`, `forbes_data`.`Date` from `forbes_data_tops` inner join `forbes_data` on `forbes_data_tops`.`DataID` = `forbes_data`.`DataID` and `forbes_data`.`finished` = '1' where `forbes_data_tops`.`StructureID` = '66' and `forbes_data`.`Date` <= '2025-04-21 11:33:29' order by `forbes_data_tops`.`Position` asc limit 1 offset 03.41ms/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. 66
        • 2. 2025-04-21 11:33:29
        Backtrace
        • 12. /app/Models/DataTops.php:103
        • 13. /app/Widgets/EditorChoise.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:19
        • 28. view::partials.sidebar:19
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data_data` where `forbes_data_data`.`DataID` in ('320937')1.51ms/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 320937
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 19. /app/Models/DataTops.php:103
        • 20. /app/Widgets/EditorChoise.php:20
        • 26. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 27. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 28. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 29. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 34. view::partials.sidebar:19
        • 35. view::partials.sidebar:19
        • 41. view::blogs-inner:231
        • 48. /vendor/symfony/http-foundation/Response.php:200
        • 94. /public/index.php:54
      • select * from `forbes_data_images` where `forbes_data_images`.`ImageID` in ('160257')790μs/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 160257
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 26. /app/Models/DataTops.php:103
        • 27. /app/Widgets/EditorChoise.php:20
        • 33. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 34. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 35. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 36. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 41. view::partials.sidebar:19
        • 42. view::partials.sidebar:19
        • 48. view::blogs-inner:231
        • 55. /vendor/symfony/http-foundation/Response.php:200
        • 101. /public/index.php:54
      • select * from `forbes_images` where `forbes_images`.`ImageID` in ('160257')600μs/app/Models/DataTops.php:103forbes_base
        Metadata
        Bindings
        • 0. 160257
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 33. /app/Models/DataTops.php:103
        • 34. /app/Widgets/EditorChoise.php:20
        • 40. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 41. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 42. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 43. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 48. view::partials.sidebar:19
        • 49. view::partials.sidebar:19
        • 55. view::blogs-inner:231
        • 62. /vendor/symfony/http-foundation/Response.php:200
        • 108. /public/index.php:54
      • select * from `forbes_video` where `isShow` = '1' and `project` = 'qna' order by RAND() limit 12.11ms/app/Models/Video.php:42forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. qna
        Hints
        • Use SELECT * only if you need all columns from table
        • ORDER BY RAND() is slow, try to avoid if you can. You can read this or this
        Backtrace
        • 12. /app/Models/Video.php:42
        • 13. /app/Widgets/RandProjectVideo.php:24
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:28
        • 28. view::partials.sidebar:28
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data` inner join `forbes_data_social_stats2` on `forbes_data_social_stats2`.`DataID` = `forbes_data`.`DataID` where `Date` >= '2025-04-20 11:33:29' and `AnounceID` is null and `finished` = '1' order by `forbes_data_social_stats2`.`facebook` desc limit 7650μs/app/Models/Data.php:544forbes_base
        Metadata
        Bindings
        • 0. 2025-04-20 11:33:29
        • 1. 1
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Data.php:544
        • 13. /app/Widgets/MostShared.php:21
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:36
        • 28. view::partials.sidebar:36
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_data` inner join `forbes_data_data` on `forbes_data`.`DataID` = `forbes_data_data`.`DataID` where `Date` <= '2025-04-21 11:33:29' and `finished` = '1' and `DataType` = 'articles' and `Date` >= '2025-04-20 11:33:29' order by `forbes_data_data`.`Views` desc limit 7700μs/app/Models/Data.php:560forbes_base
        Metadata
        Bindings
        • 0. 2025-04-21 11:33:29
        • 1. 1
        • 2. articles
        • 3. 2025-04-20 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Models/Data.php:560
        • 13. /app/Widgets/MostViews.php:20
        • 19. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 20. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 27. view::partials.sidebar:46
        • 28. view::partials.sidebar:46
        • 34. view::blogs-inner:231
        • 41. /vendor/symfony/http-foundation/Response.php:200
        • 87. /public/index.php:54
      • select * from `forbes_video` where `isShow` = '1' and `addDate` >= '2025-04-20 11:33:29' order by `addDate` desc limit 1630μs/app/Models/Video.php:71forbes_base
        Metadata
        Bindings
        • 0. 1
        • 1. 2025-04-20 11:33:29
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Models/Video.php:71
        • 14. /app/Widgets/BoostVideo.php:21
        • 20. /vendor/arrilot/laravel-widgets/src/Misc/LaravelApplicationWrapper.php:48
        • 21. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:54
        • 22. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:75
        • 23. /vendor/arrilot/laravel-widgets/src/Factories/WidgetFactory.php:17
        • 28. view::layout:602
        • 29. view::layout:602
        • 35. view::blogs-inner:265
        • 42. /vendor/symfony/http-foundation/Response.php:200
        • 88. /public/index.php:54
        web
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        api
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
          _token
          Tr6a1KyYtGe82UulhVBbqTNCOpdgUrQY5Tvy0XwC
          _previous
          array:1 [ "url" => "https://test.forbes.kz/blogs/blogsid_217276" ]
          PHPDEBUGBAR_STACK_DATA
          []
          format
          html
          content_type
          text/html; charset=UTF-8
          status_text
          OK
          status_code
          200
          request_query
          []
          request_request
          []
          request_headers
          array:25 [ "content-type" => array:1 [ 0 => "" ] "content-length" => array:1 [ 0 => ""...
          request_server
          array:52 [ "TEMP" => "/srv/www/forbes.kz/tmp" "TMPDIR" => "/srv/www/forbes.kz/tmp" "TMP" => "/...
          request_cookies
          []
          response_headers
          array:5 [ "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ ...
          path_info
          /blogs/blogsid_217276
          session_attributes
          array:3 [ "_token" => "Tr6a1KyYtGe82UulhVBbqTNCOpdgUrQY5Tvy0XwC" "_previous" => array:1 [ "u...