Profils d'application

Un profil d'application stocke des paramètres indiquant à votre instance Cloud Bigtable comment gérer les demandes entrantes provenant d'une application. Lorsque l'une de vos applications se connecte à une instance Cloud Bigtable, elle peut spécifier un profil d'application. Cloud Bigtable utilise ce profil pour toutes les demandes envoyées par l'application via cette connexion.

Les profils d'application affectent la manière dont les applications communiquent avec une instance qui utilise la réplication. Par conséquent, les profils d'application sont particulièrement utiles pour les instances comportant au moins deux clusters. Même si une instance ne comporte qu'un seul cluster, vous pouvez utiliser un profil d'application unique pour chaque application que vous exécutez ou pour différents composants au sein d'une même application. Vous pouvez alors afficher des graphiques distincts de vos métriques Cloud Bigtable pour chaque profil d'application.

Cette page décrit les paramètres contrôlés par un profil d'application, ainsi que le fonctionnement de ces profils avec votre application. Pour découvrir des exemples de paramètres à utiliser pour mettre en œuvre des cas d'utilisation courants, consultez la section Exemples de paramètres de réplication. Pour en savoir plus sur la création et la gestion de profils d'application, consultez la section Configurer des profils d'application.

Si vous utilisez des profils d'application pour configurer la réplication, vous devez avoir pris connaissance de la présentation de la réplication Cloud Bigtable avant de lire cette page.

Paramètres dans les profils d'application

Un profil d'application définit les règles de routage utilisées par Cloud Bigtable. Il permet également de vérifier si les transactions à ligne unique sont autorisées.

Règle de routage

Un profil d'application spécifie les règles de routage qui doivent être utilisées par Cloud Bigtable pour chaque requête :

  • Le routage à cluster unique achemine toutes les requêtes vers un cluster de votre instance. Si ce cluster devient indisponible, vous devez basculer manuellement vers un autre cluster.

  • Le routage multicluster achemine automatiquement les requêtes vers le cluster le plus proche dans une instance. Si le cluster devient indisponible, le trafic bascule automatiquement vers le cluster disponible le plus proche. Cloud Bigtable considère que les clusters d'une même région sont équidistants, même s'ils se trouvent dans des zones différentes.

Pour en savoir plus sur le basculement, consultez la page Basculements. Pour savoir comment effectuer un basculement, consultez la section Gérer les basculements.

Transactions à ligne unique

Dans Cloud Bigtable, les opérations de lecture et écriture sont toujours atomiques au niveau des lignes. Cloud Bigtable ne fournit pas une atomicité supérieure au niveau de la ligne. Par exemple, Cloud Bigtable ne gère pas les transactions qui mettent à jour plusieurs lignes de manière atomique.

Cependant, Cloud Bigtable est compatible avec certaines opérations d'écriture qui nécessiteraient une transaction dans d'autres bases de données :

  • Opérations lecture/modification/écriture, y compris incréments et ajouts. Une opération de lecture/modification/écriture lit une valeur existante, incrémente ou ajoute à la valeur existante, et écrit la valeur mise à jour dans la table.
  • Opérations vérification/mutation, également appelées mutations conditionnelles ou écritures conditionnelles. Lors d'une opération de vérification/mutation, Cloud Bigtable vérifie une ligne pour déterminer si elle remplit une condition spécifiée. Si la condition est remplie, Cloud Bigtable écrit de nouvelles valeurs sur la ligne.

En effet, Cloud Bigtable utilise des transactions à ligne unique pour effectuer ces opérations. Celles-ci incluent à la fois des opérations de lecture et d'écriture. Elles sont toutes exécutées de manière atomique, mais elles ne le sont qu'au niveau de la ligne.

Conflits entre transactions à ligne unique

Chaque cluster d'une instance Cloud Bigtable est un cluster principal qui accepte les opérations de lecture et d'écriture. Par conséquent, les opérations nécessitant des transactions à ligne unique peuvent poser problème lorsque vous activez la réplication. Par exemple, supposons qu'une cellule contient la valeur ABC et que vous envoyez deux opérations d'ajout à différents clusters, l'un changeant la valeur en ABCDEF et l'autre modifiant la valeur en ABCXYZ. Comment Cloud Bigtable peut-il résoudre ce conflit ?

Pour vous aider à éviter ces problèmes, Cloud Bigtable exige que chaque profil d'application spécifie s'il autorise ou non les transactions à ligne unique. Cela vous empêche également d'activer des transactions à ligne unique dans un profil d'application qui utilise un routage multi-cluster, car il n'existe aucun moyen sûr d'activer ces deux fonctionnalités simultanément.

Cloud Bigtable vous avertit également si vous activez des transactions à ligne unique dans deux profils d'application différents, utilisant tous deux le routage à cluster unique et pointant vers des clusters différents. Si vous choisissez de créer ce type de configuration, vous devez vous assurer que vous n'envoyez pas de requêtes conflictuelles de lecture/modification/écriture ou de vérification/mutation à deux clusters différents.

Fonctionnement des profils d'application

Un profil d'application spécifie les paramètres utilisés par Cloud Bigtable pour traiter les requêtes entrantes d'une instance.

De nombreux utilisateurs de Cloud Bigtable disposent de plusieurs applications se connectant à la même instance. Par exemple, vous pourriez avoir une application qui fournit des données aux clients à la demande et une autre application qui exécute des travaux par lots ponctuels pour analyser vos données. Pour gérer ces différentes applications, vous devez créer plusieurs profils d'application (au minimum un pour chacune) et configurer chaque profil avec les paramètres appropriés pour l'application correspondante. Cette configuration permet de modifier les paramètres d'une application, mais pas des autres.

Vous pouvez également avoir une seule application qui remplit plusieurs fonctions, telles que l'affichage des données actuelles et l'interrogation des données historiques. Pour gérer ces différentes fonctions, vous devez créer un profil d'application pour chacune, afin de pouvoir configurer chaque fonction de manière distincte, et mettre à jour ses paramètres sans toucher à ceux des autres fonctions.

Chaque instance a un profil d'application par défaut default, mais vous pouvez également créer des profils d'application personnalisés pour chaque instance. Les sections ci-dessous décrivent les profils d'application default et personnalisés.

Pour utiliser un profil d'application, vous devez le spécifier dans votre code lorsque vous vous connectez à votre instance. Si vous ne spécifiez pas de profil d'application, Cloud Bigtable utilise le profil d'application par défaut de l'instance.

Profil d'application par défaut

Lorsque vous créez une instance, Cloud Bigtable crée automatiquement un profil d'application par défaut pour l'instance. Si votre application ne spécifie pas de profil d'application ou si vous utilisez l'interface système HBase pour vous connecter à votre instance, Cloud Bigtable utilise les paramètres du profil d'application par défaut. Vous pouvez afficher et modifier ces paramètres à tout moment.

Les paramètres du profil d'application par défaut d'une instance dépendent du nombre de clusters dont l'instance disposait lors de sa création :

Profils d'application personnalisés

Vous pouvez créer de nombreux profils d'application personnalisés pour chaque instance. Utilisez les profils d'application personnalisés pour contrôler la manière dont chaque application, ou chaque fonction distincte d'une application, interagit avec une instance. Vous pouvez par exemple utiliser un profil d'application pour une application par lot, afin d'isoler son trafic dans un cluster unique, et un autre profil d'application pour assurer à une seconde application une haute disponibilité.

Étapes suivantes