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 ya da bir veritabanı yöneticisine ihtiyaç duymadan sorgulayabilirsiniz. BigQuery, bildiğiniz SQL'i kullanır ve 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
- Gerçek dünyadan bir veri kümesini BigQuery'ye yükleme
- Büyük bir veri kümesi hakkında bilgi edinmek için sorgu yazma
İhtiyacınız olanlar
- Google Cloud projesi
- Google Chrome veya Firefox gibi bir tarayıcı
Anket
Bu eğitimi nasıl kullanacaksınız?
Google Cloud ile ilgili deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve şartlar
BigQuery'yi etkinleştirme
Google Hesabınız yoksa hesap oluşturmanız gerekir.
- Google Cloud Console'da oturum açın ve BigQuery'ye gidin. Ayrıca, tarayıcınıza aşağıdaki URL'yi girerek BigQuery web kullanıcı arayüzünü doğrudan açabilirsiniz.
https://console.cloud.google.com/bigquery
- Hizmet şartlarını kabul edin.
- BigQuery'yi kullanabilmek için 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. 
Proje kimliği, tüm Google Cloud projelerinde benzersiz bir addır. Bu codelab'in ilerleyen kısımlarında 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 denemesine kaydolarak bir faturalandırma hesabı ekleyebilirsiniz.
Wikipedia veri kümesini bir sonraki bölümde yükleyeceksiniz.
3. Veri kümesi oluşturma
Öncelikle projede yeni bir veri kümesi oluşturun. Veri kümesi birden fazla tablodan oluşur.
- Veri kümesi oluşturmak için kaynaklar bölmesinde proje adını, ardından Veri kümesi oluştur'u tıklayın:

- Veri kümesi kimliği olarak
labdeğerini girin:

- 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
- Cloud Console'da Cloud Shell'i etkinleştir 'i
tıklayın.

Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmı) gösterilir. Bu durumda Devam'ı tıkladığınızda bu ekranı bir daha görmezsiniz. Bu tek seferlik ekran aşağıdaki gibi görünür:

Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.

Bu sanal makine, ihtiyaç duyduğunuz tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki çalışmalarınızın neredeyse tamamını yalnızca bir tarayıcı veya Chromebook'unuzla yapabilirsiniz.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, proje kimliğinize ayarlandığını görürsünüz.
- Kimliğinizin doğrulandığını onaylamak için Cloud Shell'de şu 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`
- gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Değilse şu komutla ayarlayabilirsiniz:
gcloud config set project <PROJECT_ID>
Komut çıkışı
Updated property [core/project].
BigQuery'ye veri yükleme
Kolaylık sağlamak amacıyla, 10 Nisan 2019'a ait bazı veriler Wikimedia sayfa görüntüleme veri kümesinden alınarak gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz adresindeki Google Cloud Storage'da kullanıma sunulmuştur. Veri dosyası, GZip'li 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üleme 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 CSVolarak 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şluk kullanıldığını belirtmek üzere
--field_delimiter " "değerini ayarlayın. --allow_jagged_rowsseçeneğini, daha az sayıda sütun içeren satırları dahil edecek ve CSV dosyası yüklenirken hataları yoksayacak şekilde ayarlayın.- Dizelerin tırnak içine alınmadığını belirtmek için
--quote ""değerini ayarlayın. - CSV dosyası ayrıştırılırken en fazla 3 hatanın yoksayılması için
--max_bad_records 3değerini 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.
- Projeyi genişletin.
- Veri kümesini genişletin.
- Tabloyu seçin.

Tablo şemasını Şema sekmesinde görebilirsiniz. 4. Ayrıntılar sekmesine giderek tabloda ne kadar veri olduğunu öğrenin:

- Tablodaki satır seçimini görmek için Önizleme sekmesini açın.

6. Sorgu oluşturma
- Yeni sorgu oluştur'u tıklayın:

Bu işlemle Sorgu düzenleyici açılır:

- 10 Nisan 2019'da saat 14:00 ile 15:00 arasında Wikimedia'nın toplam görüntüleme sayısını bulmak için şu sorguyu yazın:
SELECT SUM(requests) FROM `lab.pageviews_20190410_140000`
- Çalıştır'ı tıklayın:

Birkaç saniye içinde sonuç en altta listelenir ve ne kadar veri işlendiği de belirtilir:

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 ile işlenen veri miktarı daha da azaltılabilir.
7. Daha gelişmiş sorgular
Wikipedia sayfa görüntülemelerini bulma
Wikimedia veri kümesi, tüm Wikimedia projelerinin (Wikipedia, Vikisözlük, Vikikitap ve Vikialıntı dahil) sayfa görüntülemelerini içerir. WHERE ifadesini ekleyerek sorguyu yalnızca İngilizce Vikipedi sayfalarıyla sınırlayın:
SELECT SUM(requests), wiki FROM `lab.pageviews_20190410_140000` WHERE wiki = "en" GROUP BY wiki

Ek bir sütun wiki sorgulandığında işlenen veri miktarının 124 MB'tan 204 MB'a çıktığını unutmayın.
BigQuery, CONTAINS, GROUP BY, ORDER BY gibi birçok bilinen SQL ifadesini ve çeşitli toplama işlevlerini destekler. Ayrıca, metin alanlarını sorgulamak için normal ifadeler 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 tabloyu sorgulama
Joker karakter tablosu kullanarak birleşim oluşturmak için bir tablo aralığı seçebilirsiniz.
- Öncelikle, bir sonraki saatin sayfa görüntülemelerini yeni bir tabloya yükleyerek sorgulanacak 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
- Sorgu düzenleyicisinde, "
pageviews_2019" önekini kullanarak tabloları sorgulayarak yüklediğiniz her iki tabloyu da sorgulayın:
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 sahte 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
İsteğe bağlı olarak, bq rm komutuyla oluşturduğunuz veri kümesini silebilirsiniz. İçerdiği tabloları kaldırmak için -r işaretini kullanın.
bq rm -r lab
9. Tebrikler!
Gerçek dünyadaki Wikipedia sayfa görüntüleme veri kümesini sorgulamak için BigQuery ve SQL'i kullandınız. Petabayt ölçeğindeki veri kümelerini sorgulayabilirsiniz.
Daha fazla bilgi
- Diğer kullanıcıların BigQuery'yi nasıl kullandığını öğrenmek için BigQuery subreddit'ine göz atın.
- BigQuery'de bulunan herkese açık veri kümelerini inceleyin.
- BigQuery'ye veri yüklemeyi öğrenin.