Table des matières:
- Utilisation des touches de ligne
- Création de familles de colonnes
- Utilisation des horodatages
- Gestion des valeurs binaires
Vidéo: Autour des requêtes des TSDB 2024
Un BigTable a des tables comme le fait un SGBDR, mais contrairement à un SGBDR, les tables Bigtable n'ont généralement pas de relations avec d'autres tables. Au lieu de cela, les données complexes sont regroupées dans une seule table.
Une table dans un BigTable se compose de groupes de colonnes, appelés familles de colonnes , et d'une clé de ligne. Celles-ci permettent ensemble la recherche rapide d'un seul enregistrement de données détenues dans un BigTable.
Utilisation des touches de ligne
Chaque rangée doit être identifiée de manière unique. C'est là qu'intervient une clé de ligne. Une clé de ligne est une chaîne unique utilisée pour référencer un seul enregistrement dans un BigTable. Vous pouvez les considérer comme s'apparentant à une clé primaire ou comme un numéro de sécurité sociale pour Bigtables.
De nombreux Bigtables n'offrent pas de bons index secondaires (index sur les valeurs des colonnes elles-mêmes), donc la conception d'une clé de ligne permettant une recherche rapide des enregistrements est cruciale pour garantir de bonnes performances.
Une clé de ligne bien conçue permet de localiser un enregistrement sans avoir à lire votre application et de vérifier vous-même l'applicabilité de chaque enregistrement. C'est plus rapide pour la base de données de le faire.
Les clés de ligne sont également utilisées par la plupart des Bigtables pour répartir uniformément les enregistrements entre les serveurs. Une clé de ligne mal conçue amènera un serveur de votre cluster de base de données à recevoir plus de charge (demandes) que les autres serveurs, ce qui ralentira les performances visibles par l'utilisateur de l'ensemble de votre service de base de données.
Création de familles de colonnes
Une famille de colonnes est un regroupement logique de colonnes. Bien que Bigtables vous permette de faire varier le nombre de colonnes prises en charge dans n'importe quelle définition de table lors de l'exécution, vous devez spécifier les familles de colonnes autorisées à l'avance. Ceux-ci ne peuvent généralement pas être modifiés sans mettre le serveur hors ligne. À titre d'exemple, une application de carnet d'adresses peut utiliser une famille pour l'adresse personnelle. Cela peut contenir les colonnes Adresse Ligne 1, Adresse Ligne 2, Zone, Ville, Comté, État, Pays et Code postal.
Toutes les adresses n'auront pas de données dans tous les champs. Par exemple, la ligne d'adresse 2, la zone et le comté peuvent souvent être vides. D'un autre côté, vous pouvez avoir des données uniquement dans la ligne d'adresse 1 et le code postal. Ces deux exemples sont tous les deux dans la même famille de colonnes Home Address.
Avoir des nombres variables de colonnes a ses inconvénients. Si vous voulez HBase, par exemple, pour lister toutes les colonnes d'une famille particulière, vous devez parcourir toutes les lignes pour obtenir la liste complète des colonnes! Ainsi, vous devez suivre votre modèle de données dans votre application avec un clone Bigtable pour éviter cette pénalité de performance.
Utilisation des horodatages
Chaque valeur d'une colonne peut généralement stocker différentes versions.Ces -versions sont référencées en utilisant une valeur d'horodatage.
Les valeurs ne sont jamais modifiées - une valeur différente est ajoutée avec un horodatage différent. Pour supprimer une valeur, vous ajoutez un marqueur de pierre tombale à la valeur, qui indique essentiellement que la valeur est supprimée à un moment donné.
Toutes les valeurs de la même clé de ligne et de la même famille de colonnes sont stockées ensemble, ce qui signifie que toutes les recherches ou décisions de version sont prises en un seul endroit où résident toutes les données pertinentes.
Gestion des valeurs binaires
Dans Bigtables, les valeurs sont simplement des tableaux d'octets. Par exemple, ils peuvent être du texte, des chiffres ou même des images. Ce que vous y stockez dépend de vous.
Seuls quelques clones Bigtable prennent en charge la saisie de valeur. Hypertable, par exemple, vous permet de définir des types et d'ajouter des index secondaires aux valeurs. Cassandra vous permet également de définir des types pour les valeurs, mais ses index de requête de plage (inférieur à et supérieur à des opérations pour chaque type de données) se limitent à accélérer les opérations de recherche de clés et non les opérations de comparaison de valeurs.