Русская Википедия:Сегментирование (базы данных)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Значения Сегментирование (Шаблон:Lang-en) — подход, предполагающий разделение баз данных, отдельных её объектов или индексов поисковых систем на независимые сегменты, каждый из которых управляется отдельным экземпляром сервера базы данных, размещаемым, как правило, на отдельном вычислительном узле.

В отличие от секционирования, предполагающего раздельное хранение частей объектов базы данных под управлением единого экземпляра СУБД, сегментирование позволяет задействовать технику распределённых вычислений, но при этом более сложно в реализации, так как требует обеспечения координации множества экземпляров таким образом, чтобы взаимодействие со всей совокупностью сегментов велось как с единой базой данных.

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

Техника сегментирования широко используется в NoSQL-СУБД (таких, как Cassandra, Couchbase, MongoDB), массово-параллельных аналитических СУБД (Teradata Database, Netezza, Greenplum), горизонтально-масштабируемых поисковых системах (Elasticsearch, Solr). Также техника реализована в некоторых традиционных реляционных СУБД (опция Sharding в Oracle Database). Для СУБД, не поддерживающих сегментирование, для реализации подобной техники организуется маршрутизация запросов к нескольким экземплярам СУБД со стороны приложения; существует несколько проектов связующего программного обеспечения, реализующего прозрачное сегментирование (dbShards, Apache ShardingSpshere, ScaleArc, MaxScale для MariaDB).

Литература

Шаблон:Базы данных