---
type: archive
area: archive
status: archived
date: 2026-05-03
created: 2026-05-03
updated: 1980-01-01
tags:
  - archive
---
# HBase Modeling Examples

## One-to-One Relationship: Students and Modules

1. **Create Tables:**
    
    
    `create 'Students', 'info' create 'Modules', 'info', 'students'`
    
2. **Insert Data:**
    
    
    `put 'Students', '1', 'info:name', 'Chaqchaq' put 'Modules', 'Math', 'info:hours', '30' put 'Modules', 'Math', 'students:1', ''`
    
3. **Retrieve Data:**
    
    
    `get 'Students', '1' get 'Modules', 'Math'`
    

## Many-to-Many Relationship: Students and Modules

1. **Create Tables:**
    
    
    `create 'Students', 'info', 'enrollments' create 'Modules', 'info', 'students'`
    
2. **Insert Data:**
    
    
    `put 'Students', '1', 'info:name', 'Chaqchaq' put 'Modules', 'Math', 'info:hours', '30' put 'Students', '1', 'enrollments:Math', '' put 'Modules', 'Math', 'students:1', ''`
    
3. **Retrieve Data:**
    
    
    `get 'Students', '1' get 'Modules', 'Math'`
    

## Many-to-Many Relationship Within the Same Table: Friendships

1. **Create Table:**
    
    
    `create 'Students', 'info', 'friends'`
    
2. **Insert Data:**
    
    
    `put 'Students', '1', 'info:name', 'Chaqchaq' put 'Students', '2', 'info:name', 'Tazi' put 'Students', '1', 'friends:friend_of', '2'`
    
3. **Retrieve Data:**
    
    
    `get 'Students', '1' get 'Students', '1', {COLUMN => 'friends:friend_of'}`
    

## Many-to-Many Relationship with Two Tables: Student-StudentModules

1. **Create Tables:**
    
    
    `create 'Students', 'info' create 'StudentModules', 'Modules'`
    
2. **Insert Data:**
    
    
    `put 'Students', '1', 'info:name', 'Chaqchaq' put 'StudentModules', '1', 'Modules:Math', ''`
    
3. **Retrieve Data:**
    `get 'Students', '1' scan 'StudentModules'`

- **HFile** : unité de stockage de bas niveau qui stocke les lignes classées lexicographiquement par clé. Ces fichiers unitaires peuvent être stockés sur différents systèmes de fichiers distribués, mais Apache HDFS est le plus couramment utilisé.
- **Région** : Un endroit, situé dans un hôte unique, contenant un certain nombre de HFiles, contenant une partition ordonnée des clés contenues dans la table.
- **Region Server** : une machine hôte unique contenant un certain nombre de régions. Il gère les demandes de lecture, d’écriture, de mise à jour et de suppression des clients.

| Hbase                                             | RDBS                                                 |
| ------------------------------------------------- | ---------------------------------------------------- |
| Chaque colonne est stockée dans un fichier séparé | lignes enregistrées séquentiellement sur un fichier. |
| chaque nouvelle valeurs ajouté au chaque fichier  | valeur concaténeé                                    |
| meme chose suppression                            | meme chose suppression                               |
| mise a jour seulment du fichier concerné          | mise a jou de toute les ligne                        |
| Pas de null                                       | null par tout!                                       |

#### <mark style="background: #BBFABBA6;">Colonne -> Super Colonne -> Famille de Coionne</mark>

#### <mark style="background: #FFF3A3A6;">HBase utilise Hdfs</mark>

#### <mark style="background: #FF5582A6;">HFile -> Region -> RegionServer</mark>


