Dans les coulisses de Google BigQuery
“Fully managed data warehouse”
2/34
Qui suis-je ?
Aurélie Vache
Lead Developer chez
@aurelievache
#BigQuery #DevFestToulouse @aurelievache
“Big Data” != “Hadoop”
3/34#BigQuery #DevFestToulouse @aurelievache
GFS
MapReduce
Dremel
2004 2010 2015
BigQueryBeta
BigQuery
Dremel X
Google et la révolution Big Data
2002 2006 2012 2016
Ca...
● 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/34#BigQuery #DevFestToulouse @aurelievache
Pourquoi utiliser BigQuery ?
- Hautement disponible. SLA 99.9%
- Infrastructure de Google
- Pas de coût de serveurs, d'opé...
Pourquoi utiliser BigQuery ?
- Scalabilité
- Rapide
- “Pay only for what you use”
- Données encryptées
- Facilité d’interc...
BigQuery: 5 ans d'innovation transparente
9/34#BigQuery #DevFestToulouse @aurelievache
2010 2011 2012 2013 2014
Public lau...
Inconvénients/Limitations
- “ Append-only tables ” *
- Performant sur des énormes tables (Go, To, Po),
moins sur des petit...
Usages
11/34#BigQuery #DevFestToulouse @aurelievache
Quotas
Requêtes
● 1000 tables /query
● query size limit:
unlimited
● 100 000 lignes insérées
/sec / table *
● 1 000 000 li...
Coûts
Gratuit : Chargement des données + Export des données + tables lues + copies de tables +
données dans le cache.
Requ...
Moteur de stockage : ColumnIO (2006-2015)
14/34#BigQuery #DevFestToulouse @aurelievache
SELECT play_count FROM songs WHERE...
Moteur de stockage : Capacitor (2016-now)
15/34#BigQuery #DevFestToulouse @aurelievache
SELECT play_count FROM songs WHERE...
Dremel == BigQuery
16/34#BigQuery #DevFestToulouse @aurelievache
● Long-lived Serving Tree
Distributed Storage
Leaf Leaf L...
Dremel X == BigQuery
17/34#BigQuery #DevFestToulouse @aurelievache
Architecture de Dremel X : 2015 - maintenant
Master
Dis...
Composants
Project (billing, top-level container)
Dataset (organization, access control)
Job (query, import, export, copy)...
Comment charger vos données ?
19/34#BigQuery #DevFestToulouse @aurelievache
CSV
JSON
Avro
Google Sheets
Comment charger vos données ?
20/34#BigQuery #DevFestToulouse @aurelievache
JSON
Avro
L’API REST
21/34#BigQuery #DevFestToulouse @aurelievache
Exemple en JAVA
// insert data
List<TableDataInsertAllRequest.Rows> rowList = new
ArrayList<TableDataInsertAllRequest.Rows...
Fonctions intéressantes :
- TOP
- TABLE_DATE_RANGE
- REGEXP_MATCH / REGEXP_REPLACE / REGEXP_EXTRACT
BigQuery SQL
Variante ...
Demo Time !
24/34#BigQuery #DevFestToulouse @aurelievache
Mais attention :
- Activer Standard SQL
- Quotas
- /! UPDATE tables partitionnées NOK
https://cloud.google.com/bigquery/sq...
Visualisation et BI ETL
Third-party tools
Connecteurs
26/34#BigQuery #DevFestToulouse @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
28/34#BigQuery #DevFestToulouse @aurelievache
Utilisation
29/34#BigQuery #DevFestToulouse @aurelievache
=> 6.2 milliards msg/an
- Bien structurer ses données
- Table sharding (old way)
- Table partitioning (new way)
- Utiliser le query cache
- Défini...
- Attention aux jointures
- Possibilité de partager un dataset/des rows à des collaborateurs
- Format date : UTC !
- Ne pa...
- Google presentation : https://www.youtube.com/watch?v=eyBK9nj-7AA
- SLA : https://cloud.google.com/bigquery/sla
- Pricin...
Pour aller plus loin ...
33/34#BigQuery #DevFestToulouse @aurelievache
SELECT
questions
FROM
DevFest:Toulouse.bigquery
34/34#BigQuery #DevFestToulouse @aurelievache
#BigQuery #DevFestToulouse @aurelievache
Bonus Track
Performances
#BigQuery #DevFestToulouse @aurelievache +1
Ils utilisent BigQuery
+2#BigQuery #DevFestToulouse @aurelievache
Prochain SlideShare
Chargement dans…5
×

Dans les coulisses de Google BigQuery - DevFest Toulouse 2016

474 vues

Publié le

Google BigQuery est la solution "Analytics As a Service" de Google.
Lorsque l’on pense à des technologies liées à la Big Data, on pense de suite à l’éco-système Hadoop, ou bien à Elasticsearch ou bien ces temps-ci beaucoup à Spark, mais il y a un « petit service » de Google qui ne fait pas beaucoup parler de lui mais qui peut tirer son épingle du jeu dans différents cas de figure.
Présentation donnée lors du DevFest Toulouse 2016 (https://devfesttoulouse.fr/).

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
474
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Dans les coulisses de Google BigQuery - DevFest Toulouse 2016

  1. 1. Dans les coulisses de Google BigQuery “Fully managed data warehouse”
  2. 2. 2/34 Qui suis-je ? Aurélie Vache Lead Developer chez @aurelievache #BigQuery #DevFestToulouse @aurelievache
  3. 3. “Big Data” != “Hadoop” 3/34#BigQuery #DevFestToulouse @aurelievache
  4. 4. GFS MapReduce Dremel 2004 2010 2015 BigQueryBeta BigQuery Dremel X Google et la révolution Big Data 2002 2006 2012 2016 Capacitor 4/34#BigQuery #DevFestToulouse @aurelievache
  5. 5. ● 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/34#BigQuery #DevFestToulouse @aurelievache SQL QueryPetabit Network BigQuery Storage Compute Streaming Ingest Fast Batch Load
  6. 6. Qu’est ce que BigQuery ? 6/34#BigQuery #DevFestToulouse @aurelievache
  7. 7. Pourquoi utiliser BigQuery ? - Hautement disponible. SLA 99.9% - Infrastructure de Google - Pas de coût de serveurs, d'opération et de maintenance - Moins complexe écosystème Hadoop - BigQuery + Standard SQL 7/34#BigQuery #DevFestToulouse @aurelievache
  8. 8. Pourquoi utiliser BigQuery ? - Scalabilité - Rapide - “Pay only for what you use” - Données encryptées - Facilité d’interconnexion avec outils tiers 8/34#BigQuery #DevFestToulouse @aurelievache
  9. 9. BigQuery: 5 ans d'innovation transparente 9/34#BigQuery #DevFestToulouse @aurelievache 2010 2011 2012 2013 2014 Public launch Large query results 2015 2016 900 300 0 1,200 Beta Release at Google I/O Dremel X Big JOIN support Dynamic Execution Capacitor Faster shuffle 100k qps streaming User-defined functions Code Submits
  10. 10. Inconvénients/Limitations - “ Append-only tables ” * - Performant sur des énormes tables (Go, To, Po), moins sur des petites tables - Les données doivent être structurées 10/34#BigQuery #DevFestToulouse @aurelievache * BigQuery DML
  11. 11. Usages 11/34#BigQuery #DevFestToulouse @aurelievache
  12. 12. Quotas Requêtes ● 1000 tables /query ● query size limit: unlimited ● 100 000 lignes insérées /sec / table * ● 1 000 000 lignes /sec /projet StreamingChargement ● 1 000 jobs /table / jour ● 10 000 colonnes /table ● ... 12/34#BigQuery #DevFestToulouse @aurelievache https://cloud.google.com/bigquery/quota-policy
  13. 13. 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,05$/Go Stockage Insertion ● 0,02$/Go/mois ● 0,01$/Go/mois long term storage 13/34#BigQuery #DevFestToulouse @aurelievache https://cloud.google.com/bigquery/#pricing
  14. 14. Moteur de stockage : ColumnIO (2006-2015) 14/34#BigQuery #DevFestToulouse @aurelievache SELECT play_count FROM songs WHERE name = “Here Comes The Sun”; Decompress Filter xc*@6j c8!af 8ec2(*& 7h!%d2A a7c%a1 c-%1G! F$#h5 rm7y5 a%6%# H#$$i 4t#@h @#Ds {5375, Hey Jude} {2188, I Want to Hold Your Hand} {9363, While My Guitar Gently Weeps} {9502, My Michelle} {7383, Here Comes The Sun} {3912, Strawberry Fields Forever} Here Comes The Sun
  15. 15. Moteur de stockage : Capacitor (2016-now) 15/34#BigQuery #DevFestToulouse @aurelievache SELECT play_count FROM songs WHERE name = “Here Comes The Sun”; Filter CompressDecompress {7833} xc*@6j c8!af 8ec2(*& 7h!%d2A a7c%a1 c-%1G! F$#h5 rm7y5 a%6%# H#$$i 4t#@h @#Ds 4t#@h Here Comes The Sun
  16. 16. Dremel == BigQuery 16/34#BigQuery #DevFestToulouse @aurelievache ● Long-lived Serving Tree Distributed Storage Leaf Leaf LeafLeaf Mixer 1Mixer 1 ● Partial Reduction ● Columnar Storage ● Diskless data flow Mixer 0 Architecture de Dremel : 2006 - 2015
  17. 17. Dremel X == BigQuery 17/34#BigQuery #DevFestToulouse @aurelievache Architecture de Dremel X : 2015 - maintenant Master Distributed Storage Shard Shard ShardShard ● Columnar Storage ● Dynamic Serving Tree Shard Shard Shard Shard Shard Shard Shard Shard
  18. 18. Composants Project (billing, top-level container) Dataset (organization, access control) Job (query, import, export, copy) Table (data with schema) <project>:<dataset>.<table_name> 18/34#BigQuery #DevFestToulouse @aurelievache
  19. 19. Comment charger vos données ? 19/34#BigQuery #DevFestToulouse @aurelievache CSV JSON Avro Google Sheets
  20. 20. Comment charger vos données ? 20/34#BigQuery #DevFestToulouse @aurelievache JSON Avro
  21. 21. L’API REST 21/34#BigQuery #DevFestToulouse @aurelievache
  22. 22. 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()); 22/34#BigQuery #DevFestToulouse @aurelievache
  23. 23. 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(DevFest.toulouse_, TIMESTAMP('2016-11-02'), TIMESTAMP('2016-11-03'))) 23/34#BigQuery #DevFestToulouse @aurelievache
  24. 24. Demo Time ! 24/34#BigQuery #DevFestToulouse @aurelievache
  25. 25. Mais attention : - Activer Standard SQL - Quotas - /! UPDATE tables partitionnées NOK https://cloud.google.com/bigquery/sql-reference/data-manipulation-language Data Manipulation Language INSERT, UPDATE et DELETE dans BigQuery !!! QueryResponse query = bigquery.jobs().query( this.projectId, new QueryRequest() .setTimeoutMs(timeout) .setQuery(query) .setUseLegacySql(useLegacySql)) .execute(); 25/34#BigQuery #DevFestToulouse @aurelievache
  26. 26. Visualisation et BI ETL Third-party tools Connecteurs 26/34#BigQuery #DevFestToulouse @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 27/34#BigQuery #DevFestToulouse @aurelievache
  28. 28. - Coût hardware : 0 € - Coût opé : 0 € Passage à Google BigQuery 28/34#BigQuery #DevFestToulouse @aurelievache
  29. 29. Utilisation 29/34#BigQuery #DevFestToulouse @aurelievache => 6.2 milliards msg/an
  30. 30. - Bien structurer ses données - Table sharding (old way) - Table partitioning (new way) - Utiliser le query cache - Définir une date d’expiration lors de la création de la table Astuces/Tips 30/34#BigQuery #DevFestToulouse @aurelievache 20160101 20160102 20160131 sales
  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 31/34#BigQuery #DevFestToulouse @aurelievache
  32. 32. - Google presentation : https://www.youtube.com/watch?v=eyBK9nj-7AA - SLA : https://cloud.google.com/bigquery/sla - Pricing calculator : https://cloud.google.com/products/calculator/ - SQL : https://cloud.google.com/bigquery/query-reference - Table partitioning : https://cloud.google.com/bigquery/docs/partitioned-tables - Tuto : Real-time data analysis with Kubernetes, Cloud Pub/Sub, and BigQuery - Moving tables from Redshift to BigQuery : https://github.com/iconara/bigshift Liens 32/34#BigQuery #DevFestToulouse @aurelievache
  33. 33. Pour aller plus loin ... 33/34#BigQuery #DevFestToulouse @aurelievache
  34. 34. SELECT questions FROM DevFest:Toulouse.bigquery 34/34#BigQuery #DevFestToulouse @aurelievache
  35. 35. #BigQuery #DevFestToulouse @aurelievache Bonus Track
  36. 36. Performances #BigQuery #DevFestToulouse @aurelievache +1
  37. 37. Ils utilisent BigQuery +2#BigQuery #DevFestToulouse @aurelievache

×