Perfiles de aplicación

Un perfil de aplicación, o perfil de app, almacena la configuración que le indica a tu instancia de Cloud Bigtable cómo administrar las solicitudes entrantes de una aplicación. Cuando una de tus aplicaciones se conecta a una instancia de Cloud Bigtable, puede especificar el perfil de app que Cloud Bigtable debe usar para las solicitudes que la aplicación envíe mediante esta conexión.

Los perfiles de aplicación afectan la manera en que las aplicaciones se comunican con una instancia que usa la replicación. Por lo tanto, son especialmente útiles en las instancias que tienen dos o más clústeres. Aun si tu instancia tiene solo un clúster, puedes usar un perfil de aplicación único en cada aplicación que ejecutes o para componentes diferentes de una sola aplicación. Por lo tanto, puedes ver grafos distintos de tus métricas de Cloud Bigtable en cada perfil de aplicación.

En esta página, se explica la configuración que controlan los perfiles de app, además de cómo estos funcionan con tu aplicación. A fin de obtener ejemplos de la configuración que puedes usar para implementar casos prácticos comunes, consulta Ejemplos de configuración de la replicación. Si deseas obtener información sobre cómo crear y administrar los perfiles de app, consulta Cómo configurar perfiles de app.

Si quieres usar los perfiles de app para configurar la replicación, debes estar familiarizado con la descripción general de la replicación de Cloud Bigtable antes de leer esta página.

Configuración en los perfiles de app

Los perfiles de app definen la política de enrutamiento que usa Cloud Bigtable. Además, controlan si se permiten las transacciones de fila única.

Política de enrutamiento

Los perfiles de aplicación especifican la política de enrutamiento que Cloud Bigtable debería usar en cada solicitud:

  • El enrutamiento de clúster único enruta todas las solicitudes a un clúster de tu instancia. Si ese clúster no está disponible, debes realizar una conmutación por error manual a otro clúster.

  • El enrutamiento de varios clústeres automáticamente enruta las solicitudes al clúster más cercano en una instancia. Si el clúster deja de estar disponible, el tráfico pasa automáticamente al clúster más cercano disponible. Cloud Bigtable considera que los clústeres de una misma región son equidistantes, aunque estén en zonas diferentes.

Consulta Conmutaciones por error para obtener más información. Si quieres aprender a completarlas, consulta Cómo administrar conmutaciones por error.

Transacciones de fila única

En Cloud Bigtable, las operaciones de lectura y de escritura siempre son atómicas en el nivel de las filas. Cloud Bigtable no ofrece atomicidad sobre el nivel de la fila; por ejemplo, no admite transacciones que actualicen de forma atómica más de una fila.

Sin embargo, Cloud Bigtable sí admite algunas operaciones de escritura que requieren una transacción en otras bases de datos. Se admiten las siguientes operaciones:

  • Operaciones lectura-modificación-escritura, incluidos los incrementos y los anexos. Una operación lectura-modificación-escritura lee un valor existente, lo incrementa o anexa y escribe el valor actualizado en la tabla.
  • Operaciones de verificación y mutación, también conocidas como escrituras o mutaciones condicionales. En este tipo de operaciones, Cloud Bigtable verifica una fila para ver si cumple con una condición específica. Si cumple con la condición, Cloud Bigtable escribe valores nuevos en la fila.

De esta manera, Cloud Bigtable usa transacciones de fila única para completar estas operaciones. Se incluyen operaciones de lectura y de escritura, y todas se ejecutan de forma atómica, sin embargo, siguen siendo atómicas solo en el nivel de la fila.

Conflictos entre las transacciones de fila única

Cada clúster de una instancia de Cloud Bigtable es un clúster principal que acepta operaciones de lectura y de escritura. En consecuencia, las operaciones que requieren transacciones de fila única pueden generar problemas cuando habilites la replicación. Por ejemplo, supongamos que una celda contiene el valor ABC y envías dos operaciones de anexo a distintos clústeres. Una de estas cambia el valor a ABCDEF y la otra a ABCXYZ. ¿Cómo debería Cloud Bigtable resolver este conflicto?

A fin de ayudarte a evitar estos problemas, Cloud Bigtable exige que cada perfil de app indique si permite o no las transacciones de fila única. Esto también ayuda a evitar que habilites las transacciones en un perfil de app que use el enrutamiento de varios clústeres, debido a que no existe una forma segura de habilitar ambas funciones a la vez.

Cloud Bigtable también te advierte si habilitas las transacciones de fila única en 2 perfiles de app distintos que usen el enrutamiento de clúster único y que apunten a clústeres diferentes. Si decides crear este tipo de configuración, debes asegurarte de no enviar solicitudes de lectura-modificación-escritura o de verificación y mutación en conflicto a 2 clústeres diferentes.

Cómo funcionan los perfiles de app

En los perfiles de app, se especifica la configuración que Cloud Bigtable debe usar para administrar las solicitudes entrantes de una instancia.

Muchos usuarios de Cloud Bigtable tienen varias aplicaciones que se conectan a la misma instancia. Por ejemplo, es posible que tengas una aplicación que proporcione datos a los clientes mediante solicitud, y otra que ejecute trabajos por lote ocasionales a fin de analizar tus datos. Para controlar estas aplicaciones, debes crear varios perfiles de app, al menos uno por cada aplicación, y definirlos con la configuración correspondiente de cada una de ellas. De esta manera, podrás cambiar fácilmente una configuración sin tener que modificar el resto.

Además, es posible que tengas una sola aplicación que ejecute varias funciones, como la visualización de los datos actuales y la consulta de datos históricos. A fin de controlar estas funciones, debes crear un perfil de app para cada una, a fin de que puedas definirlas de manera independiente y actualizar su configuración sin tener que modificar las otras.

Todas las instancias tienen un perfil de aplicación default, pero también puedes crear perfiles personalizados para cada instancia. Las secciones a continuación describen los perfiles de aplicación default y personalizados.

Para usar un perfil de aplicación, debes especificarlo en tu código cuando te conectas a tu instancia. Si no lo haces, Cloud Bigtable usa el perfil predeterminado de la instancia.

Perfil de aplicación predeterminado

Cuando creas una instancia, Cloud Bigtable crea automáticamente un perfil de app predeterminado para esa instancia. Si tu aplicación no especifica un perfil de app o si usas la shell de HBase para conectarte a tu instancia, Cloud Bigtable usa la configuración del perfil de app predeterminado. Puedes ver y modificar esta configuración en cualquier momento.

La configuración del perfil de aplicación predeterminado de una instancia depende de la cantidad de clústeres que tenía la instancia cuando la creaste por primera vez:

Perfiles de aplicación personalizados

Puedes crear muchos perfiles de app personalizados para cada instancia. Úsalos para controlar la manera en que las aplicaciones o las funciones de estas interactúan con una instancia. Por ejemplo, puedes usar un perfil de app en una aplicación por lote para separar su tráfico en un solo clúster, y otro para proporcionar una alta disponibilidad a otra aplicación.

Qué sigue

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Bigtable