Premiers pas avec google-bigquery

## Analyse de 50 milliards de pages vues sur Wikipédia en 5 secondes (tutoriel BigQuery pour débutants) Salut tout le monde! Il s’agit d’une démo que j’adore proposer aux personnes qui débutent avec BigQuery. Exécutons donc quelques requêtes simples pour vous démarrer.

Installer

Vous aurez besoin d’un projet Google Cloud :

  1. Accédez à http://bigquery.cloud.google.com/.
  2. S’il vous demande de créer un projet, suivez le lien pour créer un projet et créez un projet.
  3. Revenez sur http://bigquery.cloud.google.com/.

Remarques:

  • Vous n’avez pas besoin de carte de crédit. Tout le monde reçoit 1 To gratuit pour analyse chaque mois.
  • BigQuery facture par requête. Avant d’exécuter une requête, vous pourrez voir combien coûte chaque requête.

interrogeons

  1. Trouvez les pages vues pour mai 2015 sur https://bigquery.cloud.google.com/table/fh-bigquery:wikipedia.pagecounts_201505

Remarque : Google protège vos données avec les normes de sécurité les plus élevées (PCI, ISO, HIPAA, SOC, etc.), mais il est également facile de partager des données si vous le souhaitez - comme je l’ai fait ici. https://cloud.google.com/security/

  1. Ce tableau comporte 5 colonnes : dateheure langue titre demandes content_size. Ils disent essentiellement “cette page wikipedia dans cette langue a eu ces nombreuses demandes à cette heure”.

  2. Cette table compte près de 6 milliards de lignes (379 Go de données).

  3. Pour savoir combien de pages vues Wikipedia a eu en mai, vous pouvez additionner les 6 milliards de lignes de requêtes :

     SELECT SUM(requests) 
     FROM [fh-bigquery:wikipedia.pagecounts_201505]
    
  4. Avez-vous remarqué à quelle vitesse c’était ? (1,8 s écoulé, 43,1 Go traités pour moi)

  5. Faisons quelque chose de plus complexe. Exécutons une expression régulière sur ces 6 milliards de lignes. À quelle vitesse cela pourrait-il être?

     SELECT SUM(requests) req, title
     FROM [fh-bigquery:wikipedia.pagecounts_201505] 
     WHERE REGEXP_MATCH(title, 'Red.*t')
     GROUP BY title
     ORDER BY req DESC
     LIMIT 100     
    
  6. À quelle vitesse était-ce pour vous ? Avez-vous trouvé Reddit dans les résultats ?

Analyse de coût

  1. Cette dernière requête a traité 269 Go : plus d’un quart du téraoctet mensuel gratuit. Pourquoi?

  2. BigQuery examine les colonnes que vous traitez dans votre requête. ’title’ est une grande colonne - elle contient du texte. La colonne “demandes” ne fait que 43,1 Go.

  3. Pour faire durer votre téraoctet gratuit, extrayez les données dans des tables plus petites. Par exemple, j’ai un tableau avec seulement les 65 000 pages les plus consultées sur la page Wikipédia en anglais. La même requête ne traite que 1,18 Go - vous pouvez en exécuter près de 1 000 gratuitement par mois.

     SELECT SUM(requests) req, title
     FROM [fh-bigquery:wikipedia.pagecounts_201408_en_top65k] 
     WHERE REGEXP_MATCH(title, 'Red.*t')
     GROUP BY title
     ORDER BY req DESC
     LIMIT 100 
    
  4. Vous ne pouvez pas créer de tableaux avec le téraoctet mensuel gratuit - c’est uniquement à des fins d’analyse. Activez vos 300 $ gratuits pour les nouveaux comptes Google Cloud Platform, ou demandez-moi ici de faire un extrait pour vous. Je serai heureux de le faire.

Charger des données dans BigQuery

Pour charger des données dans BigQuery, vous devrez activer la facturation pour votre projet. Essayez-le avec vos 300 USD gratuits pour les nouveaux comptes.

  1. Créez un jeu de données dans votre projet pour charger les données sur : https://i.imgur.com/FRClJ3K.jpg.

  2. Trouvez les journaux bruts partagés par Wikipedia sur https://dumps.wikimedia.org/other/pagecounts-raw/

  3. wget un de ces fichiers dans votre ordinateur, comme https://dumps.wikimedia.org/other/pagecounts-raw/2015/2015-06/pagecounts-20150616-160000.gz

  4. Installez l’outil ‘bq’. https://cloud.google.com/bigquery/bq-command-line-tool

  5. Chargez-le dans BigQuery :

     bq load -F" " --quote "" YourProjectName:DatasetName.pagecounts_20150616_16 pagecounts-20150616-160000.gz language,title,requests:integer,content_size:integer
    
  6. Attendez quelques minutes. Pendant que vous attendez, laissez-moi vous expliquer cette ligne : Ceci n’est pas un fichier CSV, c’est un fichier séparé par des espaces (-F" “) qui n’utilise pas de guillemets (–quote “”), nous choisissons une table de destination dans un ensemble de données dans votre projet (n’oubliez pas de créer d’abord le jeu de données), nous choisissons le fichier à charger, et nous définissons les 4 colonnes de ce fichier.

  7. Notez que BigQuery ingère volontiers les fichiers .gz, jusqu’à une certaine taille. Pour les fichiers très volumineux, il est préférable de les décompresser et de les placer d’abord dans Google Cloud Storage. C’est ce que j’ai fait avec les commentaires reddit compilés par /u/Stuck_In_The_Matrix. Ces fichiers étaient volumineux, mais BigQuery les a ingérés en 2 minutes environ.

Apprendre encore plus

Prêt pour des exemples plus avancés ? Voir comment interroger Reddit et [comment interroger tous les trajets en taxi de NYC](https://www.reddit. com/r/bigquery/comments/28ialf/173_million_2013_nyc_taxi_rides_shared_on_bigquery/).

Suivez pour encore plus!

  • Abonnez-vous à /r/bigquery (et consultez la barre latérale pour plus de liens).
  • Suivez-moi sur https://twitter.com/felipehoffa

Installation ou configuration

Instructions détaillées sur la configuration ou l’installation de google-bigquery.