Module 3 :
Etude d’instances de BD NOSQL
Big Data - 2019 1
Présentation de HBase (1/4)
• HBase est une base de données :
Distribuée
À haute performance
Extrêmement évolutive
Tolérante aux fautes (+ pas de SPOF)
Non-relationnelle (NoSQL- Orientée Colonnes)
• Elle peut être utilisée à la fois comme :
Base de données temps réel.
Base de données pour une lecture intensive pour les systèmes décisionnels.
• HBase s’inspire de BigTable de Google pour son architecture, son
modèle de données orienté colonne et son mécanisme de persistance sur
le disque.
Big Data - 2019 2
Manipulation des données - Opérations (2/16)
Toutes les opérations de base d’une base de données relationnelle sont aussi
supportées par HBase :
• Ajout et modification de données « PUT »
• Lecture de données « GET »
• Suppression de données « DELETE »
• Recherche de données « SCAN »
Big Data - 2019 3
Manipulation des données – HBase Shell (3/16)
1. Connexion au shell
Hbase
$ hbase shell
hbase(main):001:0>
2. Création d’une table « test» avec une famille de colonnes « data
».
> create 'test', 'data'
0 row(s) in 1.0200 seconds
3. Vérification de la création de la table en listant les tables de la
base.
> list
TABLE
test
1 row(s) in 1.0570 seconds
=> ["test"]
Big Data - 2019 4
Manipulation des données – HBase Shell (4/16)
4. Insertion des données dans trois lignes et trois colonnes différentes
(dans la même famille de colonnes « data »)
> put 'test', 'row1', 'data:a', 'value 1'
0 row(s) in 0.0390 seconds
> put 'test', 'row2', 'data:b', 'value 2'
0 row(s) in 0.0150 seconds
> put 'test', 'row3', 'data:c', 'value 3'
0 row(s) in 0.0090 seconds
Remarque : Nous avons inséré trois valeurs. Le premier élément inséré est à
«row1», colonne «data:a» avec une valeur «valeur1». Les colonnes de HBase
sont composés d'un préfixe FamilyColumn, «data» dans cet exemple, suivi de
deux points et un suffixe Colonm Qualifier, «a» dans ce cas.
Big Data - 2019 5
Manipulation des données – HBase Shell (5/16)
5. Affichage de la table (toutes les données à la
fois).
> scan 'test'
ROW COLUMN+CELL
row1 column=data:a, timestamp=1413741061087, value=value 1
row2 column=data:b, timestamp=1413741095382, value=value 2
row3 column=data:c, timestamp=1413741107667, value=value 3
3 row(s) in 0.0450 seconds
6. Affichage d’une ligne
('row2')
COLUMN
> get 'test',CELL
'row2'
data:b timestamp=1413741095382, value=value 2
7. Affichage de la valeur d’une cellule
('row2'-'data:b')
> get 'test', 'row2', 'data:b'
COLUMN CELL
data:b timestamp=1413741095382, value=value
24
2
Manipulation des données – HBase Shell (6/16)
8. Modification de la valeur d’une cellule et affichage du
resultat
> put 'test', 'row1', 'data:a', 'nouvelle valeur 1'
0 row(s) in 0.0740 seconds
get 'test', 'row1', 'data:a'
COLUMN CELL
data:a timestamp=1413744793745, value=nouvelle valeur1
9. Ajout d’une valeur dans une cellule et affichage du
résultat
> put 'test', 'row2', 'data:bb', 'valeur 22'
> get 'tes t', 'row2'
COLUMN CELL
data:b timestamp=1413741095382, value=valeur 2
data:bb timestamp=1413745401122, value=valeur 22
Big Data - 2019 25