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
- Bir Google Cloud projesi
- Google Chrome veya Firefox gibi bir tarayıcı
Anket
Bu eğiticiden nasıl yararlanacaksınız?
Google Cloud deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve şartlar
BigQuery'yi etkinleştirme
Google Hesabınız yoksa bir hesap oluşturmanız gerekir.
- 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
- Hizmet Şartları'nı kabul edin.
- 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. .
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.
- 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:
- Veri Kümesi Kimliği olarak
lab
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 simgesini 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ında) gösterilir. Bu durumda Devam'ı tıklayın (bunu bir daha görmezsiniz). Tek seferlik ekran şöyle görünür:
Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.
İ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.
- 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`
- 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.
- Projeyi genişletmek.
- Veri kümesini genişletin.
- Tabloyu seçin. .
Tablo şemasını Şema sekmesinde görebilirsiniz. 4. Tabloda ne kadar veri olduğunu öğrenmek için Ayrıntılar sekmesine gidin:
- Tablodaki bazı satırları görmek için Önizleme sekmesini açın.
6. Sorgu oluşturma
- Yeni sorgu oluştur'u tıklayın:
Sorgu düzenleyici açılır:
- Ş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`
- Çalıştır'ı tıklayın:
Sonuç birkaç saniye içinde en altta listelenir ve ne kadar verinin işlendiğini de gösterir:
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
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.
- Ö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
- 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
- Diğer kullanıcıların BigQuery'yi nasıl kullandığını öğrenmek için BigQuery subreddit'e göz atın.
- BigQuery'de kullanılabilen herkese açık veri kümelerini bulun.
- BigQuery'ye nasıl veri yükleyeceğinizi öğrenin.