Segmentación (bases de datos)

Sharding ( fragmentación en inglés  ) es un enfoque que implica la división de bases de datos , sus objetos individuales o índices de motores de búsqueda en segmentos independientes , cada uno de los cuales está controlado por una instancia separada del servidor de la base de datos , generalmente ubicado en un nodo informático separado.

A diferencia de la partición , que implica el almacenamiento separado de partes de los objetos de la base de datos bajo el control de una sola instancia de DBMS, la fragmentación le permite usar la técnica de computación distribuida , pero es más difícil de implementar, ya que requiere la coordinación de varias instancias de tal manera. esa interacción con todo el conjunto de segmentos se realiza como con una única base de datos.

Algunos datos de la base de datos pueden estar presentes en todos los fragmentos, y algunos pueden estar solo en uno o unos pocos fragmentos. Por ejemplo, las tablas pequeñas que se usan como dimensiones que cambian lentamente pueden estar completamente representadas en cada fragmento, mientras que las tablas de hechos grandes se dividen uniformemente por alguna clave en los fragmentos. Tener datos de acceso frecuente en todos los fragmentos permite operaciones de combinación más eficientes al tiempo que garantiza que todos los fragmentos se actualicen sincrónicamente.

La técnica de fragmentación se usa ampliamente en DBMS NoSQL (como Cassandra , Couchbase , MongoDB ), DBMS analíticos masivamente paralelos ( Teradata Database , Netezza , Greenplum ), motores de búsqueda escalables horizontalmente ( Elasticsearch , Solr ). Además, la técnica se implementa en algunos DBMS relacionales tradicionales (opción Sharding en Oracle Database ). Para los DBMS que no admiten la segmentación, para implementar esta técnica, las solicitudes se enrutan a varias instancias del DBMS desde el lado de la aplicación; Hay varios proyectos de middleware que implementan fragmentación transparente ( dbShards , Apache ShardingShere , ScaleArc , MaxScale for MariaDB ).

Literatura