1. Giriş
BigQuery; Google'ın tümüyle yönetilen, NoOps özellikli, düşük maliyetli analitik veritabanıdır. BigQuery ile terabaytlarca veriyi veritabanı yöneticisi veya altyapı olmadan sorgulayabilirsiniz. BigQuery, aşina olduğunuz SQL ve yalnızca kullandığınız kadar ödeyin. BigQuery, anlamlı bulgulara ulaşabilmeniz için veri analizine odaklanmanıza olanak tanır. Bu codelab'de yerel CSV dosyasını yeni bir BigQuery tablosuna yüklemek için bq komut satırı aracını kullanacaksınız.
Neler öğreneceksiniz?
- BigQuery için bq komut satırı aracını kullanma
- Yerel veri dosyalarını BigQuery tablosuna yükleme
Gerekenler
- Bir Google Cloud projesi
- Google Chrome gibi bir tarayıcı
2. Hazırlanın
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ı ile ilişkili 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.
Cloud Shell
Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız.
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].
3. Veri kümesi oluşturma
Tablolarınızı içerecek bir veri kümesi oluşturun.
Veri kümesi nedir?
BigQuery veri kümesi, tablo koleksiyonudur. Bir veri kümesindeki tüm tablolar aynı veri konumunda depolanır. Bir veri kümesi ve tablolarına erişimi sınırlamak için özel erişim denetimleri de ekleyebilirsiniz.
Veri kümesi oluşturma
Cloud Shell'de "bq_load_codelab
" adlı bir veri kümesi oluşturmak için bq mk komutunu kullanın.
bq mk bq_load_codelab
Veri kümesi özelliklerini görüntüleme
bq show komutuyla veri kümesinin özelliklerini görüntüleyerek veri kümesini oluşturduğunuzu doğrulayın.
bq show bq_load_codelab
Şuna benzer bir çıkış alırsınız:
Dataset my-project:bq_load_codelab Last modified ACLs Labels ----------------- -------------------- -------- 15 Jun 14:12:49 Owners: projectOwners, your-email@example.com Writers: projectWriters Readers: projectReaders
4. Veri dosyasını oluşturma
BigQuery; yeni satırlarla ayrılmış JSON, Avro ve CSV gibi çeşitli veri biçimlerinden veri yükleyebilir. Kolaylık sağlaması için CSV dosyası kullanacaksınız.
CSV dosyası oluşturma
Cloud Shell'de boş bir CSV dosyası oluşturun.
touch customer_transactions.csv
Cloud Shell düzenleme komutunu çalıştırarak CSV dosyasını Cloud Shell'deki kod düzenleyicide açın. Bu komut, kod düzenleyici ve Cloud Shell paneliyle yeni bir tarayıcı penceresi açar.
cloudshell edit customer_transactions.csv
Kod düzenleyicide, BigQuery'ye yüklemek için virgülle ayrılmış değerler girin.
ID,Zipcode,Timestamp,Amount,Feedback,SKU c123,78757,2018-02-14 17:01:39Z,1.20,4.7,he4rt5 c456,10012,2018-03-14 15:09:26Z,53.60,3.1,ppiieee c123,78741,2018-04-01 05:59:47Z,5.98,2.0,ch0c0
CSV dosyasını kaydetmek için Dosya > Düzenle'ye dokunun.
5. Verileri yükle
CSV dosyanızı BigQuery tablosuna yüklemek için bq load komutunu kullanın.
bq load \ --source_format=CSV \ --skip_leading_rows=1 \ bq_load_codelab.customer_transactions \ ./customer_transactions.csv \ id:string,zip:string,ttime:timestamp,amount:numeric,fdbk:float,sku:string
Aşağıdaki seçenekleri kullandınız:
--source_format=CSV
, veri dosyasını ayrıştırırken CSV veri biçimini kullanır.--skip_leading_rows=1
, başlık satırı olduğu için CSV dosyasındaki ilk satırı atlar.Bq_load_codelab.customer_transactions—the first positional argument—
, verilerin hangi tabloya yüklenmesi gerektiğini tanımlar../customer_transactions.csv
(ikinci konum bağımsız değişkeni), hangi dosyanın yükleneceğini tanımlar. bq load komutu, yerel dosyalara ek olarakgs://my_bucket/path/to/file URIs
ile Cloud Storage'dan dosya da yükleyebilir.- JSON şema dosyasında veya virgülle ayrılmış liste olarak tanımlanabilen bir şema. (Basit olması için virgülle ayrılmış bir liste kullandınız.)
customer_transactions tablosunda aşağıdaki şemayı kullandınız:
Id:string
: Müşteri tanımlayıcısıZip:string
: ABD posta koduTtime:timestamp
: İşlemin gerçekleştiği tarih ve saatAmount:numeric
: Bir işlemin tutarı (sayısal sütun verileri ondalık biçimde depolar ve bu, parasal değerler için yararlıdır.)Fdbk:float
: İşlemle ilgili geri bildirim anketinden alınan puanSku:string
: Satın alınan öğenin tanımlayıcısı
Tablo ayrıntılarını alma
Tablo özelliklerini göstererek tablonun yüklendiğini doğrulayın.
bq show bq_load_codelab.customer_transactions
Çıkış:
Table my-project:bq_load_codelab.customer_transactions Last modified Schema Total Rows Total Bytes ----------------- --------------------- ------------ ------------- 15 Jun 15:13:55 |- id: string 3 159 |- zip: string |- ttime: timestamp |- amount: numeric |- fdbk: float |- sku: string
6. Verileri sorgulama
Verileriniz yüklendiğine göre BigQuery web kullanıcı arayüzü, bq komutu veya API'yi kullanarak verilerinizi sorgulayabilirsiniz. Sorgularınız, verilerinizi okuma izninizin olduğu herhangi bir veri kümesiyle (veya veri kümesiyle aynı konumda bulundukları sürece) birleştirebilir.
Veri kümenizi ABD posta kodları veri kümesi ile birleştiren ve ABD eyaletine göre işlemleri toplayan standart bir SQL sorgusu çalıştırın. Sorguyu yürütmek için bq query komutunu kullanın.
bq query --nouse_legacy_sql ' SELECT SUM(c.amount) AS amount_total, z.state_code AS state_code FROM `bq_load_codelab.customer_transactions` c JOIN `bigquery-public-data.utility_us.zipcode_area` z ON c.zip = z.zipcode GROUP BY state_code '
Bu komutun çıkışı şu şekilde olmalıdır:
Waiting on bqjob_r26...05a15b38_1 ... (1s) Current status: DONE +--------------+------------+ | amount_total | state_code | +--------------+------------+ | 53.6 | NY | | 7.18 | TX | +--------------+------------+
Çalıştırdığınız sorgu, herkese açık bir veri kümesini ve gizli veri kümenizi kullandı. Aynı sorgunun yorumlanmış bu sürümünü okuyarak daha fazla bilgi edinin:
#standardSQL SELECT /* Total of all transactions in the state. */ SUM(c.amount) AS amount_total, /* State corresponding to the transaction's zipcode. */ z.state_code AS state_code /* Query the table you just constructed. * Note: If you omit the project from the table ID, * the dataset is read from your project. */ FROM `bq_load_codelab.customer_transactions` c /* Join the table to the zipcode public dataset. */ JOIN `bigquery-public-data.utility_us.zipcode_area` z /* Find the state corresponding to the transaction's zipcode. */ ON c.zip = z.zipcode /* Group over all transactions by state. */ GROUP BY state_code
7. Temizleme
bq rm komutuyla oluşturduğunuz veri kümesini silin. İçerdiği tüm tabloları kaldırmak için -r işaretini kullanın.
bq rm -r bq_load_codelab
8. Tebrikler!
BigQuery'ye bir tablo yüklediniz ve tabloyu sorguladınız.
İşlediğiniz konular
- BigQuery ile etkileşime geçmek için
bq
komut satırı aracını kullanma. - Verilerinizi ve herkese açık veri kümesini BigQuery sorgusu ile birleştirme.
Sırada ne var?
Aşağıdaki konular hakkında daha fazla bilgi edinin:
bq
komut satırı aracı- BigQuery'ye veri yüklemenin diğer yolları.
- BigQuery üzerinden kullanılabilen diğer herkese açık veri kümeleri.
- BigQuery ile TIL'da hava durumu, suç ve diğer veri türleri.