2/35
Qui suis-je ?
Aurélie Vaché
Développeuse Full Stack chez
@aurelievache
#bigquery @aurelievache
“Big Data” != “Hadoop”
3/35#bigquery @aurelievache
GFS
MapReduce
BigTable
2004 2008 2012
Dremel
Colossus
BigQuery
Google et la révolution Big Data
2002 2006 2010 2015
Datala...
● AaaS (Analytics as a Service)
● stocker, analyser, exécuter des requêtes sur des grands volumes de
données et partager s...
Qu’est ce que BigQuery ?
6/35#bigquery @aurelievache
Pourquoi utiliser BigQuery ?
- SLA 99.9%
- Infrastructure de Google
- Pas de coût de serveurs, d'opération et de maintenan...
Pourquoi utiliser BigQuery ?
- Scalabilité
- Rapide
- “Pay only for what you use”
- Requêtes synchrones et asynchrones
- F...
Inconvénients/Limitations
- “ Append-only tables ”
- Latences réseau possibles
- Performant sur des énormes tables (Go, To...
● BigQuery => Analytics.
● Cloud Bigtable => NoSQL - stockage a grande échelle, update
possible.
Différence entre BigQuery...
Usages
11/35#bigquery @aurelievache
Quotas
Requêtes
● 20 000 req/jour
● 100 To données
100 000 lignes insérées
/sec / table
StreamingChargement
● 1 000 jobs /...
Coûts
Gratuit : Chargement des données + Export des données + tables lues + copies de tables +
données dans le cache.
Requ...
Architecture technique
1. BDD orientée colonne
14/35#bigquery @aurelievache
Architecture technique
2. Architecture en arbre
15/35#bigquery @aurelievache
Composants
Project (billing, top-level container)
Dataset (organization, access control)
Job (query, import, export, copy)...
Composants > Table
Ex de schéma :
date:TIMESTAMP,cid:INTEGER,cl,toto,titi,uid:INTEGER
Type de données possible : string, i...
Comment charger vos données ?
18/35#bigquery @aurelievache
Comment charger vos données ?
19/35#bigquery @aurelievache
L’API REST
20/35#bigquery @aurelievache
Exemple en JAVA
// insert data
List<TableDataInsertAllRequest.Rows> rowList = new
ArrayList<TableDataInsertAllRequest.Rows...
Connecteurs
22/35#bigquery @aurelievache
Fonctions intéressantes :
- TOP
- TABLE_DATE_RANGE
- REGEXP_MATCH / REGEXP_REPLACE / REGEXP_EXTRACT
BigQuery SQL
Variante ...
Demo Time !
24/35#bigquery @aurelievache
Visualisation et BI ETL
Third-party tools
Connecteurs
25/35#bigquery @aurelievache
Performances
26/35#bigquery @aurelievache
Ils utilisent BigQuery
27/35#bigquery @aurelievache
État des lieux - Cluster Hadoop
- 12 serveurs sous Cloudera Manager v4.6 et CDH 4.3.0
- Facturation de l'électricité pour ...
- Coût hardware : 0 €
- Coût opé : 0 €
Passage à Google BigQuery
29/35#bigquery @aurelievache
Utilisation
30/35#bigquery @aurelievache
- Bien structurer ses données
- Split by date
- Utiliser le query cache
- Définir une date d’expiration lors de la créatio...
- Attention aux jointures
- Possibilité de partager un dataset/des rows à des collaborateurs
- Format date : UTC !
- Ne pa...
- SLA : https://cloud.google.com/bigquery/sla
- Quotas : https://cloud.google.com/bigquery/quota-policy
- Prix : https://c...
Pour aller plus loin ...
34/35#bigquery @aurelievache
SELECT questions FROM meetup:TDS.bigquery
35/35#bigquery @aurelievache
 Dans les coulisses de Google BigQuery
Prochain SlideShare
Chargement dans…5
×

Dans les coulisses de Google BigQuery

551 vues

Publié le

Présentation effectuée le 25 Novembre 2015 au Toulouse Data Science.
Les ingénieurs de Google avaient du mal à suivre le rythme de croissance de leurs données. Le nombre d’utilisateurs de Gmail augmentait constamment et était de l’ordre de centaines de millions; Il y avait plus de 100 milliards de recherches Google effectuées chaque mois.
Essayer de donner un sens à toutes ces données prenait un temps fou et était une expérience très frustrante pour les équipes de Google.
Ce problème de données a conduit l’élaboration en 2008 d’un outil interne appelé Dremel, qui a permis aux employés de Google d’exécuter des requêtes SQL extrêmement rapides sur un grand ensemble de données.
En 2012 lors de la Google I/O, Google à annoncé la sortie de Google BigQuery, l'implémentation externe de Dremel...

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Dans les coulisses de Google BigQuery

  1. 1. 2/35 Qui suis-je ? Aurélie Vaché Développeuse Full Stack chez @aurelievache #bigquery @aurelievache
  2. 2. “Big Data” != “Hadoop” 3/35#bigquery @aurelievache
  3. 3. GFS MapReduce BigTable 2004 2008 2012 Dremel Colossus BigQuery Google et la révolution Big Data 2002 2006 2010 2015 DatalabBeta 4/35#bigquery @aurelievache
  4. 4. ● AaaS (Analytics as a Service) ● stocker, analyser, exécuter des requêtes sur des grands volumes de données et partager ses données structurées Qu’est ce que BigQuery ? 5/35#bigquery @aurelievache
  5. 5. Qu’est ce que BigQuery ? 6/35#bigquery @aurelievache
  6. 6. Pourquoi utiliser BigQuery ? - SLA 99.9% - Infrastructure de Google - Pas de coût de serveurs, d'opération et de maintenance - Moins complexe écosystème Hadoop - BigQuery SQL 8/35#bigquery @aurelievache
  7. 7. Pourquoi utiliser BigQuery ? - Scalabilité - Rapide - “Pay only for what you use” - Requêtes synchrones et asynchrones - Facilité d’interconnexion avec outils tiers 9/35#bigquery @aurelievache
  8. 8. Inconvénients/Limitations - “ Append-only tables ” - Latences réseau possibles - Performant sur des énormes tables (Go, To, Po), moins sur des petites tables - Les données doivent être structurées 10/35#bigquery @aurelievache
  9. 9. ● BigQuery => Analytics. ● Cloud Bigtable => NoSQL - stockage a grande échelle, update possible. Différence entre BigQuery et Bigtable ? 7/35#bigquery @aurelievache
  10. 10. Usages 11/35#bigquery @aurelievache
  11. 11. Quotas Requêtes ● 20 000 req/jour ● 100 To données 100 000 lignes insérées /sec / table StreamingChargement ● 1 000 jobs /table / jour ● 10 000 jobs /projet /jour ● ... 12/35#bigquery @aurelievache
  12. 12. Coûts Gratuit : Chargement des données + Export des données + tables lues + copies de tables + données dans le cache. Requêtes 5$ par To de requêtes 0,01$ pour 200 Mo Stockage Insertion 0,020$/Go/mois 13/35#bigquery @aurelievache
  13. 13. Architecture technique 1. BDD orientée colonne 14/35#bigquery @aurelievache
  14. 14. Architecture technique 2. Architecture en arbre 15/35#bigquery @aurelievache
  15. 15. Composants Project (billing, top-level container) Dataset (organization, access control) Job (query, import, export, copy) Table (data with schema) <project>:<dataset>.<table_name> 16/35#bigquery @aurelievache
  16. 16. Composants > Table Ex de schéma : date:TIMESTAMP,cid:INTEGER,cl,toto,titi,uid:INTEGER Type de données possible : string, integer, float, boolean, timestamp et record (nested / repeatable). 17/35#bigquery @aurelievache
  17. 17. Comment charger vos données ? 18/35#bigquery @aurelievache
  18. 18. Comment charger vos données ? 19/35#bigquery @aurelievache
  19. 19. L’API REST 20/35#bigquery @aurelievache
  20. 20. Exemple en JAVA // insert data List<TableDataInsertAllRequest.Rows> rowList = new ArrayList<TableDataInsertAllRequest.Rows>(); rowList.add(new TableDataInsertAllRequest.Rows() .setInsertId(""+System.currentTimeMillis()) .setJson(new TableRow().set("adt", null))); TableDataInsertAllRequest content = new TableDataInsertAllRequest().setRows(rowList); TableDataInsertAllResponse response = bigquery.tabledata().insertAll( PROJECT_NUMBER, DATASET_ID, TABLE_ID, content).execute(); System.out.println("kind="+response.getKind()); System.out.println("errors="+response.getInsertErrors()); System.out.println(response.toPrettyString()); 21/35#bigquery @aurelievache
  21. 21. Connecteurs 22/35#bigquery @aurelievache
  22. 22. Fonctions intéressantes : - TOP - TABLE_DATE_RANGE - REGEXP_MATCH / REGEXP_REPLACE / REGEXP_EXTRACT BigQuery SQL Variante de l’instruction SELECT SQL standard … FROM (TABLE_DATE_RANGE(TDS.meetup_, TIMESTAMP('2015-11-01'), TIMESTAMP('2015-11-30'))) 23/35#bigquery @aurelievache
  23. 23. Demo Time ! 24/35#bigquery @aurelievache
  24. 24. Visualisation et BI ETL Third-party tools Connecteurs 25/35#bigquery @aurelievache
  25. 25. Performances 26/35#bigquery @aurelievache
  26. 26. Ils utilisent BigQuery 27/35#bigquery @aurelievache
  27. 27. État des lieux - Cluster Hadoop - 12 serveurs sous Cloudera Manager v4.6 et CDH 4.3.0 - Facturation de l'électricité pour une dizaine de serveurs : environ 2 000 kilowatt heure / semaine : soit une centaine d'euros par mois - Coût hardware - Coût opérationnel - Évènement : Changement et réduction d’équipe 28/35#bigquery @aurelievache
  28. 28. - Coût hardware : 0 € - Coût opé : 0 € Passage à Google BigQuery 29/35#bigquery @aurelievache
  29. 29. Utilisation 30/35#bigquery @aurelievache
  30. 30. - Bien structurer ses données - Split by date - Utiliser le query cache - Définir une date d’expiration lors de la création de la table Astuces/Tips 31/35#bigquery @aurelievache
  31. 31. - Attention aux jointures - Possibilité de partager un dataset/des rows à des collaborateurs - Format date : UTC ! - Ne pas utiliser l'instruction SELECT * FROM - UDF (User-Defined Functions) Astuces/Tips 32/35#bigquery @aurelievache
  32. 32. - SLA : https://cloud.google.com/bigquery/sla - Quotas : https://cloud.google.com/bigquery/quota-policy - Prix : https://cloud.google.com/bigquery/#pricing - Pricing calculator : https://cloud.google.com/products/calculator/ - SQL : https://cloud.google.com/bigquery/query-reference - Tuto : Real-time data analysis with Kubernetes, Cloud Pub/Sub, and BigQuery Liens 33/35#bigquery @aurelievache
  33. 33. Pour aller plus loin ... 34/35#bigquery @aurelievache
  34. 34. SELECT questions FROM meetup:TDS.bigquery 35/35#bigquery @aurelievache

×