Interested Article - Сегментирование (базы данных)

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

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

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

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

Литература

  • Andrew Pavlo, Matthew Aslett. What’s Really New with NewSQL?. — 2016. — Т. 45 , № 2 . — С. 45—55 . — doi : .

Same as Сегментирование (базы данных)