google-bigqueryAan de slag met Google-bigquery


Opmerkingen

Deze sectie biedt een overzicht van wat Google-bigquery is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen google-bigquery vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor Google-bigquery nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Analyseren van 50 miljard Wikipedia-paginaweergaven in 5 seconden (BigQuery-handleiding voor beginners)

Hallo iedereen! Dit is een demo die ik leuk vind om te rennen voor mensen die aan de slag gaan met BigQuery. Dus laten we enkele eenvoudige vragen uitvoeren om u op weg te helpen.

Opstelling

U heeft een Google Cloud-project nodig:

  1. Ga naar http://bigquery.cloud.google.com/ .
  2. Als u wordt gevraagd om een project te maken, volgt u de link om een project te maken en een project te maken.
  3. Kom terug naar http://bigquery.cloud.google.com/ .

Opmerkingen:

  • U heeft geen creditcard nodig. Iedereen krijgt elke maand een gratis 1 TB voor analyse.
  • BigQuery-kosten per zoekopdracht. Voordat u een query uitvoert, kunt u zien hoeveel elke query kost.

Laten we vragen

  1. Zoek de paginaweergaven voor mei 2015 op https://bigquery.cloud.google.com/table/fh-bigquery:wikipedia.pagecounts_201505

Opmerking : Google beschermt uw gegevens met de hoogste beveiligingsstandaarden (PCI, ISO, HIPAA, SOC, enz.), Maar het is ook gemakkelijk om gegevens te delen als u dat wilt - zoals ik hier deed. https://cloud.google.com/security/

  1. Deze tabel heeft 5 kolommen: datehour taal titel vraagt content_size aan . Ze zeggen eigenlijk "deze wikipedia-pagina in deze taal had op dit moment zoveel verzoeken".

  2. Deze tabel heeft bijna 6 miljard rijen (379 GB aan gegevens).

  3. Om erachter te komen hoeveel paginaweergaven Wikipedia in mei had, kunt u alle 6 miljard regels aanvragen optellen:

     SELECT SUM(requests) 
     FROM [fh-bigquery:wikipedia.pagecounts_201505]
     
  4. Heb je gemerkt hoe snel dat was? (1.8s verstreken, 43.1 GB verwerkt voor mij)

  5. Laten we iets complexers doen. Laten we een reguliere expressie uitvoeren over deze 6 miljard rijen. Hoe snel kan dit zijn?

     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. Hoe snel was het voor jou? Heb je Reddit in de resultaten gevonden?

Kostenanalyse

  1. Deze laatste zoekopdracht heeft 269 GB verwerkt: meer dan een kwart van de gratis maandelijkse terabyte. Waarom?

  2. BigQuery kijkt naar de kolommen die u in uw zoekopdracht verwerkt. 'titel' is een grote kolom - het bevat tekst. De kolom 'aanvragen' is slechts 43,1 GB.

  3. Extraheer gegevens naar kleinere tabellen om uw gratis terabyte duurzaam te maken. Ik heb bijvoorbeeld een tabel met alleen de top 65.000 Engelse paginaweergaven van Wikipedia-pagina's . Dezelfde query verwerkt slechts 1,18 GB - u kunt er bijna 1000 gratis per maand uitvoeren.

     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. U kunt geen tabellen maken met de gratis maandelijkse terabyte - het is alleen voor analyse. Activeer uw gratis $ 300 voor nieuwe Google Cloud Platform-accounts, of vraag me hier om een uittreksel voor u te doen. Ik zal dat graag doen.

Gegevens laden in BigQuery

Om gegevens in BigQuery te laden, moet u facturering voor uw project activeren - probeer het met uw gratis $ 300 voor nieuwe accounts.

  1. Maak een gegevensset in uw project om de gegevens te laden naar: https://i.imgur.com/FRClJ3K.jpg .

  2. Vind de onbewerkte logboeken gedeeld door Wikipedia op https://dumps.wikimedia.org/other/pagecounts-raw/

  3. zet een van deze bestanden op uw computer, zoals https://dumps.wikimedia.org/other/pagecounts-raw/2015/2015-06/pagecounts-20150616-160000.gz

  4. Installeer de 'bq' tool. https://cloud.google.com/bigquery/bq-command-line-tool

  5. Laad het in BigQuery:

     bq load -F" " --quote "" YourProjectName:DatasetName.pagecounts_20150616_16 pagecounts-20150616-160000.gz language,title,requests:integer,content_size:integer
     
  6. Wacht een paar minuten. Terwijl je wacht, laat me die regel uitleggen: dit is geen CSV-bestand, het is een door spaties gescheiden bestand (-F "") dat geen aanhalingstekens gebruikt (--quote ""), we kiezen een doeltabel in een gegevensset in uw project (vergeet niet om eerst de gegevensset te maken), hebben we het bestand gekozen dat moet worden geladen en definiëren we de 4 kolommen die dit bestand heeft.

  7. Merk op dat BigQuery graag .gz-bestanden met een bepaalde grootte opneemt. Voor zeer grote bestanden is het beter om ze uit te pakken en eerst in Google Cloud Storage te plaatsen. Dat is wat ik deed met de reddit-opmerkingen die / u / Stuck_In_The_Matrix compileerden. Die bestanden waren groot, maar BigQuery nam ze in ongeveer 2 minuten in beslag.

Kom meer te weten

Klaar voor meer geavanceerde voorbeelden? Bekijk hoe u Reddit opvraagt en hoe u alle NYC-taxiritten opvraagt .

Volg voor nog meer!

Installatie of instellingen

Gedetailleerde instructies voor het instellen of installeren van Google-bigquery.