• Aucun résultat trouvé

Grand volume de données

N/A
N/A
Protected

Academic year: 2022

Partager "Grand volume de données"

Copied!
33
0
0

Texte intégral

(1)
(2)

Le Problème :

Grand volume de données

Constamment mises à jour

(lectures/écritures)

Plus (+) d’utilisateurs

Plus (+) de services

Plus (+) de services

Plus (+) rapide

Système distribué

(plusieurs serveurs à travers le monde)

Impossible de définir un modèle relationnel adapté

(3)

La Solution :

Redéfinir un système plus adapté, qui soit :

Rapide

Extensible

(ajout de données, sans redéfinir le modèle)

Robuste

(un grand volume de données)

Robuste

(un grand volume de données)

Distribué

Tolérant aux fautes

Projet Cassandra

(4)

Plan

1.

Origines de Cassandra

2.

No-SQL

1. Qu’est-ce que c’est ?

2. Modèle Orienté Colonnes

2. Modèle Orienté Colonnes 3.

Cassandra

1. Modèle de données

2. Utilisation

3. Avantages & Inconvénients

(5)

Origines de Cassandra (1)

Élaborée pour Facebook®

Par:

Avinash Lakshman

(un auteur de Amazon® Dynamo®)

Avinash Lakshman

(un auteur de Amazon® Dynamo®)

Malik Prashant

(ingénieur chez Facebook®)

Juillet 2008 : Open-Source via Google Code

Mars 2009 : Incubateur de la fondation Apache®

(6)

Origines de Cassandra (2)

Modèle de données de Google® BigTable®

no-sql orienté colonnes, architecture de stockage

Technologie des systèmes distribués de Amazon®

Dynamo®

Dynamo®

réplication, tolérance aux fautes, gestion des clusters

(7)

Origines de Cassandra (3)

Utilisée par :

(8)

Plan

1.

Origines de Cassandra

2.

No-SQL

1. Qu’est-ce que c’est ?

2. Modèle Orienté Colonnes

2. Modèle Orienté Colonnes 3.

Cassandra

1. Modèle de données

2. Utilisation

3. Avantages & Inconvénients

(9)

No-SQL

No-SQL pour « Not Only Structured Query Language »

Terme inventé & introduit par Carlo Strozzi en 1998

Pas de modèle relationnel

4 types de No-SQL

4 types de No-SQL

Cassandra: Orienté Colonnes

(10)

No-SQL - Orienté Colonne (1)

Organisée en ColumnFamily

(sim. Tables (SGBD Relationnel)

Pas de données « vides »

Alors que le Relationel: cell_value = null ou ‘ ’

Dynamique vs. Statique

Dynamique vs. Statique

Ajouter autant de colonnes à une ligne que nécessaire.

(11)

No-SQL - Orienté Colonne (2 – Ex.)

Millions de colonnes !

Facile d’en ajouter

Par ex : ‘Pseudo’ en + de ‘Nom’ et ‘Prénom’, dans FaceBook® v4 ?

(12)

No-SQL - Orienté Colonne (2)

Cassandra ajoute les « SuperColumns »

Requêtes sur un ensemble de SuperColumns

(13)

Plan

1.

Origines de Cassandra

2.

No-SQL

1. Qu’est-ce que c’est ?

2. Modèle Orienté Colonnes

2. Modèle Orienté Colonnes 3.

Cassandra

1. Modèle de données

2. Utilisation

3. Avantages & Inconvénients

(14)

Modèle de données

Cluster

Keyspace

ColumnFamily Key

Le « node » est défini au niveau d'un groupe de serveur et pas seulement au niveau d'un site.

Key

SuperColumn( facultatif ) Column

Value

(15)

Modèle de données

Cluster

Keyspace

ColumnFamily Key

Espace où réside les données. Il faut penser cette structure comme

l'ensemble des données que gère un site donné.

Key

SuperColumn( facultatif ) Column

Value

site donné.

Défini dans « storage-conf.xml »

(16)

Modèle de données

Cluster

Keyspace

ColumnFamily Key

Ensemble de clés-valeurs. (~Tables)

Key

SuperColumn( facultatif ) Column

Value

(17)

Modèle de données

Cluster

Keyspace

ColumnFamily

Key Ensemble de (Super)Colonnes. (~Ligne)

Key

SuperColumn( facultatif ) Column

Value

Ensemble de (Super)Colonnes. (~Ligne)

(18)

Modèle de données

Cluster

Keyspace

ColumnFamily Key

Key

SuperColumn( facultatif ) Column

Value

Introduit par Facebook®.

Sur-ensemble pour désigner facilement un ensemble de colonnes.

(Value=List<Column>)

(19)

Modèle de données

Cluster

Keyspace

ColumnFamily Key

Key

SuperColumn( facultatif ) Column

Value

Là où réside la donnée.

Column:Value, où Column serait le nom d’une colonne en Relationnel.

Name : byte[] (tri)

(20)

Modèle de données – Exemple

ColumnFamily : Users{

Key : ‘a234f-67d34-a23fb’ {

SuperColumn : General Informations { Column: LastName {value : Zuckerberg}

Column: FirstName{value : Mark}

Column: BirthDate{value : 1984-05-14}

Column : BirthDate{value : 1984-05-14}

}

SuperColumn : Amis{

Column : Ami1{value: id_ami1}

Column : Ami2{value: id_ami2}

}

(21)

Plan

1.

Origines de Cassandra

2.

No-SQL

1. Qu’est-ce que c’est ?

2. Modèle Orienté Colonnes

2. Modèle Orienté Colonnes 3.

Cassandra

1. Modèle de données

2. Utilisation

3. Avantages & Inconvénients

(22)

Utilisation – Lectures (1)

API: Thrift

(+12 Langages)

get($params) → Column

get_slice($params) → list<Column>

mulitget_slice($params) → map<key, list<Column>>

mulitget_slice($params) → map<key, list<Column>>

get_count($params) → int

multiget_count($params) → map<key, int>

get_range_slices($params)

(23)

Utilisation – Lectures (2)

En Interne :

MemTable

Serveur le plus proche Réparation Auto.

Réparation Auto.

Attend N réponses

(24)

Utilisation – Écritures (1)

API :

insert()

batch_insert() remove()

remove()

batch_mutate()

(25)

Utilisation – Écritures (2)

En Interne :

Le client demande l’écriture d’une donnée, n’importe où dans le cluster.

Écriture dans le commit-log, puis dans la mémoire.

Écriture dans le commit-log, puis dans la mémoire.

Le Partitionner décide des serveurs propriétaires de la donnée.

Le commit-log est stockée sur la machine client, sur un

disque local dédié

(26)

Utilisation – Écritures (2)

En Interne :

(27)

Utilisation – Écritures (3)

Avantages :

Pas de “lock”

Accès disque séquentiel

Atomicité garantie pour une “ColumnFamily”

Atomicité garantie pour une “ColumnFamily”

Toujours accessible en écriture, même en cas de problème

Les données sont ordonnées par ordre de clé

(28)

Plan

1.

Origines de Cassandra

2.

No-SQL

1. Qu’est-ce que c’est ?

2. Modèle Orienté Colonnes

2. Modèle Orienté Colonnes 3.

Cassandra

1. Modèle de données

2. Utilisation

3. Avantages & Inconvénients

(29)

Avantages (1)

• Temps accès très rapide

Ex: Table >50 GigaBytes de données (source: Apache)

>50Go MySQL Cassandra Écriture 300 ms 0.12 ms

• Scalabilité Horizontale + Serveurs = + Performances.

• Décentralisé >> Pas de point unique de défaillance

• Load balancing (Répartition de la charge)

• Réplication Automatique

Écriture 300 ms 0.12 ms

Lecture 350 ms 15 ms

(30)

Avantages (2)

• Open Source >> Gratuit et Libre

• Protégé contre les injections SQL

>> Certainement l’avenir des grosses BD

>> Certainement l’avenir des grosses BD

(31)

Inconvénients

• Pas de SQL « Simple » (Select … From…)

• Pas de GUI. Travaux en cours…

• Besoin de place sur le disque local/Memtable pour une valeur

« atomique »

« atomique »

• Plus adapté aux grandes BD.

• Pas « très simple » à mettre en place et à utiliser

• Pas de « joins » comme en SQL Relationnel

• Pas de requêtes sur les valeurs des données (à venir, v0.8)

(32)

Sources

Sites Indépendants (FR) :

http://www.betecommechou.com/2009/07/cassandra-le-modele-de-donnees/

http://blogexpertease.alti.com/index.php?2010/03/02/156-le-projet-cassandra-de-apache http://victor-kabdebon.blogspot.com/ (auteur de VoxNucleus)

http://blog.xebia.fr/2010/05/04/nosql-europe-bases-de-donnees-orientees-colonnes-et- cassandra/

http://pro.01net.com/editorial/513928/digg-adopte-a-son-tour-nosql-et-abandonne-mysql/

http://pro.01net.com/editorial/513928/digg-adopte-a-son-tour-nosql-et-abandonne-mysql/

http://blog.octo.com/nosql-jouons-avec-cassandra-13/

Sites Indépendants (EN) :

http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/

Autres présentations sur Slideshare Sites officiels :

http://wiki.apache.org/cassandra/

(33)

Références

Documents relatifs

La gestion de grands troupeaux de vaches (150 VL ou plus) nécessite de disposer d’outils adaptés aux animaux 

UPE-IFSTTAR Les équipes de recherche ont intérêt à mutualiser les acquis des travaux d’ingénierie pour l’intégration de données sur la ville, qu’elles soient

I wanted my mind to be a window at night and a warm apricot light.. I wanted to shoot a

Le kyste odontogène calcifié est une lésion bénigne rare, décrite pour la première fois par Gorlin en 1962, et classée comme tel dans la classification de 1992.. Cependant, en

« Sud4science, de l’acquisition d’un grand corpus de SMS en français à l’analyse de l’écriture SMS », Épistémè — revue internationale de sciences sociales

Pour valider la méthode proposée, nous disposons d’une base de données compo- sée de mesures et de valeurs vraies des paramètres évoluant au cours du temps, créée pour un

Then, we describe how the main cognitive abilities observed in herbivores have already been incorporated in spatially explicit IBMs of herbivore foraging and how this approach makes

En vingt ans, notre propre approche a évolué : d’une analyse linguistique-informatique basée sur l’exemple (Panckhurst 1994, p. 39), nous sommes passée à une analyse de la donnée