Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Хранилища данных

Зачем

  • MS Хранилища данных
  • Интегрирует множество источников данных и помогает снизить нагрузку на производственную систему
  • Оптимизированные данные для доступа к чтению и последовательного сканирования диска
  • Хранилище данных помогает защитить данные от обновлений исходной системы
  • Позволяет пользователям выполнять управление основными данными
  • Улучшение качества данных в исходных системах

Основные типы хранилищ:

  • хранилища в третьей нормальной форме (3NF)
  • хранилища с измерениями (типа «Звезда» или «Снежинка»)
  • хранилища с измерениями Data Vault

Виды

Критерии

  • Structured
    • OLTP (MSSQL..)
      • RDBMS (Relational Database Management System)
        • Almost anything could be solved by them
    • OLAP
      • Column Family (ClickHouse..)
  • Time-series database (Prometheus..)
    • Store and manage time-stamped data
  • Semi Structured
    • NoSQL
      • Key Value (Redis)
      • Graph database (Neo4J)
      • Document store (MongoDB)
      • Wide column store (Cassandra)
    • Full text search Полнотекстовый поиск (ElasticSearch) - DSE системы
  • UnStructured
    • BLOB (Minio)

Паттерны

  • Модель данных звезда — оптимальная структура данных при переходе на российский BI
  • Агрегированные витрины
    • Materialized View
  • Data Mining против хранилища данных
  • On-Line Analitical Processing (OLAP) - оперативная аналитическая обработка данных
    • принципы построения систем поддержки принятия решений (Decision Support System - DSS)
    • хранилищ данных (Data Warehouse)
    • систем интеллектуального анализа данных (Data Mining)
  • Мутабельные (изменяемые mutable) или иммутабельные (не изменяемые immutable) данные
  • Принципы ACID
    • atomaric
    • consistently
    • isolation
    • durability
  • OLTP (Online Transaction Processing)
    • CRUD обработка транзакций
  • Нормальная форма отношений в РСУБД 1, 2, 3 для OLTP
    • Денормализация отношений для OLAP
    • В решениях 1С компромисс реализован следующим образом: События при записи в базу пишутся сразу в несколько мест
      • В одном месте записи имеют мало индексов и оптимизированы под OLTP нагрузки
      • в другом месте записи индексируются по всем полям и адаптированы для OLAP нагрузок
      • Такие таблицы называются регистрами накоплений и регистрами сведений.
  • Секционирование шардирование

Критерии выбора

Выбор хранилища http://architecturethehardparts.com/

Решение принимаем по каждому виду данных/бизнес сущности отдельно. Ищем баланс с учетом:

  • размера данных
  • стоимости их вычисления/чтения с HDD
  • вероятности их повторной востребованности
  • размера, который они занимают в кэше/частоты изменения данных/того
  • насколько “болезненно” будет для пользователя получение “устаревших” данных из кэша

Технологии

Технологии