BigQuery'de Wikipedia veri kümesini sorgulama

1. Genel Bakış

BigQuery; Google'ın tümüyle yönetilen, NoOps özellikli, düşük maliyetli analitik veritabanıdır. BigQuery ile terabaytlarca veriyi herhangi bir altyapıyı yönetmenize gerek kalmadan sorgulayabilirsiniz ve veritabanı yöneticisine ihtiyaç duymazsınız. Bilindik SQL kullanan BigQuery, kullandıkça öde modelinin avantajlarından yararlanabilir. BigQuery, anlamlı bulgulara ulaşabilmeniz için veri analizine odaklanmanıza olanak tanır.

Bu codelab'de, BigQuery'yi kullanarak Wikipedia veri kümesini keşfedeceksiniz.

Neler öğreneceksiniz?

  • BigQuery'yi kullanma
  • BigQuery'ye gerçek dünyadan bir veri kümesi yükleme
  • Büyük bir veri kümesi hakkında bilgi edinmek için sorgu yazma

Gerekenler

Anket

Bu eğiticiden nasıl yararlanacaksınız?

Salt okunur Okuyun ve alıştırmaları tamamlayın

Google Cloud deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

2. Kurulum ve şartlar

BigQuery'yi etkinleştirme

Google Hesabınız yoksa bir hesap oluşturmanız gerekir.

  1. Google Cloud Console'da oturum açın ve BigQuery'ye gidin. BigQuery web kullanıcı arayüzünü, aşağıdaki URL'yi tarayıcınıza girerek de doğrudan açabilirsiniz.
https://console.cloud.google.com/bigquery
  1. Hizmet Şartları'nı kabul edin.
  2. BigQuery'yi kullanabilmek için önce bir proje oluşturmanız gerekir. Yeni projenizi oluşturmak için talimatları uygulayın.

Bir proje adı seçin ve proje kimliğini not edin. 1884405a64ce5765.png.

Proje kimliği, tüm Google Cloud projelerindeki benzersiz bir addır. Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID olarak adlandırılacaktır.

Bu codelab'de, BigQuery korumalı alanı sınırları dahilindeki BigQuery kaynakları kullanılır. Faturalandırma hesabı gerekmez. Daha sonra korumalı alan sınırlarını kaldırmak isterseniz Google Cloud ücretsiz deneme sürümüne kaydolarak bir faturalandırma hesabı ekleyebilirsiniz.

Sonraki bölümde Wikipedia veri kümesini yükleyeceksiniz.

3. Veri kümesi oluşturma

İlk olarak projede yeni bir veri kümesi oluşturun. Veri kümesi birden fazla tablodan oluşur.

  1. Veri kümesi oluşturmak için kaynaklar bölmesinin altında proje adını ve ardından Veri kümesi oluştur'u tıklayın:

4a5983b4dc299705.png

  1. Veri Kümesi Kimliği olarak lab girin:

a592b5b9be20fdec.png

  1. Boş bir veri kümesi oluşturmak için Veri kümesi oluştur'u tıklayın.

4. bq komut satırı programıyla veri yükleme

Cloud Shell'i etkinleştirme

  1. Cloud Console'da, Cloud Shell'i etkinleştir 4292cbf4971c9786.png simgesini tıklayın.

bce75f34b2c53987.png

Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmında) gösterilir. Bu durumda Devam'ı tıklayın (bunu bir daha görmezsiniz). Tek seferlik ekran şöyle görünür:

70f315d7b402b476.png

Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.

fbe3a0674c982259.png

İhtiyaç duyduğunuz tüm geliştirme araçları bu sanal makinede yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki çalışmalarınızın tamamı olmasa bile büyük bir kısmı yalnızca bir tarayıcı veya Chromebook'unuzla yapılabilir.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını görürsünüz.

  1. Kimlik doğrulamanızın tamamlandığını onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud auth list

Komut çıkışı

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud komutunun projenizi bildiğini onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project

Komut çıkışı

[core]
project = <PROJECT_ID>

Doğru değilse aşağıdaki komutla ayarlayabilirsiniz:

gcloud config set project <PROJECT_ID>

Komut çıkışı

Updated property [core/project].

BigQuery'ye veri yükleme

Size kolaylık sağlamak amacıyla, Wikimedia sayfa görüntülemeleri veri kümesinden 10 Nisan 2019 tarihine ait bazı veriler gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz adresindeki Google Cloud Storage'da kullanıma sunulmuştur. Veri dosyası, GZip biçiminde sıkıştırılmış bir CSV dosyasıdır. Bu dosyayı bq komut satırı yardımcı programını kullanarak doğrudan yükleyebilirsiniz. Yükleme komutunun bir parçası olarak dosyanın şemasını da açıklarsınız.

bq load \
  --source_format CSV \
  --field_delimiter " " \
  --allow_jagged_rows \
  --quote "" \
  --max_bad_records 3 \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_140000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz \
  wiki,title,requests:integer,zero:integer

Sayfa görüntülemeleri dosyasını yüklemek için birkaç gelişmiş seçenek kullandınız:

  • Dosyanın CSV dosyası olarak ayrıştırılması gerektiğini belirtmek için --source_format CSV değerini ayarlayın. CSV varsayılan biçim olduğundan bu adım isteğe bağlıdır.
  • Alanları sınırlamak için tek bir boşluğun kullanıldığını belirtmek üzere --field_delimiter " " özelliğini ayarlayın.
  • --allow_jagged_rows öğesini, daha az sayıda sütuna sahip satırları içerecek ve CSV dosyası yüklenirken hataları yok sayacak şekilde ayarlayın.
  • Dizelerin tırnak içine alınmadığını belirtmek için --quote "" değerini ayarlayın.
  • --max_bad_records 3 öğesini, CSV dosyasını ayrıştırırken en fazla 3 hatayı yoksayacak şekilde ayarlayın.

bq komut satırı hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.

5. Veri Kümesini Önizleme

BigQuery konsolunda, yeni yüklediğiniz tablolardan birini açın.

  1. Projeyi genişletmek.
  2. Veri kümesini genişletin.
  3. Tabloyu seçin. 99f875c838ed9a58.png.

Tablo şemasını Şema sekmesinde görebilirsiniz. 4. Tabloda ne kadar veri olduğunu öğrenmek için Ayrıntılar sekmesine gidin:

742cd54fbf17085.png

  1. Tablodaki bazı satırları görmek için Önizleme sekmesini açın.

397a9c25480735cc.png

6. Sorgu oluşturma

  1. Yeni sorgu oluştur'u tıklayın:

cc28282a25c9746e.png

Sorgu düzenleyici açılır:

e881286d275ab4ec.png

  1. Şu sorguyu yazarak 10 Nisan 2019, saat 14:00 ile 15:00 arasında Wikimedia videolarının toplam sayısını bulun:
SELECT SUM(requests)
FROM `lab.pageviews_20190410_140000`
  1. Çalıştır'ı tıklayın:

9abb7c4039961f5b.png

Sonuç birkaç saniye içinde en altta listelenir ve ne kadar verinin işlendiğini de gösterir:

a119b65f2ca49e41.png

Bu sorgu, tablo 691,4 MB olmasına rağmen 123,9 MB işledi. BigQuery yalnızca sorguda kullanılan sütunlardaki baytları işler. Bu nedenle, işlenen toplam veri miktarı tablo boyutundan önemli ölçüde daha az olabilir. Kümeleme ve bölümlendirme sayesinde, işlenen veri miktarı daha da azalabilir.

7. Daha gelişmiş sorgular

Wikipedia sayfa görüntülemelerini bulma

Wikimedia veri kümesi tüm Wikimedia projelerine (Wikipedia, Wiktionary, Wikibooks ve Wikiquotes dahil) ilişkin sayfa görüntülemelerini içerir. WHERE ifadesi ekleyerek sorguyu yalnızca İngilizce Wikipedia sayfalarını içerecek şekilde daraltın:

SELECT SUM(requests), wiki
FROM `lab.pageviews_20190410_140000`
WHERE wiki = "en"
GROUP BY wiki

d6c6c7901c314da7.png

wiki adlı ek sütunu sorguladığınızda işlenen veri miktarının 124 MB'tan 204 MB'a çıktığına dikkat edin.

BigQuery; CONTAINS, GROUP BY, ORDER BY gibi bilinen SQL deyimlerinin yanı sıra çok sayıda toplama işlevini destekler. Bunun yanı sıra, metin alanlarını sorgulamak için normal ifadeleri de kullanabilirsiniz. Birini deneyin:

SELECT title, SUM(requests) requests
FROM `lab.pageviews_20190410_140000`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

Birden çok tabloda sorgulama

Joker karakter tablosu kullanarak birleşimi oluşturmak için bir tablo aralığı seçebilirsiniz.

  1. Öncelikle, sonraki bir saatin sayfa görüntülemelerini yeni bir tabloya yükleyerek üzerinde sorgulama yapılacak ikinci bir tablo oluşturun:
bq load \
  --source_format CSV \
  --field_delimiter " " \
  --quote "" \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_150000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-150000.gz \
  wiki,title,requests:integer,zero:integer
  1. Sorgu düzenleyici'de, tabloları "pageviews_2019" ile sorgulayarak yüklediğiniz her iki tabloyu da sorgulayın. kullanabilirsiniz:
SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

_TABLE_SUFFIX sözde sütunuyla tabloları daha seçici bir şekilde filtreleyebilirsiniz. Bu sorgu, 10 Nisan'a karşılık gelen tablolarla sınırlıdır.

SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  _TABLE_SUFFIX BETWEEN '0410' AND '0410_9999999'
  AND wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

8. Temizleme

Dilerseniz bq rm komutuyla oluşturduğunuz veri kümesini silebilirsiniz. İçerdiği tüm tabloları kaldırmak için -r işaretini kullanın.

bq rm -r lab

9. Tebrikler!

BigQuery ve SQL kullanarak gerçek Wikipedia sayfa görüntülemeleri veri kümesini sorguladınız. Petabayt ölçeğindeki veri kümelerini sorgulayabilirsiniz.

Daha fazla bilgi