SlideShare une entreprise Scribd logo
1  sur  38
#JSS2014
Les journées
SQL Server 2014
Un événement organisé par GUSS
#JSS2014
Les journées
SQL Server 2014
Un événement organisé par GUSS
Hive ou la convergence entre
datawarehouse et Big Data
Julien Buret
David Joubert
#JSS2014
Merci à nos sponsors
#JSS2014
Speakers
Julien Buret
Directeur technique
@julienburet
David Joubert
Consultant Data & Analytics
@Dj_Uber
www.djuber.net
#JSS2014
On va parler de
• Un peu d’Hadoop
• Beaucoup de Hive
– Historique
– Moteurs d’exécution
– Stockage
– Optimisation de requêtes
• Pas mal de démos
On ne vas pas en parler
• De tout le reste
Autres sessions Big Data
• APS, l’appliance Big Data, Lundi
à 15h30
• Big Data et Real Time, Mardi à
14h
Agenda
#JSS2014
• Framework aidant au développement
d’application distribué et scalable
• Projet débuté en 2005
– Basé sur 2 papiers de Google (GFS & MapReduce)
• Projet Apache depuis 2009
Hadoop : un peu d’histoire
#JSS2014
Map Reduce
class CompositeKeyWritableRSJ implements Writable,
WritableComparable<CompositeKeyWritableRSJ> {
// Data members
private String joinKey;// EmployeeID
private int sourceIndex;// 1=Employee data; 2=Salary (current) data; 3=Salary historical data
public CompositeKeyWritableRSJ() {
}
public CompositeKeyWritableRSJ(String joinKey, int sourceIndex) {
this.joinKey = joinKey;
this.sourceIndex = sourceIndex;
}
@Override
public String toString() {
return (new StringBuilder().append(joinKey).append("t").append(sourceIndex)).toString();
}
public void readFields(DataInput dataInput) throws IOException {
joinKey = WritableUtils.readString(dataInput);
sourceIndex = WritableUtils.readVInt(dataInput);
}
public void write(DataOutput dataOutput) throws IOException {
WritableUtils.writeString(dataOutput, joinKey);
WritableUtils.writeVInt(dataOutput, sourceIndex);
}
public int compareTo(CompositeKeyWritableRSJ objKeyPair) {
int result = joinKey.compareTo(objKeyPair.joinKey);
if (0 == result) {
result = Double.compare(sourceIndex, objKeyPair.sourceIndex);
}
return result;
}
public String getjoinKey() {
return joinKey;
}
public void setjoinKey(String joinKey) {
this.joinKey = joinKey;
}
public int getsourceIndex() {
return sourceIndex;
}
public void setsourceIndex(int sourceIndex) {
this.sourceIndex = sourceIndex;
}
}
public class MapperRSJ extends
Mapper<LongWritable, Text, CompositeKeyWritableRSJ, Text> {
CompositeKeyWritableRSJ ckwKey = new CompositeKeyWritableRSJ();
Text txtValue = new Text("");
int intSrcIndex = 0;
StringBuilder strMapValueBuilder = new StringBuilder("");
List<Integer> lstRequiredAttribList = new ArrayList<Integer>();
@Override
protected void setup(Context context) throws IOException,
InterruptedException {
// {{
// Get the source index; (employee = 1, salary = 2)
// Added as configuration in driver
FileSplit fsFileSplit = (FileSplit) context.getInputSplit();
intSrcIndex = Integer.parseInt(context.getConfiguration().get(
fsFileSplit.getPath().getName()));
// }}
// {{
// Initialize the list of fields to emit as output based on
// intSrcIndex (1=employee, 2=current salary, 3=historical salary)
if (intSrcIndex == 1) // employee
{
lstRequiredAttribList.add(2); // FName
lstRequiredAttribList.add(3); // LName
lstRequiredAttribList.add(4); // Gender
lstRequiredAttribList.add(6); // DeptNo
} else // salary
{
lstRequiredAttribList.add(1); // Salary
lstRequiredAttribList.add(3); // Effective-to-date (Value of
// 9999-01-01 indicates current
// salary)
}
// }}
}
public class ReducerRSJ extends
Reducer<CompositeKeyWritableRSJ, Text, NullWritable, Text> {
StringBuilder reduceValueBuilder = new StringBuilder("");
NullWritable nullWritableKey = NullWritable.get();
Text reduceOutputValue = new Text("");
String strSeparator = ",";
private MapFile.Reader deptMapReader = null;
Text txtMapFileLookupKey = new Text("");
Text txtMapFileLookupValue = new Text("");
@Override
protected void setup(Context context) throws IOException,
InterruptedException {
// {{
// Get side data from the distributed cache
Path[] cacheFilesLocal = DistributedCache.getLocalCacheArchives(context
.getConfiguration());
for (Path eachPath : cacheFilesLocal) {
if (eachPath.getName().toString().trim()
.equals("departments_map.tar.gz")) {
URI uriUncompressedFile = new File(eachPath.toString()
+ "/departments_map").toURI();
initializeDepartmentsMap(uriUncompressedFile, context);
}
}
// }}
}
#JSS2014
• Projet interne Facebook lancé en
2007
• Opensourcé en 2009
• Aujourd’hui le standard de fait
pour exécuter du SQL sur Hadoop
• Disponible sur toute les
distributions populaires
Hive : un peu d’histoire
#JSS2014
Hive fonctionnement globale
Block n
Block n
Block n
Block n
foo/foo1.tx
t
Hive METASTORE
FOO -> /dw/foo
select id, count(0)
from FOO group
by id
1. Créer des
jobs en se
servant des
metadonnées
2. Génère et soumet le
traitement au cluster
task
task
task
task
Hive DRIVER
#JSS2014
Interprétation SQL par Hive
Parser
Analyse
Sémantique
Générateur
plan
d’éxecution
logique
Générateur
plan
d’éxecution
physique
HiveQL
AST
QB
Operator
Tree
Task Tree
#JSS2014
M/R comme moteur d’exécution SQL
M
M
M
M
M
R
R
R
HDFS
HDFS
M
M
R HDFS M R HDFS
IO
IO
IO
#JSS2014
Hive
#JSS2014
Hive Quelle usage ?
Base de donneés Hive
Langage SQL HiveQL (SQL-92)
Update Oui Non
Delete Oui Non
Transactions Oui Non
Index Extensive Non / Limité
Latence Très faible Elevée
Volume de données To Po
Gestion des
données
Validation à
l’ecriture, contrainte
« schema on read »
#JSS2014
Hive Quelle usage ?
PAS DE REQUÊTES
INTERACTIVES
Datwarehouse
DB
Log
DB
SQL/NoSQL
Réseaux
sociaux
#JSS2014
Requête interactive sur Hadoop
STINGER
#JSS2014
La fin de M/R pour le sql sur Hadoop
hive> set hive.execution.engine=tez
Et bientôt
hive> set hive.execution.engine=spark
#JSS2014
• MPP
• Requête SQL « interactive » sur Hadoop
• Compatible Hive
– Même API
– Partage le metastore
Impala
#JSS2014
Spark
#JSS2014
• Nouveau moteur d’exécution pour Hadoop
– Supporte M/R + Join
– Permet de construire des plans d’exécution plus
complexe que M/R
• Pipelining
• Utilisation de la mémoire à la place du disque
• Multiple Reduce Stage
Tez
#JSS2014
Traitement complexe M/R
M
M
M
M
M
R
R
R
HDFS
HDFS
M
M
R HDFS M R HDFS
IO
IO
IOIO
IO
IO IO
#JSS2014
Traitement complexe M/R
M
M
M
M
M
R
R
R
HDFS
HDFS
M
M
R HDFS M R HDFS
IO
IO
IO
#JSS2014
Même traitement avec Tez
M
M
M
M
M
R
R
R
R
R HDFS
R
#JSS2014
Comparaison de performances entre
Hive en mode MapReduce et Hive en
mode Tez
#JSS2014
• Hive peut analyser des formats textuels
(CSV, texte brut avec RegEx, Json, …)
– Permet de travailler sur de la donnée brut (log, export
d’API, …)
• Parsing couteux
• Problème de la compression
Hive sur donnée brut
#JSS2014
• SequenceFile, Avro, …
– Parsing moins couteux
• Compression par bloc de données
• Stockage adapté pour M/R
Format Binaire
#JSS2014
Format orienté colonne
a b c
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
a5 b5 c5
a1 b1 c1 a2 b2 c2 a3 b3 c3
a1 a2 a3 b1 b2 b3 c1 c2 c3
Représentation logique
des données
Stockage ligne
Stockage colonne
Metadata + Encoding +
Compression
#JSS2014
• ORC et Parquet
• Permet un stockage des données en
colonnes
• Améliore les performances en lecture,
écriture et traitement
• Optimisation du stockage grâce à la
compression induite par le format
Format orienté colonne
#JSS2014
Comparaison de performances entre
stockage natif et stockage colonne
#JSS2014
• Hive traite les données ligne à ligne
– Inefficace notamment pour des agrégations
• Mais résolue dans le monde « SQL » par la
Vectorization
• Contribution hortonwork + microsoft sur Hive
– Modification du Query Engine pour traiter des « vecteurs
de colonnes »
– Meilleur utilisation du CPU et des caches
Vectorisation
#JSS2014
• Optimisation de l’arbre d’exécution
– Peu d’optimisations
• Partition pruning
• Projection pruning
• Filter push down
• Pas d’optimisation lié à la donnée
– Ordre des tables dans les jointures importants
– Pas de hint
Hive < 0.14 : RBO
#JSS2014
• Hive 0.14 with Apache Optiq
• Impala 2.0
CBO
#JSS2014
• Première optimisation
– Join reordering
Hive 0.14
SQL
parser
Semantic
Analyser
Logical
Optimizer
Physical
Optimizer
Map
Reduce
Translate
Optiq
AST optimisé
#JSS2014
• Même problématique que pour une base
SQL
– Les statistiques doivent être calculé et représentative
des données
Hive : Calcul des statistiques
#JSS2014
Vectorization + CBO
#JSS2014
SQL
Langage de requêtes SQL
Traitement en mode batch
Format orienté colonne
(columnstore index, moteur
vertipaq)
Moteur d’exécution basé sur
des statistiques
Hive
Langage de requêtes HiveQL
Vectorisation
Format ORC (oriented row
columnar)
Query planner
Pourquoi parler de convergence ?
#JSS2014
• SQL-20XX
– Supporté les fonctions analytics
– WINDOWS, ROOLUP, CUBE
• Transaction
• LLAP
• Materialized Views
• Requête multi-datasource
– Prestodb (Facebook)
– APS PolyBase
– Oracle Bigdata
Le futur du SQL sur Hadoop
#JSS2014
Questions
#JSS2014#JSS2014

Contenu connexe

Tendances

Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Modern Data Stack France
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
HDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyHDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyOlivier DASINI
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big DataAmal Abid
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 

Tendances (20)

Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Une introduction à MapReduce
Une introduction à MapReduceUne introduction à MapReduce
Une introduction à MapReduce
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
HCatalog
HCatalogHCatalog
HCatalog
 
Hadoop chez Kobojo
Hadoop chez KobojoHadoop chez Kobojo
Hadoop chez Kobojo
 
HDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyHDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien Hardy
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big Data
 
Hadoop
HadoopHadoop
Hadoop
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Hortonwork
HortonworkHortonwork
Hortonwork
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
Hadoop Graph Analysis par Thomas Vial
Hadoop Graph Analysis par Thomas VialHadoop Graph Analysis par Thomas Vial
Hadoop Graph Analysis par Thomas Vial
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Dépasser map() et reduce()
Dépasser map() et reduce()Dépasser map() et reduce()
Dépasser map() et reduce()
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 

En vedette

No sql introduction_v1.1.1
No sql introduction_v1.1.1No sql introduction_v1.1.1
No sql introduction_v1.1.1Fan Ang
 
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…Dan Lundquist
 
Building a social intranet (in IBM Lotus)
Building a social intranet (in IBM Lotus)Building a social intranet (in IBM Lotus)
Building a social intranet (in IBM Lotus)Jasper Goertz
 
B2b e-commerce (groothandel-logistiek)
B2b e-commerce (groothandel-logistiek)B2b e-commerce (groothandel-logistiek)
B2b e-commerce (groothandel-logistiek)Jasper Goertz
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start TutorialCarl Steinbach
 

En vedette (7)

No sql introduction_v1.1.1
No sql introduction_v1.1.1No sql introduction_v1.1.1
No sql introduction_v1.1.1
 
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…
NACAC 2012: Lunch with Lawlor Presentation &quot;Enrollment as a Lens on the Fu…
 
World war 1
World war 1World war 1
World war 1
 
Building a social intranet (in IBM Lotus)
Building a social intranet (in IBM Lotus)Building a social intranet (in IBM Lotus)
Building a social intranet (in IBM Lotus)
 
B2b e-commerce (groothandel-logistiek)
B2b e-commerce (groothandel-logistiek)B2b e-commerce (groothandel-logistiek)
B2b e-commerce (groothandel-logistiek)
 
First Prese
First PreseFirst Prese
First Prese
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start Tutorial
 

Similaire à JSS2014 – Hive ou la convergence entre datawarehouse et Big Data

Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataDavid Joubert
 
Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Jean-Pierre Riehl
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
 
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013serge luca
 
Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Jean-Pierre Riehl
 
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?GUSS
 
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...serge luca
 
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...GUSS
 
Journées SQL Server - Optimisation SQL Server pour SharePoint
Journées SQL Server - Optimisation SQL Server pour SharePointJournées SQL Server - Optimisation SQL Server pour SharePoint
Journées SQL Server - Optimisation SQL Server pour SharePointBenoit Jester
 
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Jean-Pierre Riehl
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosqlGUSS
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
JSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsJSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsGUSS
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …GUSS
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.ithibnico
 

Similaire à JSS2014 – Hive ou la convergence entre datawarehouse et Big Data (20)

Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
 
Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
Ce que tout DBA doit savoir sur SQL Server et SharePoint 2013
 
Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?Cloud et BI, quelle architecture pour 2014 ?
Cloud et BI, quelle architecture pour 2014 ?
 
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
 
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
Haute disponibilité et Reprise sur Incident en SharePoint 2013 Journées SQL S...
 
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
 
Journées SQL Server - Optimisation SQL Server pour SharePoint
Journées SQL Server - Optimisation SQL Server pour SharePointJournées SQL Server - Optimisation SQL Server pour SharePoint
Journées SQL Server - Optimisation SQL Server pour SharePoint
 
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
Azure Data Lake, le Big Data 2.0 - SQL Saturday Montreal 2017
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
JSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an aprèsJSS2014 – Azure SQL Database : 1 an après
JSS2014 – Azure SQL Database : 1 an après
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …
SQLSaturday Paris 2014 - HDInsight : Cas d’usages, Hive, Sqoop, Pig, …
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.it
 

Plus de GUSS

GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS
 
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)GUSS
 
JSS2015 - Machine Learning like a boss
JSS2015 - Machine Learning like a bossJSS2015 - Machine Learning like a boss
JSS2015 - Machine Learning like a bossGUSS
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS
 
JSS2015 - Keynote jour 2
JSS2015 - Keynote jour 2JSS2015 - Keynote jour 2
JSS2015 - Keynote jour 2GUSS
 
JSS2015 - Keynote jour 1
JSS2015 - Keynote jour 1JSS2015 - Keynote jour 1
JSS2015 - Keynote jour 1GUSS
 
[JSS2015] Power BI Dev
[JSS2015] Power BI Dev[JSS2015] Power BI Dev
[JSS2015] Power BI DevGUSS
 
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch TablesGUSS
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query StoreGUSS
 
[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexsGUSS
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybridesGUSS
 
[JSS2015] Infra bi#4 - le scale out
[JSS2015] Infra bi#4 - le scale out[JSS2015] Infra bi#4 - le scale out
[JSS2015] Infra bi#4 - le scale outGUSS
 
[JSS2015] In memory and operational analytics
[JSS2015] In memory and operational analytics[JSS2015] In memory and operational analytics
[JSS2015] In memory and operational analyticsGUSS
 
[JSS2015] Eradiction des deadlocks
[JSS2015] Eradiction des deadlocks[JSS2015] Eradiction des deadlocks
[JSS2015] Eradiction des deadlocksGUSS
 
[JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics [JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics GUSS
 
[JSS2015] - Azure automation
[JSS2015] - Azure automation[JSS2015] - Azure automation
[JSS2015] - Azure automationGUSS
 
[JSS2015] AlwaysOn 2016
[JSS2015] AlwaysOn 2016[JSS2015] AlwaysOn 2016
[JSS2015] AlwaysOn 2016GUSS
 
[JSS2015] x events
[JSS2015] x events[JSS2015] x events
[JSS2015] x eventsGUSS
 
[JSS2015] Nouveautés SSIS SSRS 2016
[JSS2015] Nouveautés SSIS SSRS 2016[JSS2015] Nouveautés SSIS SSRS 2016
[JSS2015] Nouveautés SSIS SSRS 2016GUSS
 
JSS2014 – Infrastructure et Always-On
JSS2014 – Infrastructure et Always-OnJSS2014 – Infrastructure et Always-On
JSS2014 – Infrastructure et Always-OnGUSS
 

Plus de GUSS (20)

GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
 
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
 
JSS2015 - Machine Learning like a boss
JSS2015 - Machine Learning like a bossJSS2015 - Machine Learning like a boss
JSS2015 - Machine Learning like a boss
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the Web
 
JSS2015 - Keynote jour 2
JSS2015 - Keynote jour 2JSS2015 - Keynote jour 2
JSS2015 - Keynote jour 2
 
JSS2015 - Keynote jour 1
JSS2015 - Keynote jour 1JSS2015 - Keynote jour 1
JSS2015 - Keynote jour 1
 
[JSS2015] Power BI Dev
[JSS2015] Power BI Dev[JSS2015] Power BI Dev
[JSS2015] Power BI Dev
 
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query Store
 
[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs
 
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Power BI: Nouveautés archi et hybrides
 
[JSS2015] Infra bi#4 - le scale out
[JSS2015] Infra bi#4 - le scale out[JSS2015] Infra bi#4 - le scale out
[JSS2015] Infra bi#4 - le scale out
 
[JSS2015] In memory and operational analytics
[JSS2015] In memory and operational analytics[JSS2015] In memory and operational analytics
[JSS2015] In memory and operational analytics
 
[JSS2015] Eradiction des deadlocks
[JSS2015] Eradiction des deadlocks[JSS2015] Eradiction des deadlocks
[JSS2015] Eradiction des deadlocks
 
[JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics [JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics
 
[JSS2015] - Azure automation
[JSS2015] - Azure automation[JSS2015] - Azure automation
[JSS2015] - Azure automation
 
[JSS2015] AlwaysOn 2016
[JSS2015] AlwaysOn 2016[JSS2015] AlwaysOn 2016
[JSS2015] AlwaysOn 2016
 
[JSS2015] x events
[JSS2015] x events[JSS2015] x events
[JSS2015] x events
 
[JSS2015] Nouveautés SSIS SSRS 2016
[JSS2015] Nouveautés SSIS SSRS 2016[JSS2015] Nouveautés SSIS SSRS 2016
[JSS2015] Nouveautés SSIS SSRS 2016
 
JSS2014 – Infrastructure et Always-On
JSS2014 – Infrastructure et Always-OnJSS2014 – Infrastructure et Always-On
JSS2014 – Infrastructure et Always-On
 

JSS2014 – Hive ou la convergence entre datawarehouse et Big Data

  • 1. #JSS2014 Les journées SQL Server 2014 Un événement organisé par GUSS
  • 2. #JSS2014 Les journées SQL Server 2014 Un événement organisé par GUSS Hive ou la convergence entre datawarehouse et Big Data Julien Buret David Joubert
  • 4. #JSS2014 Speakers Julien Buret Directeur technique @julienburet David Joubert Consultant Data & Analytics @Dj_Uber www.djuber.net
  • 5. #JSS2014 On va parler de • Un peu d’Hadoop • Beaucoup de Hive – Historique – Moteurs d’exécution – Stockage – Optimisation de requêtes • Pas mal de démos On ne vas pas en parler • De tout le reste Autres sessions Big Data • APS, l’appliance Big Data, Lundi à 15h30 • Big Data et Real Time, Mardi à 14h Agenda
  • 6. #JSS2014 • Framework aidant au développement d’application distribué et scalable • Projet débuté en 2005 – Basé sur 2 papiers de Google (GFS & MapReduce) • Projet Apache depuis 2009 Hadoop : un peu d’histoire
  • 7. #JSS2014 Map Reduce class CompositeKeyWritableRSJ implements Writable, WritableComparable<CompositeKeyWritableRSJ> { // Data members private String joinKey;// EmployeeID private int sourceIndex;// 1=Employee data; 2=Salary (current) data; 3=Salary historical data public CompositeKeyWritableRSJ() { } public CompositeKeyWritableRSJ(String joinKey, int sourceIndex) { this.joinKey = joinKey; this.sourceIndex = sourceIndex; } @Override public String toString() { return (new StringBuilder().append(joinKey).append("t").append(sourceIndex)).toString(); } public void readFields(DataInput dataInput) throws IOException { joinKey = WritableUtils.readString(dataInput); sourceIndex = WritableUtils.readVInt(dataInput); } public void write(DataOutput dataOutput) throws IOException { WritableUtils.writeString(dataOutput, joinKey); WritableUtils.writeVInt(dataOutput, sourceIndex); } public int compareTo(CompositeKeyWritableRSJ objKeyPair) { int result = joinKey.compareTo(objKeyPair.joinKey); if (0 == result) { result = Double.compare(sourceIndex, objKeyPair.sourceIndex); } return result; } public String getjoinKey() { return joinKey; } public void setjoinKey(String joinKey) { this.joinKey = joinKey; } public int getsourceIndex() { return sourceIndex; } public void setsourceIndex(int sourceIndex) { this.sourceIndex = sourceIndex; } } public class MapperRSJ extends Mapper<LongWritable, Text, CompositeKeyWritableRSJ, Text> { CompositeKeyWritableRSJ ckwKey = new CompositeKeyWritableRSJ(); Text txtValue = new Text(""); int intSrcIndex = 0; StringBuilder strMapValueBuilder = new StringBuilder(""); List<Integer> lstRequiredAttribList = new ArrayList<Integer>(); @Override protected void setup(Context context) throws IOException, InterruptedException { // {{ // Get the source index; (employee = 1, salary = 2) // Added as configuration in driver FileSplit fsFileSplit = (FileSplit) context.getInputSplit(); intSrcIndex = Integer.parseInt(context.getConfiguration().get( fsFileSplit.getPath().getName())); // }} // {{ // Initialize the list of fields to emit as output based on // intSrcIndex (1=employee, 2=current salary, 3=historical salary) if (intSrcIndex == 1) // employee { lstRequiredAttribList.add(2); // FName lstRequiredAttribList.add(3); // LName lstRequiredAttribList.add(4); // Gender lstRequiredAttribList.add(6); // DeptNo } else // salary { lstRequiredAttribList.add(1); // Salary lstRequiredAttribList.add(3); // Effective-to-date (Value of // 9999-01-01 indicates current // salary) } // }} } public class ReducerRSJ extends Reducer<CompositeKeyWritableRSJ, Text, NullWritable, Text> { StringBuilder reduceValueBuilder = new StringBuilder(""); NullWritable nullWritableKey = NullWritable.get(); Text reduceOutputValue = new Text(""); String strSeparator = ","; private MapFile.Reader deptMapReader = null; Text txtMapFileLookupKey = new Text(""); Text txtMapFileLookupValue = new Text(""); @Override protected void setup(Context context) throws IOException, InterruptedException { // {{ // Get side data from the distributed cache Path[] cacheFilesLocal = DistributedCache.getLocalCacheArchives(context .getConfiguration()); for (Path eachPath : cacheFilesLocal) { if (eachPath.getName().toString().trim() .equals("departments_map.tar.gz")) { URI uriUncompressedFile = new File(eachPath.toString() + "/departments_map").toURI(); initializeDepartmentsMap(uriUncompressedFile, context); } } // }} }
  • 8. #JSS2014 • Projet interne Facebook lancé en 2007 • Opensourcé en 2009 • Aujourd’hui le standard de fait pour exécuter du SQL sur Hadoop • Disponible sur toute les distributions populaires Hive : un peu d’histoire
  • 9. #JSS2014 Hive fonctionnement globale Block n Block n Block n Block n foo/foo1.tx t Hive METASTORE FOO -> /dw/foo select id, count(0) from FOO group by id 1. Créer des jobs en se servant des metadonnées 2. Génère et soumet le traitement au cluster task task task task Hive DRIVER
  • 10. #JSS2014 Interprétation SQL par Hive Parser Analyse Sémantique Générateur plan d’éxecution logique Générateur plan d’éxecution physique HiveQL AST QB Operator Tree Task Tree
  • 11. #JSS2014 M/R comme moteur d’exécution SQL M M M M M R R R HDFS HDFS M M R HDFS M R HDFS IO IO IO
  • 13. #JSS2014 Hive Quelle usage ? Base de donneés Hive Langage SQL HiveQL (SQL-92) Update Oui Non Delete Oui Non Transactions Oui Non Index Extensive Non / Limité Latence Très faible Elevée Volume de données To Po Gestion des données Validation à l’ecriture, contrainte « schema on read »
  • 14. #JSS2014 Hive Quelle usage ? PAS DE REQUÊTES INTERACTIVES Datwarehouse DB Log DB SQL/NoSQL Réseaux sociaux
  • 16. #JSS2014 La fin de M/R pour le sql sur Hadoop hive> set hive.execution.engine=tez Et bientôt hive> set hive.execution.engine=spark
  • 17. #JSS2014 • MPP • Requête SQL « interactive » sur Hadoop • Compatible Hive – Même API – Partage le metastore Impala
  • 19. #JSS2014 • Nouveau moteur d’exécution pour Hadoop – Supporte M/R + Join – Permet de construire des plans d’exécution plus complexe que M/R • Pipelining • Utilisation de la mémoire à la place du disque • Multiple Reduce Stage Tez
  • 22. #JSS2014 Même traitement avec Tez M M M M M R R R R R HDFS R
  • 23. #JSS2014 Comparaison de performances entre Hive en mode MapReduce et Hive en mode Tez
  • 24. #JSS2014 • Hive peut analyser des formats textuels (CSV, texte brut avec RegEx, Json, …) – Permet de travailler sur de la donnée brut (log, export d’API, …) • Parsing couteux • Problème de la compression Hive sur donnée brut
  • 25. #JSS2014 • SequenceFile, Avro, … – Parsing moins couteux • Compression par bloc de données • Stockage adapté pour M/R Format Binaire
  • 26. #JSS2014 Format orienté colonne a b c a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 a5 b5 c5 a1 b1 c1 a2 b2 c2 a3 b3 c3 a1 a2 a3 b1 b2 b3 c1 c2 c3 Représentation logique des données Stockage ligne Stockage colonne Metadata + Encoding + Compression
  • 27. #JSS2014 • ORC et Parquet • Permet un stockage des données en colonnes • Améliore les performances en lecture, écriture et traitement • Optimisation du stockage grâce à la compression induite par le format Format orienté colonne
  • 28. #JSS2014 Comparaison de performances entre stockage natif et stockage colonne
  • 29. #JSS2014 • Hive traite les données ligne à ligne – Inefficace notamment pour des agrégations • Mais résolue dans le monde « SQL » par la Vectorization • Contribution hortonwork + microsoft sur Hive – Modification du Query Engine pour traiter des « vecteurs de colonnes » – Meilleur utilisation du CPU et des caches Vectorisation
  • 30. #JSS2014 • Optimisation de l’arbre d’exécution – Peu d’optimisations • Partition pruning • Projection pruning • Filter push down • Pas d’optimisation lié à la donnée – Ordre des tables dans les jointures importants – Pas de hint Hive < 0.14 : RBO
  • 31. #JSS2014 • Hive 0.14 with Apache Optiq • Impala 2.0 CBO
  • 32. #JSS2014 • Première optimisation – Join reordering Hive 0.14 SQL parser Semantic Analyser Logical Optimizer Physical Optimizer Map Reduce Translate Optiq AST optimisé
  • 33. #JSS2014 • Même problématique que pour une base SQL – Les statistiques doivent être calculé et représentative des données Hive : Calcul des statistiques
  • 35. #JSS2014 SQL Langage de requêtes SQL Traitement en mode batch Format orienté colonne (columnstore index, moteur vertipaq) Moteur d’exécution basé sur des statistiques Hive Langage de requêtes HiveQL Vectorisation Format ORC (oriented row columnar) Query planner Pourquoi parler de convergence ?
  • 36. #JSS2014 • SQL-20XX – Supporté les fonctions analytics – WINDOWS, ROOLUP, CUBE • Transaction • LLAP • Materialized Views • Requête multi-datasource – Prestodb (Facebook) – APS PolyBase – Oracle Bigdata Le futur du SQL sur Hadoop

Notes de l'éditeur

  1. DAVID
  2. DAVID
  3. DAVID
  4. DAVID JULIEN
  5. DAVID
  6. DAVID Hadoop n’est pas une base de données. C’est un système de fichiers distribué (HDFS) et un moteur de calcul (MapReduce) D’ailleurs il est très peu performant sur l’analyse des données en temps réel => beaucoup d’évolutions dépendent de cette problématique.
  7. La moitié du code nécessaire à la réalisation d’une jointure Au moins 6 classes java à développer
  8. DAVID Développeurs très bon en SQL, mais pas développeurs JAVA
  9. JULIEN Hive n’est pas un moteur de base de données relationnel sur Hadoop Hive est une application cliente hadoop qui permet de générer des jobs M/R à partir d’un langage, plus haut niveau et plus productif que M/R Hive est composé de 2 principaux modules: - Un metastore qui va stocker les informations sur la structure des données stocké dans HDFS. C’est l’équivalent d’un dictionnaire de données. Il contient notamment la correspondance entre un table et son stockage sur HDFS. - le driver, qui va interpréter le SQL fournit par le client et le transformer en job map. reduce
  10. JULIEN Parser (ANTLR) : parser de hiveql vers un abstract syntax tree Analyse sémantique (en 3 partie) : Génération du plan logique à partir de l’AST (Query Block) Optimisation du plan logique Puis génération du plan d’execution physique: Map reduce http://fr.slideshare.net/nzhang/hive-anatomy
  11. JULIEN
  12. Explain d’une requête simple. Temps d’execution. Create external table
  13. DAVID
  14. DAVID Pattern classique avec MapReduce on récupère toute les données (DB + Log + social network, etc..) On stocke tous dans hadoop On fait les use-cases compliqué ou impossible à faire dans un datawarehouse Par contre difficile d’intérogé les donnnés en interactifs Obliger de remettre ces données dans une base de données classique : Pré aggrégation Duplication des données synchronisation
  15. JULIEN
  16. JULIEN
  17. JULIEN
  18. JULIEN
  19. JULIEN
  20. JULIEN
  21. JULIEN
  22. JULIEN
  23. DAVID Impossible de relire un fichier compresse depuis le milieu Donc pb avec le découpage
  24. DAVID Stockage en ligne par système de clé/valeur, optimisé pour le MapReduce (compris que par hadoop) Peuvent être compressé par valeur ou bloc de données pour limiter les I/O. Pas l’idéal pour Hive car stocké au format ligne. Obligé de lire la ligne complète même si on n’a besoin que d’une colonne.
  25. JULIEN Column-oriented organizations are more efficient when an aggregate needs to be computed over many rows but only for a notably smaller subset of all columns of data, because reading that smaller subset of data can be faster than reading all data. Column-oriented organizations are more efficient when new values of a column are supplied for all rows at once, because that column data can be written efficiently and replace old column data without touching any other columns for the rows. Row-oriented organizations are more efficient when many columns of a single row are required at the same time, and when row-size is relatively small, as the entire row can be retrieved with a single disk seek. Row-oriented organizations are more efficient when writing a new row if all of the row data is supplied at the same time, as the entire row can be written with a single disk seek.
  26. DAVID Contribution hortonworks + Microsoft
  27. JULIEN
  28. JULIEN
  29. JULIEN
  30. JULIEN
  31. DAVID
  32. On parlait des speakers, il y a une chose qui leur tient à cœur !