{"id":11378,"date":"2021-06-17T03:58:10","date_gmt":"2021-06-17T10:58:10","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11378"},"modified":"2025-06-13T19:27:09","modified_gmt":"2025-06-14T02:27:09","slug":"how-to-use-global-secondary-index-partitioning-for-more-than-partitions","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/","title":{"rendered":"C\u00f3mo utilizar el particionamiento global de \u00edndices secundarios para m\u00e1s de particiones"},"content":{"rendered":"<p>Como ingeniero de campo, trabajo con clientes y a menudo veo que utilizan <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/capella\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a> con un enfoque \"creativo\".<\/p>\n<p>Una de esas funciones que veo que se utiliza de forma m\u00e1s creativa es <a href=\"https:\/\/docs.couchbase.com\/server\/5.1\/architecture\/global-secondary-indexes.html?ref=blog\" target=\"_blank\" rel=\"noopener\">\u00cdndice Secundario Global (IGS)<\/a> particiones. Hablemos primero de GSI y de las consultas y luego de las particiones para ponernos al d\u00eda.<\/p>\n<h2>\u00bfQu\u00e9 es un \u00edndice secundario global?<\/h2>\n<p>&nbsp;<\/p>\n<p>Seg\u00fan la documentaci\u00f3n de Couchbase, un <em>\u00cdndice Secundario Global<\/em> (GSI) apoya las consultas realizadas por el <em>Servicio de consulta<\/em> en los atributos de los documentos. Permite un filtrado exhaustivo.<\/p>\n<p><strong>Los \u00edndices secundarios globales proporcionan lo siguiente:<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><em>Escalado avanzado:<\/em> Los GSI pueden asignarse independientemente a nodos seleccionados sin que las cargas de trabajo existentes se vean afectadas.<\/li>\n<li><em>Rendimiento predecible:<\/em> Las operaciones basadas en claves mantienen una baja latencia predecible, incluso en presencia de un gran n\u00famero de \u00edndices. El mantenimiento de \u00edndices no compite con las operaciones basadas en claves, incluso cuando las cargas de trabajo de mutaci\u00f3n de datos son elevadas.<\/li>\n<li><em>Consultas de baja latencia:<\/em> Los GSI realizan particiones independientes en los nodos Index Service: No tienen que seguir la partici\u00f3n hash de datos en vBuckets. Las consultas que utilizan GSI pueden lograr tiempos de respuesta de baja latencia incluso cuando el cl\u00faster se ampl\u00eda, ya que los GSI no requieren una amplia distribuci\u00f3n a todos los nodos de servicio de datos.<\/li>\n<li><em>Partici\u00f3n independiente:<\/em> El Servicio de \u00cdndices proporciona independencia de particiones: Los datos y sus \u00edndices pueden tener diferentes claves de partici\u00f3n. Cada \u00edndice puede tener su propia clave de partici\u00f3n, por lo que cada uno puede particionarse independientemente para ajustarse a la consulta espec\u00edfica. A medida que surjan nuevas necesidades, la aplicaci\u00f3n tambi\u00e9n podr\u00e1 crear un nuevo \u00edndice con una nueva clave de partici\u00f3n, sin que ello afecte al rendimiento de las consultas existentes.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Partici\u00f3n GSI<\/h2>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-11379\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips-1024x536.png\" alt=\"See how Global Secondary Index (GSI) partitioning can be used for more than just partitioning\" width=\"900\" height=\"471\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips-1024x536.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips-300x157.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips-768x402.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png 1200w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p>En el diagrama anterior, la orquestaci\u00f3n de consulta a \u00edndice es manejada por el Servicio de Consulta y el Servicio de \u00cdndice sin problemas, no s\u00f3lo para el desarrollador de la aplicaci\u00f3n, sino tambi\u00e9n para el administrador de Couchbase.<\/p>\n<p>La partici\u00f3n de \u00edndices aumenta el rendimiento de las consultas dividiendo y distribuyendo un gran \u00edndice de documentos entre varios nodos. Esta caracter\u00edstica s\u00f3lo est\u00e1 disponible en Couchbase Server Enterprise Edition. Los beneficios incluyen:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Capacidad de ampliaci\u00f3n horizontal a medida que aumenta el tama\u00f1o del \u00edndice.<\/li>\n<li>Transparencia en las consultas, sin necesidad de modificar las existentes.<\/li>\n<li>Reducci\u00f3n de la latencia de las consultas grandes y agregadas, ya que las particiones se pueden escanear en paralelo.<\/li>\n<li>Provisi\u00f3n de una consulta de rango de baja latencia, al tiempo que permite escalar los \u00edndices seg\u00fan sea necesario.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Para m\u00e1s informaci\u00f3n, consulte <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/index-partitioning.html\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n de Couchbase sobre particionamiento de \u00edndices<\/a>.<\/p>\n<p>El particionamiento de \u00edndices proporciona muchas funciones que facilitan la gesti\u00f3n de \u00edndices, como se ha mencionado anteriormente, pero \u00bfpor qu\u00e9 no utilizar el particionamiento de \u00edndices para <em>m\u00e1s<\/em> que la simple partici\u00f3n?<\/p>\n<h2>M\u00e1s informaci\u00f3n sobre la partici\u00f3n de \u00edndices<\/h2>\n<p>&nbsp;<\/p>\n<p>En esta entrada de blog, nos centraremos en casos de uso b\u00e1sicos, pero <code>PARTICI\u00d3N POR HASH<\/code> es una caracter\u00edstica muy poderosa que puede ser dirigida y cuantificada para el tama\u00f1o del \u00edndice y el rendimiento.<\/p>\n<p>El particionamiento de \u00edndices ofrece muchas posibilidades para personalizar los \u00edndices con el fin de gestionar el almacenamiento, el rendimiento o la escalabilidad.<\/p>\n<p>La forma m\u00e1s sencilla de crear un \u00edndice particionado es utilizar la clave de documento como clave de partici\u00f3n:<\/p>\n<pre>CREATE INDEX idx_pe1 ON `travel-sample`(country, airline, id) \r\nPARTITION BY HASH(META().id);\r\n\r\nSELECT airline, id\r\nFROM `travel-sample` \r\nWHERE country=\"United States\" \r\n\r\nORDER BY airline;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Con <code>meta().id<\/code> como clave de partici\u00f3n, las claves de \u00edndice se distribuir\u00e1n uniformemente entre todas las particiones. Cada consulta reunir\u00e1 las claves de \u00edndice cualificadas de todas las particiones.<\/p>\n<h2>Selecci\u00f3n de claves de partici\u00f3n para la consulta de rangos<\/h2>\n<p>&nbsp;<\/p>\n<p>Una aplicaci\u00f3n tambi\u00e9n tiene la opci\u00f3n de elegir la clave de partici\u00f3n que puede minimizar la latencia en la consulta de rango para el \u00edndice particionado.<\/p>\n<p>Por ejemplo, supongamos que una consulta tiene un predicado de igualdad basado en el campo <code>fuenteaeropuerto<\/code> y <code>destinoaeropuerto<\/code>. Si el \u00edndice tambi\u00e9n est\u00e1 particionado por las claves de \u00edndice en <code>fuenteaeropuerto<\/code> y <code>destinoaeropuerto<\/code>entonces la consulta s\u00f3lo necesitar\u00e1 leer una \u00fanica partici\u00f3n para el par dado de <code>fuenteaeropuerto<\/code> y <code>destinoaeropuerto<\/code>.<\/p>\n<p>En este caso, la aplicaci\u00f3n puede mantener una latencia de consulta baja, al tiempo que permite que el \u00edndice particionado se ampl\u00ede seg\u00fan sea necesario.<\/p>\n<p>Las claves de partici\u00f3n no tienen que ser las claves de \u00edndice principales para seleccionar particiones cualificadas. Siempre que las claves de \u00edndice principales se proporcionen junto con las claves de partici\u00f3n en el predicado, la consulta puede seleccionar las particiones cualificadas para el escaneo del \u00edndice. El siguiente ejemplo escanear\u00e1 una \u00fanica partici\u00f3n con un par dado de claves de \u00edndice <code>fuenteaeropuerto<\/code> y <code>destinoaeropuerto<\/code>.<\/p>\n<p><strong>Creaci\u00f3n de un \u00edndice particionado con claves de partici\u00f3n que coinciden con el predicado de igualdad de la consulta:<\/strong><\/p>\n<pre># Lookup all airlines with non-stop flights from SFO to JFK\r\nCREATE INDEX idx_pe2 ON `travel-sample` (sourceairport, destinationairport,stops, airline, id) PARTITION BY HASH (sourceairport, destinationairport);\r\n\r\nSELECT airline, id\r\nFROM `travel-sample` \r\nWHERE sourceairport=\"SFO\" AND\r\ndestinationairport=\"JFK\" AND stops == 0 ORDER BY airline;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>N\u00famero de particiones<\/h2>\n<p>&nbsp;<\/p>\n<p>El n\u00famero de particiones del \u00edndice se fija cuando se crea el \u00edndice.<\/p>\n<p>Por defecto, cada \u00edndice tendr\u00e1 ocho particiones. El administrador puede anular el n\u00famero de particiones en <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">creaci\u00f3n de \u00edndices<\/a> tiempo.<\/p>\n<h2>Colocaci\u00f3n de particiones<\/h2>\n<p>&nbsp;<\/p>\n<p>Cuando se crea un \u00edndice particionado, las particiones se delinean a trav\u00e9s de los nodos de \u00edndice disponibles. Durante la colocaci\u00f3n del nuevo \u00edndice, el indexador asumir\u00e1 que cada partici\u00f3n tiene el mismo tama\u00f1o, y colocar\u00e1 las particiones seg\u00fan la disponibilidad de recursos en cada nodo.<\/p>\n<p>Por ejemplo, si un nodo indexador tiene m\u00e1s memoria libre disponible que los otros nodos, asignar\u00e1 m\u00e1s particiones a este nodo indexador. Si el \u00edndice tiene una r\u00e9plica, la partici\u00f3n de la r\u00e9plica no se colocar\u00e1 en el mismo nodo.<\/p>\n<p>Alternativamente, los usuarios pueden especificar la lista de nodos para restringir el conjunto de nodos disponibles para la colocaci\u00f3n, utilizando un comando similar al siguiente ejemplo:<\/p>\n<p><strong>Creaci\u00f3n de un \u00edndice particionado en puertos espec\u00edficos de un nodo:<\/strong><\/p>\n<pre>CREATE INDEX idx_pe12 ON `travel-sample`(airline, sourceairport, destinationairport) PARTITION BY KEY(airline) WITH {\"nodes\":[\"127.0.0.1:9001\", \"127.0.0.1:9002\"]};\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Dado que hay casos en los que los \u00edndices pueden ser mayores de lo que el nodo puede almacenar, la intenci\u00f3n original de la partici\u00f3n de \u00edndices era escalar \u00edndices \"grandes\" a trav\u00e9s de m\u00faltiples particiones, es decir, nodos, en un cl\u00faster.<\/p>\n<p>Pero algunos clientes ven las particiones GSI de otra manera.<\/p>\n<p>Un caso que estoy viendo con m\u00e1s frecuencia es el uso del particionamiento como distribuci\u00f3n de la carga de trabajo entre nodos. Los \u00edndices en s\u00ed no son grandes, pero repartir todas las particiones indexadas entre varios nodos aprovecha la arquitectura del particionado, donde los \u00edndices se pueden escanear en paralelo. Esto distribuir\u00e1 uniformemente el escaneo de \u00edndices a trav\u00e9s de todas las particiones\/nodos en lugar de s\u00f3lo uno.<\/p>\n<p>Algunos clientes incluso colocan juntos servicios como Data, Index y Query y no ven ninguna degradaci\u00f3n del rendimiento en comparaci\u00f3n con el aislamiento de servicios como Index\/Query en nodos separados. Una advertencia a este enfoque es asegurarse de que hay suficiente CPU, memoria y espacio en disco para que todos estos servicios se ejecuten junto con el propio sistema operativo.<\/p>\n<p>Los servicios de datos e \u00edndices est\u00e1n limitados por la memoria y las cuotas se definen a trav\u00e9s de la configuraci\u00f3n del cl\u00faster. El servicio de Consulta no est\u00e1 limitado por la memoria pero la utilizar\u00e1. El administrador de Couchbase deber\u00e1 tener en cuenta la memoria disponible y las cuotas para los servicios de datos e \u00edndices, as\u00ed como reservar suficiente memoria libre para el servicio de consultas y el sistema operativo.<\/p>\n<p><strong>Antes de<\/strong><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partitioning-before.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11381\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partitioning-before.png\" alt=\"Before index partitioning\" width=\"656\" height=\"202\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-before.png 656w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-before-300x92.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-before-20x6.png 20w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><\/p>\n<p><strong>En<\/strong><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partitioning-after.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11382\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partitioning-after.png\" alt=\"After index partitioning\" width=\"654\" height=\"234\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-after.png 654w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-after-300x107.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partitioning-after-20x7.png 20w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/a><\/p>\n<p>El par de diagramas anteriores puede parecer contraintuitivo desde el punto de vista del rendimiento, pero desde el punto de vista del coste de propiedad, es una m\u00e1quina menos. A veces eso es un factor determinante.<\/p>\n<p>\u00bfQu\u00e9 otras estrategias de particionamiento existen? Normalmente, las consultas se rigen por la latencia y el rendimiento, pero tambi\u00e9n por los SLA y las particularidades de su caso de uso. Por ejemplo, algunos clientes ejecutan una consulta una o dos veces al d\u00eda para elaborar informes. \u00bfEs necesario que sea de alto rendimiento? La verdad es que no. \u00bfCu\u00e1l es la mejor estrategia para este tipo de consulta?<\/p>\n<p>Digamos que hay 20 consultas con diferentes <code>DONDE<\/code> por ejemplo, una consulta para saber cu\u00e1ntas facturas se generan al d\u00eda en un lugar determinado. \u00bfEs prudente crear 20 \u00edndices diferentes para cada ubicaci\u00f3n para la consulta de facturas? \u00bfY si hay otras consultas que utilizar\u00e1n los mismos datos en su conjunto (es decir, datos redundantes)? Tal vez algunos de los datos sean espec\u00edficos de un pa\u00eds, y 10 de las ubicaciones se encuentren en el mismo pa\u00eds.<\/p>\n<p>Si se tratara de una consulta que se ejecuta con frecuencia o de una parte cr\u00edtica de la aplicaci\u00f3n, como la visualizaci\u00f3n de productos, entonces un \u00edndice dedicado podr\u00eda ser apropiado. Pero en este caso, quiz\u00e1s un \u00edndice grande sea m\u00e1s eficiente en cuanto a almacenamiento y recursos. Por lo tanto, las particiones de \u00edndices ser\u00edan m\u00e1s apropiadas.<\/p>\n<h2>Segregaci\u00f3n de responsabilidades de mando y consulta (CQRS)<\/h2>\n<p>&nbsp;<\/p>\n<p>Otro uso m\u00e1s eficaz de las particiones son las cargas de trabajo con mucha escritura, en las que las escrituras dominan las operaciones. Un patr\u00f3n es la segregaci\u00f3n de responsabilidad de comandos y consultas (CQRS).<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11383\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS.png\" alt=\"An architecture diagram of an index partition being used for Command and Query Responsibility Segregation (CQRS)\" width=\"875\" height=\"489\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS.png 875w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS-300x168.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS-768x429.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/index-partition-for-Command-and-Query-Responsibility-Segregation-CQRS-20x11.png 20w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/a><\/p>\n<p>Aqu\u00ed es donde muchos documentos se escriben en una base de datos y requieren una consulta r\u00e1pida. Por lo general, se trata de eventos de la aplicaci\u00f3n, como la interacci\u00f3n del usuario con la aplicaci\u00f3n, los clics, etc. Estos eventos se escriben en grandes vol\u00famenes y se consultan con frecuencia. Con la partici\u00f3n de \u00edndices, el equilibrio de la escritura de las claves de los documentos en el \u00edndice no se a\u00edsla en un nodo, sino que se distribuye entre los nodos del \u00edndice. CQRS es un buen caso de uso para las particiones de \u00edndices.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>&nbsp;<\/p>\n<p>Hemos cubierto s\u00f3lo unos pocos usos de la partici\u00f3n del \u00cdndice Secundario Global. Es una de las caracter\u00edsticas m\u00e1s infravaloradas e infrautilizadas de GSI que podr\u00eda ajustarse para casos de uso espec\u00edficos.<\/p>\n<p>M\u00e1s informaci\u00f3n <a href=\"https:\/\/docs.couchbase.com\/server\/5.1\/architecture\/global-secondary-indexes.html?ref=blog\" target=\"_blank\" rel=\"noopener\">\u00cdndices secundarios globales (GSI) en la documentaci\u00f3n de Couchbase<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>As a field engineer, I work with customers and often see them using Couchbase features with a &#8220;thinking-out-of-the-box&#8221; approach. One such feature that I see being used more creatively is Global Secondary Index (GSI) partitions. Let\u2019s first discuss GSI and [&hellip;]<\/p>","protected":false},"author":77552,"featured_media":11379,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1821,8905,1816,6319,2453],"tags":[9251,1695,2175,1377],"ppma_author":[9217],"class_list":["post-11378","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-architecture","category-couchbase-global-secondary-index","category-couchbase-server","category-customers","category-global-secondary-index","tag-global-secondary-index","tag-gsi","tag-index-partitioning","tag-scale-out"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Use Global Secondary Index Partitioning for More Than Partitions<\/title>\n<meta name=\"description\" content=\"Learn how Global Secondary Index (GSI) partitions are useful for a variety of index management scenarios and use cases, including CQRS and more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Global Secondary Index Partitioning for More Than Partitions\" \/>\n<meta property=\"og:description\" content=\"Learn how Global Secondary Index (GSI) partitions are useful for a variety of index management scenarios and use cases, including CQRS and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-17T10:58:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:27:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"James Powenski, Couchbase Senior Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Powenski, Couchbase Senior Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\"},\"author\":{\"name\":\"james.powenski\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f\"},\"headline\":\"How to Use Global Secondary Index Partitioning for More Than Partitions\",\"datePublished\":\"2021-06-17T10:58:10+00:00\",\"dateModified\":\"2025-06-14T02:27:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\"},\"wordCount\":1391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\",\"keywords\":[\"global secondary index\",\"GSI\",\"index partitioning\",\"Scale Out\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Global Secondary Index\",\"Couchbase Server\",\"Customers\",\"Global Secondary Index\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\",\"name\":\"How to Use Global Secondary Index Partitioning for More Than Partitions\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\",\"datePublished\":\"2021-06-17T10:58:10+00:00\",\"dateModified\":\"2025-06-14T02:27:09+00:00\",\"description\":\"Learn how Global Secondary Index (GSI) partitions are useful for a variety of index management scenarios and use cases, including CQRS and more.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png\",\"width\":1200,\"height\":628,\"caption\":\"See how Global Secondary Index (GSI) partitioning can be used for more than just partitioning\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Global Secondary Index Partitioning for More Than Partitions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f\",\"name\":\"james.powenski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e45dcba7caaaefe99434ad0a75964282\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg\",\"caption\":\"james.powenski\"},\"description\":\"Couchbase Senior Solutions Engineer\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/james-powenski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo utilizar el particionamiento global de \u00edndices secundarios para m\u00e1s de particiones","description":"Descubra c\u00f3mo las particiones de \u00edndice secundario global (GSI) son \u00fatiles para una variedad de escenarios de gesti\u00f3n de \u00edndices y casos de uso, incluyendo CQRS y m\u00e1s.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/","og_locale":"es_MX","og_type":"article","og_title":"How to Use Global Secondary Index Partitioning for More Than Partitions","og_description":"Learn how Global Secondary Index (GSI) partitions are useful for a variety of index management scenarios and use cases, including CQRS and more.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-06-17T10:58:10+00:00","article_modified_time":"2025-06-14T02:27:09+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png","type":"image\/png"}],"author":"James Powenski, Couchbase Senior Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"James Powenski, Couchbase Senior Solutions Engineer","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/"},"author":{"name":"james.powenski","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f"},"headline":"How to Use Global Secondary Index Partitioning for More Than Partitions","datePublished":"2021-06-17T10:58:10+00:00","dateModified":"2025-06-14T02:27:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/"},"wordCount":1391,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png","keywords":["global secondary index","GSI","index partitioning","Scale Out"],"articleSection":["Best Practices and Tutorials","Couchbase Architecture","Couchbase Global Secondary Index","Couchbase Server","Customers","Global Secondary Index"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/","url":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/","name":"C\u00f3mo utilizar el particionamiento global de \u00edndices secundarios para m\u00e1s de particiones","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png","datePublished":"2021-06-17T10:58:10+00:00","dateModified":"2025-06-14T02:27:09+00:00","description":"Descubra c\u00f3mo las particiones de \u00edndice secundario global (GSI) son \u00fatiles para una variedad de escenarios de gesti\u00f3n de \u00edndices y casos de uso, incluyendo CQRS y m\u00e1s.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/gsi-index-partitioning-more-than-just-partitioning-tips.png","width":1200,"height":628,"caption":"See how Global Secondary Index (GSI) partitioning can be used for more than just partitioning"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/how-to-use-global-secondary-index-partitioning-for-more-than-partitions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Global Secondary Index Partitioning for More Than Partitions"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5b6cdf2c0ffc337f914a4eb5fff2937f","name":"james.powenski","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e45dcba7caaaefe99434ad0a75964282","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","caption":"james.powenski"},"description":"Ingeniero de soluciones senior de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/james-powenski\/"}]}},"authors":[{"term_id":9217,"user_id":77552,"is_guest":0,"slug":"james-powenski","display_name":"James Powenski, Couchbase Senior Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/06\/james-powenski-couchbase.jpeg"},"author_category":"","last_name":"Powenski","first_name":"James","job_title":"","user_url":"","description":"Ingeniero de soluciones senior de Couchbase"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/77552"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=11378"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11378\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11379"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=11378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=11378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=11378"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=11378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}