51 lines
4.5 KiB
Markdown
51 lines
4.5 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- Columnar Databases
|
|||
|
tags:
|
|||
|
- maturity/🌱
|
|||
|
date: 2024-11-26
|
|||
|
---
|
|||
|
**Колоночные базы данных** (Columnar Databases) — это системы управления базами данных, которые хранят данные столбцами, а не строками, как в традиционных реляционных базах данных. Этот подход имеет важные преимущества в задачах аналитики и обработки больших объемов данных.
|
|||
|
|
|||
|
Вместо того чтобы хранить данные построчно, как это делает реляционная база данных
|
|||
|
|
|||
|
![[../../meta/files/images/Pasted image 20241126185848.png]]
|
|||
|
|
|||
|
колоночные базы данных хранят данные в виде отдельных столбцов.
|
|||
|
|
|||
|
![[../../meta/files/images/Pasted image 20241126185910.png]]
|
|||
|
|
|||
|
|
|||
|
Колоночные базы данных широко используются в системах, где важно быстро анализировать большие объемы данных. Примеры:
|
|||
|
- [[../../../../source/доклады/00 ClickHouse|ClickHouse]] — быстрая аналитика и построение отчетов.
|
|||
|
- **Amazon Redshift** — облачные хранилища данных.
|
|||
|
- Apache [[Cassandra]] и **HBase** — большие распределенные хранилища.
|
|||
|
|
|||
|
**Преимущества**
|
|||
|
- **Ускорение аналитических запросов**: При агрегациях и фильтрациях задействуются только те столбцы, которые участвуют в запросе. При этом данные одного типа лежат последовательно. Это значительно сокращает объем данных, которые нужно считывать с диска.
|
|||
|
- **Эффективное сжатие данных**: Данные в одном столбце имеют схожую природу (например, возраст — целые числа), что позволяет применять более эффективные алгоритмы сжатия, такие как RLE (Run Length Encoding) или Dictionary Encoding.
|
|||
|
- **Снижение нагрузки на I/O**: Извлечение только нужных столбцов уменьшает объем операций ввода-вывода.
|
|||
|
|
|||
|
**Недостатки**
|
|||
|
- **Меньшая эффективность для транзакционных операций**: Записи и обновления, которые влияют на большое количество столбцов, требуют больше операций, чем в реляционных базах.
|
|||
|
- **Усложнение работы с несжатыми или разреженными данными**: Если данные столбца не поддаются сжатию или содержат много пропусков, преимущества колоночного подхода снижаются.
|
|||
|
- **Требования к особенностям использования**: Колоночные базы данных не подходят для [[Online Transaction Processing|OLTP]], так как их структура оптимизирована под аналитические нагрузки ([[Online Analytical Processing|OLAP]]).
|
|||
|
|
|||
|
Они применяются:
|
|||
|
- В бизнес-аналитике (BI), где важны агрегации и построение отчетов.
|
|||
|
- В системах мониторинга, где обрабатываются метрики (логирование, мониторинг систем).
|
|||
|
- В рекомендационных системах для анализа больших массивов пользовательских данных.
|
|||
|
***
|
|||
|
## Мета информация
|
|||
|
**Область**:: [[../../meta/zero/00 Разработка|00 Разработка]]
|
|||
|
**Родитель**:: [[../Тип хранилища данных|Тип хранилища данных]]
|
|||
|
**Источник**::
|
|||
|
**Создана**:: [[2024-11-26]]
|
|||
|
**Автор**::
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
|