BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс для бизнес-аналитиков » “Техническая база” для менеджеров продукта — часть 4 — базы данных

“Техническая база” для менеджеров продукта — часть 4 — базы данных

Записи из курса по technical product manager; позиционируют как: “Говори с разработчиками на одном языка”.

Это 4я часть из серии, в ней собраны: классификация баз данных, выбор БД под проект, ORM, типы связей, sql и non sql, кэширование.

 

Базы данных: хранение и обработка

Для реализации БД системы (структура) нет готовых решений. Это делает разработчик и бизнес — аналитик на этапе описания ТЗ.

SQL — язык структурированных запросов;

Все базы данных делятся на 2 типа: реляционные (SQL) и не реляционные (nonSQL).

типы БД

Выбор БД, так же как и языка, зависит от задачи и типа данных. Стоит для себя ответить (составить запрос, провести анализ) на вопросы:

  • простые: не содержат связей, несут описательный характер, простая связь key — value;
    Например: стол {высота, ширина, цвет, кол-во ножек, цена};
  • сложные: имеют связи, зависимости,
    например: user {user_id, личные данные {}, данные от системы {}, возраст};
  • запись: большое кол-во операция записи; key-value или колоночная;
  • чтение: много выборок данных, поиск связей;
  • отображение: для отчетов;
  • аналитика: для поиска инсайтов;
  • умеренно данных:
  • много данных: (что такое много никто не знает), принято считать, когда больше одного носителя (сервера), кластера;

 

ORM (Object-Relational Mapping) — технология программирования (библиотека), которая связывает базу данных с концепциями языков программирования:

  • объектное представление данных (модель): работа с сущностями кода, а не объектами БД;
  • легко покрыть тестами;
  • легко поддерживать и модифицировать;
  • проектируем модели на уровне бизнес логики: изменения через код, влияют на хранение.

Узнать больше: https://habr.com/ru/company/pgdayrussia/blog/328690/; https://habr.com/...

Проектирование модели: описание (на уровне кода), как будут выглядеть данные, с которыми программа будет взаимодействовать; нам не нужно знать, как это будет храниться в БД; есть служебные модели — знают всю информацию; модели для API — ограниченные модели для сторонних сервисов (без некоторых полей данных, урезанная модель). В базе — мы работаем с цифрами/значениями; в коде — с объектами/структурами;

Рекомендация: стоит использовать во всех проектах ORM (вместо чистого sql), т.к. он дает больше гибкости, легче настроить, меньше рутины, и тд.

Реляционные (SQL) БД:

Все данные хранятся в строго описанных таблицах (название колонок, тип данных, объем) и содержат связи между колонками по ключам и значениям (индексы). У них низкий порог входа. Такие БД похожи на Excell таблицы. Используют единый язык запросов — SQL.

Индексы (гуманитарное объяснение): способ сортировки данных в ножном порядке (удобном для поиска).
Например: есть телефонный справочник, где все абоненты записаны по фамилиям и по алфавиту;
если нужно найти Яковлева, то нет смылса листать весь справочник, можно сразу пойти с конца;
но, если нужно найти человека по имени (не зная фамилию)?
нужен второй справочник, который отсортирован по имени.

Типы связей:

  1. 1 — к — 1: одной записи в табилце А, отвечает одна запись из таблицы Б; свзяь по полю id (индекс); работает в обе стороны;
    например: когда нужно вынести телефоны абоненентов или адрес в отдельную таблицу, чтобы не было избиточности;
  2. 1 — к — многим: одной записи в табилце А, отвечают несколько записей из таблицы Б;
    например: один абонент, может иметь несколько телефонов или адресов;
  3. много — к — многим:
    например: есть таблица с ролями (админ, польтзователь, бан), много пользователй в каждой группе; при этом в разном порядке;

Почему нельзя хранить все данные в одной таблице?
Избыточность
: дублирование или хранение в одной таблице БД информации, которая там не должна быть (или уже есть в дургой таблице, или можно рассчитать по доступным данным, или сенсетив данные);
Их нужно нормализовать — привести в порядок;

Как выбирать данные?
Для этого нужно сделать запрос на языке SQL. Его нужно выучить отдельно. Пример запроса:

select “что нужно выбрать”
from “названеи таблицы”
where “фильтры”

Не реляционные (nonSQL) БД:

Такие БД не имеют связей (таблиц, отношений, id), данные хранятся в другом виде (без строгой структуры), не имеют единого языка запросов, имеют большую скорость обработки данных, легко масштабируются, нет транзакций (запросы потоковые, если хотя бы один из запросов не прошёл, запрос отменяется).

Способы организации не реляционных БД:

  1. Табличная: ключ — значения, плоская таблица, где соотносятся свойства;
    например: хранение в браузере — local store; session store; reddis — хранение данных в операционной памяти для быстрой обработки;
    базы: Riak, Amazon DynamoDB.
  2. Колоночная: каждая колонка — это как бы отдельная таблица из одной колонки, которая хранит только свои значения и id для связи; все данные хранятся в отсортированном виде; структура хранения данных напоминает индексы в обычных базах данных, однако между колонками нет физической связи;
    например: событийные таблицы, над которыми выполняются сложные выборки (агрегации, фильтры, сортировки, аналитических выборок) типа добавление товаров в корзину в интернет магазине;
    базы: Vertica, HBase, Cassandra.
  3. Документоориентированные: в них нет понятия таблицы, но есть индекс (со своей структурой); очень похожа на табличную (ключ — значение), но значение представляет собой не строку, а объект (json, xml: несколько полей внутри);
    базы: Couchbase и MongoDB.
  4. Графовые: используют рёбра и узлы для представления данных; узлы связаны между собой определённым отношениями, представленными рёбрами между ними; у узлов и отношений есть некоторые свойства. Используються в обучении нейронних сетей, геймдеве (сообщечства), соц сетях, контекстной релкаме.
    базы: GraphQL.

 

Кэширование

Часто, встает задача оптимизировать запросы: на выборку данных, при ответе API и тд. Для этого, можно кэшировать на время ответы.

Клиент делает запрос: через сайт из браузера, запрос летит на веб-сервер, тот обрабатывает его, обращается к коду, обращается к БД за данными, формирует и отдает ответ.

Есть несколько уровней кэширования:

  • на уровне клиента: сохранять картинки, JS-код, статический контент на устройстве клиента (browser cache);
  • на сетевом уровне: запросы могут идти из разных ГЕО; можно выбирать, с какого сервера ответить (если их много), чтобы сохранить время прохождения канала;
    CDN —content delivery network (пр. Cloudflare), сеть для распределения трафика между узлами системы.
  • на уровне сервера: все запросы к БД и серверу, могут быть сохранены в cache server, и отдаваться с него;
  • на уровне приложения: сохранять типовые расчеты в app cache;
  • на уровне базы данных: DB cache, колонки или строки, к которым обращаются чаще других, можно заносить в кэш.

 

Идеальная машина для кэширования

 

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Техническая база для менеджеров продукта — часть 3 — backend
Следующая статья →
Техническая база для менеджеров продукта — часть 5 — архитектура продукта

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • «Балтийский лизинг» — первая компания в России, получившая лицензию № 0001 от Министерства экономики РФ на лизинговую деятельность, лицензия зарегистрирована 2 сентября 1996 года. «Балтийский лизинг» работает на российском рынке 33 года: компания представлена 79 филиалами по всей стране, сегодня в штате более 1300 сотрудников. За последние десять лет компания профинансировала имущество для 80 000 клиентов.

  • Банк "Санкт-Петербург" - это универсальный коммерческий банк, предоставляющий полный спектр финансовых услуг для частных и корпоративных клиентов. Банк основан в 1990 году и имеет генеральную лицензию Банка России на осуществление банковских операций. Сеть банка включает более 170 офисов и отделений, а также свыше 1000 банкоматов и терминалов в Санкт-Петербурге, Москве и других регионах.

  • ООО «Модум-Транс» — независимый оператор грузовых железнодорожных перевозок, лидирующий по количеству инновационного парка на сети РЖД.

  • Компания "Норникель" - лидер горно-металлургической отрасли в России и мире. Она производит металлы, необходимые для развития экологичной экономики и транспорта.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.