Stockage des données dans bigtables

Un Bigtable a tableaux comme un SGBDR fait, mais contrairement à un SGBDR, un tables Bigtable sont généralement pas avoir des relations avec d'autres tables. Au lieu de cela, des données complexes est regroupé dans un seul tableau.

Sommaire

Une table dans un Bigtable se compose de groupes de colonnes, appelée familles de colonne, et une touche de ligne. Ils permettent ainsi un accès rapide pour un seul enregistrement de données détenues dans un Bigtable.

Utilisation des touches de ligne

Chaque ligne doit être identifié de façon unique. Ceci est où une clé de ligne entre en jeu. Une clé de ligne est une chaîne unique utilisé pour faire référence à un enregistrement unique dans un Bigtable. Vous pouvez les considérer comme étant semblable à une clé primaire ou comme un numéro de sécurité sociale pour Bigtables.

Beaucoup Bigtables ne fournissent pas de bons index secondaires (index sur la colonne se valorise), de sorte que la conception d'une clé de ligne qui permet un accès rapide des dossiers est essentielle pour assurer une bonne performance.

Une clé de ligne et # 8208 conçu permet un enregistrement à être situé sans avoir à votre application de lire et de vérifier l'applicabilité de chaque enregistrer vous-même. Il est plus rapide de la base de données pour ce faire.

Touches de lignes sont également utilisés par la plupart des Bigtables pour répartir les dossiers entre les serveurs. Une clé de ligne mal conçu mènera à un serveur dans votre cluster de base de données recevant plus de charge (demandes) que les autres serveurs, ce qui ralentit les performances utilisateur # 8208-visible de votre service de base de données entière.

Création de familles de colonne

Une famille de colonne est un regroupement logique de colonnes. Bien Bigtables vous permettent de varier le nombre de colonnes pris en charge dans une définition de table à l'exécution, vous devez spécifier les familles de colonnes admis à l'avant. Ceux-ci ne peuvent généralement pas être modifiés sans prendre le serveur hors ligne. A titre d'exemple, une application de carnet d'adresses peut utiliser une seule famille de Domicile. Cela pourrait contenir les colonnes Adresse Ligne 1, Ligne 2 Adresse, Quartier, Ville, Département, Etat, Pays et Code Postal.

Pas toutes les adresses auront des données dans tous les domaines. Par exemple, Adresse ligne 2, la région, et le comté peut souvent être vide. D'autre part, vous pouvez avoir des données seulement dans la ligne d'adresse 1 et code postal. Ces deux exemples sont bien tous les deux dans la même famille d'accueil de la colonne d'adresses.

Ayant un nombre variable de colonnes a ses inconvénients. Si vous voulez HBase, par exemple, pour répertorier toutes les colonnes dans une famille particulière, vous devez itérer sur toutes les lignes pour obtenir la liste complète des colonnes! Donc, vous avez besoin de garder une trace de votre modèle de données dans votre application avec un clone Bigtable pour éviter cette pénalité de performance.

Utiliser des horodateurs


Chaque valeur dans une colonne peut généralement stocker différentes versions. Ces N ° 173-versions sont référencés en utilisant une valeur d'horodatage.

Les valeurs ne sont jamais modifiés - une valeur différente est ajouté avec un horodatage différent. Pour supprimer une valeur, vous ajoutez un marqueur de la pierre tombale à la valeur, qui est essentiellement faiblit que la valeur est supprimée à un point donné dans le temps.

Toutes les valeurs pour la même clé de ligne et colonne famille sont stockés ensemble, ce qui signifie que toutes les recherches ou une version décisions sont prises dans un lieu unique où toutes les données pertinentes réside.

Gestion des valeurs binaires

Dans Bigtables, les valeurs sont des tableaux simplement octets. Par exemple, ils peuvent être du texte, des chiffres ou même des images. Qu'est-ce que vous stockez dans eux est à vous.

Seuls quelques-uns valeur du support clones Bigtable # 8208-typage. Hypertable, par exemple, vous permet de définir les types et ajouter des index secondaires à des valeurs. Cassandra vous permet également de définir des types pour les valeurs, mais sa gamme # 8208-requête indices (moins # 8208-supérieurs et # 8208-que les opérations pour chaque type de données) sont limités à accélérer les opérations de recherche clés, pas les opérations de comparaison de valeur.


» » » » Stockage des données dans bigtables