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/).
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. Qu’est ce que BigQuery ?
6/34#BigQuery #DevFestToulouse @aurelievache
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. 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. 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. 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
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. 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. 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
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. Visualisation et BI ETL
Third-party tools
Connecteurs
26/34#BigQuery #DevFestToulouse @aurelievache
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. - Coût hardware : 0 €
- Coût opé : 0 €
Passage à Google BigQuery
28/34#BigQuery #DevFestToulouse @aurelievache
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. - 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. - 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. Pour aller plus loin ...
33/34#BigQuery #DevFestToulouse @aurelievache