Your SlideShare is downloading. ×
Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İş Zekası Ürünü İle Görselleştirilip Android Tabanlı Mobil Cihazlar Üzerinden İzlenmesi
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İş Zekası Ürünü İle Görselleştirilip Android Tabanlı Mobil Cihazlar Üzerinden İzlenmesi

612
views

Published on

Bildiride büyük veri analizi için Google BigQuery, Analiz edilen verilerin görsel olarak raporlanması için SAAS tabanlı iş zekası çözümlerinden BIME, Google BigQuery ile BIME bağlantısı ve sonuçların …

Bildiride büyük veri analizi için Google BigQuery, Analiz edilen verilerin görsel olarak raporlanması için SAAS tabanlı iş zekası çözümlerinden BIME, Google BigQuery ile BIME bağlantısı ve sonuçların mobil olarak izlenebilmesi için gerçekleştirilebilecek android uyumlu çözümlerden bahsedilmiştir.

Published in: Data & Analytics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
612
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Google BigQuery Servisi İle Büyük Veri İşlemleri Ve Sorgu Sonuçlarının BIME İş Zekası Ürünü İle Görselleştirilip Android Tabanlı Mobil Cihazlar Üzerinden İzlenmesi Cenk DERİNÖZLÜ cenkder@gmail.com Özet: Günümüzde internet teknolojileri ve buna bağlı olarak mobil teknolojilerdeki gelişim sonucunda üretilen veri miktarı her geçen gün büyümektedir. Artan rekabet sonucunda kurumlar için farkındalık yaratabilmek için büyük ve yapısal olmayan veri bloklarının analiz edilmesi, sonuçların raporlanması ve kullanılabilir olması oldukça önemlidir. Bu durumda büyük verinin analizi, görsel olarak raporlanması ve mobil cihazlar üzerinden anlık olarak izlenebilir hale getirilmesi olmak üzere üç temel konunun çözüme ulaştırılması gerekmektedir. Bu bildiride yukarıda bahsedilen problemlerin çözümü için tercih edilen büyük veri analizi için Google BigQuery, Analiz edilen verilerin görsel olarak raporlanması için SAAS tabanlı iş zekası çözümlerinden BIME, Google BigQuery ile BIME bağlantısı ve sonuçların mobil olarak izlenebilmesi için gerçekleştirilebilecek android uyumlu çözümlerden bahsedilmiştir. Anahtar Sözcükler: Büyük Veri, Android,Bigquery,Bime,Big Data, Google BigQuery, Mobil Yazılım, Veri Analiz, Veri Raporlama,BIME,İş Zekası Giriş: Büyük veri blokları üzerinde ihtiyaç duyulan verilerin sorgulanması ve sonuçların raporlanması işlemi doğru donanım ve altyapı olmadığında zaman bakımından oldukça uzun süreler aldığından hızlı veriye ulaşımın önemli olduğu günümüzde sorun teşkil etmektedir. Bildiri üç bölümden oluşmaktadır. Birinci bölümde Google BigQuery Servisinden, ikinci bölümde Saas tabanlı iş zekası çözümü BIME servisinden ve BIME –BigQuery entegrasyonundan üçüncü bölümde de android tabanlı cihazlar üzerinden BIME servislerine nasıl ulaşılacağından bahsedilecektir.
  • 2. Birinci Bölüm: Google BigQuery Nedir? Google Big Query google tarafından 2012 yılında başlatılan bulut bilişim hizmetlerinden birisidir. BigQuery servisi ,büyük veri üzerindeki sorgu işlemlerinin google altyapısı kullanılarak hızlı bir şekilde yapılabilmesine olanak sağlamaktadır. BigQuery Google çekirdek altyapılarından olan bulut destekli paralel sorgu servisi Dremel’i kullanmaktadır. Google BigQuery servisin tercih edilmesinde önemli bir etkende altyapısında Google tarafından geliştirilen ve kullanılan Dremel altyapısının kullanılmasıdır. Dremel altyapısıda MapReduce altyapısı gibi Google tarafından gerçekleştirilmiş ve mapreduce altyapısına göre üç temel avantaj sağlamaktadır. Hız bakımından; Dremel, Map reduce deki satır bazlı veri yapısı yerine kolon bazlı veri yapısına sahiptir. Bu nedenle büyük veri üzerindeki analitik işlemlerde çok daha hızlıdır. Aşağıda kolon bazlı veri modeli ile satır bazlı veri modelleri hakkında özet bilgi verilmiştir. Yukarıdaki resimde de görüldüğü gibi milyonlarca kayıt bulunan bir tablodaki verilerden col1 isimli kolondaki verileri grupladığımızda satır bazlı veri modelini kullandığımızda tüm kayıtlara erişmek için tüm satırların okunması gerekirken, Sütun bazlı veri modelinde sadece col1 isimli bölümler okunarak istenen verilere erişilebilmektedir. Bu sayede veri boyutu ile doğru orantılı olarak performans artışı gerçekleşecektir. Sütun bazlı veri modelinde kolon bazında tutulan isim verilerinin tutulduğunu düşünürsek tekrar eden veri sayesinde sıkıştırma işleminde satır bazlı veri modeline göre avantaj sağlayacaktır.
  • 3. Sütun bazlı veri modellerinin dezavantajına gelince, az veri içeren sorgular çektiğimizde veriye birden çok okuma ile ulaşacağımız için sorgu performansımız düşecektir. Sonuç olarak sütun bazlı veri modelinin büyük veri okurken ve tüm sütunlar yerine belli başlı sütunlardaki veriye erişim yapılması gerektiği durumlarda tercih edilmesi performans artışı sağlayacaktır. Kullanılabilirlik Bakımından; Dremel sorgu dili formatı SQL benzeridir.Bu nedenle mapreduce uyumlu sistemlerdeki gibi SQL formatında sorgulama yapılabilmesine olanak sağlayan Hive,Pig tarzı dillere ihtiyaç yoktur.Bu sayede sorgulama işlemlerinde mapreduce uyumlu yapılara göre daha hızlıdır. Ölçeklenebilirlik Bakımından; Google ‘a göre Dremel büyük ölçekli sistemlerde test edilmiş tek metottur. Ücretlendirme Politikası: BigQuery servisleri ile büyük veri analizi Google sunucuları üzerinde gerçekleştirildiğinden ayrıca bir veri merkezi kurulması için sermaye ayrılmasına gerek yoktur. BigQuery servislerinde ücretlendirme de sorgulama ve veri saklama olmak üzere iki temel kriter bulunmaktadır. Ödeme esnektir. Servis kullanıldıkça veri miktarına göre aylık ödemeler şeklinde gerçekleştirilmektedir. 2014 yılı ücretlendirme özetini gösteren tablo aşağıdadır. Kaynak Ücretlendirme Veri Yükleme Ücretsiz Veri Çıkarma Ücretsiz Tablo İçerik Gözatma Ücretsiz Veri Saklama $80 (1 TB/aylık) İnteraktif Sorgular $35 (1 TB işlem) Batch Sorgular $20 (1 TB işlem) Streaming Kayıt Ekleme Ücretsiz Haziran 1, 2014 e kadar 1 Hazirandan sonra $0.01 (10,000 satır) BigQuery veri yapısı kolon bazlıdır. Bu nedenle ücretlendirme de tablodaki tüm kolonlar değil ,sorgu içerisinde belirtilen kolonlar baz alınmaktadır. Bu nedenle seçili kolonlarda işlenen toplam veri miktarına göre ücretlendirme yapılmaktadır.
  • 4. Google BigQuery Servisi Nasıl Kullanılır? BigQuery üzerinde veri işlemleri yapabilmek için öncelikle işlem yapılacak veri bloğu Google Sunucular üzerinde ayrılan veri alanına yüklenmelidir. Bu aşamadan sonra ihtiyaç oldukça sorgulama ,izleme işlemleri için veri bloğuna bağlanılabilir. BigQuery servisine erişmek için; https://bigquery.cloud.google.com/ adresi vasıtasıyla tarayıcı üzerinden, https://developers.google.com/bigquery/bq-command-line-tool adresi üzerinden indirilebilecek olan komut programıyla BigQuery API kullanılabilir. BigQuery Bileşenler ve Erişim Seviyeleri: Bigquery üzerinde projeler, datasetler ve tablolar olmak üzere üç temel bileşen yer almaktadır. Bildirinin bu bölümünde sistem üzerindeki temel bileşenlerden ve bileşenler üzerindeki erişim hakları hakkında bilgi verilecektir. 1. Projeler: Projeler, Google Bulut Platformlarının içinde en üst seviyedir. Projeler alanı içinde ücretlendirme ile ilgili bilgiler, yetkili kullanıcı bilgileri ve bigquery veri bloğu yer almaktadır. Bigquery ödeme sistemi, proje tabanlıdır. Şirket açısından bakıldığında kolaylık amacıyla her şirket için bir adet proje yaratılması genellikle kullanılan çözümdür. Servis ücretli bir servis olduğu için sistem içerisinden sisteme kimin erişeceği ile ilgili ayarlar yine Projeler alanı altından yapılabilir. Proje Erişim Hakları: Proje erişim hakları ile ilgili ayarlar Google API Console üzerinden “Team paneli” kullanılarak gerçekleştirilebilmektedir. Bu panel kullanılarak projeye erişecek kullanıcılar ve kullanıcıların kaç kere projeye erişebileceği belirlenebilmektedir. Proje Erişim Seviyeleri: Projelere erişim sağlayacak kişilerin proje üzerinde yapabileceklerini belirleyebilmek için üç temel yetki seviyesi bulunmaktadır. Yetki seviyeleri ve içerdikleri yetkiler aşağıda belirtilmektedir.
  • 5. Can View: Bu yetkiye sahip kullanıcılar okuma yetkisine sahip olmakla birlikte  Proje üzerinde iş çalıştırabilir,  Projede başlatmış oluğu işlerin listesini alabilir  Proje içerisinde herhangi bir veri kümesine okuma yetkisi ile erişebilir. Can Edit: Bu yetkiye sahip kullanıcılar yazma yetkisine sahip olmakla birlikte  Can View yetkisine ek olarak proje içerisindeki veri kümesi üzerinde yazma işlemi yapabilir.  Proje içerisinde herhangi yeni oluşturulmuş veri kümesi üzerinde de yazma yetkisine sahiptir. Is Owner: Bu yetkiye sahip kullanıcı Can Edit yetkisine ek olarak  Projedeki tüm veri kümelerini listelemeye,  Projedeki herhangi bir veri kümelerini silmeye  Proje üzerindeki tüm iş parçacıklarını (kendine ait olan ve başka kullanıcılar tarafından çalıştırılan) izlemeye yetkilidir. 2. Veri Bloğu( DataSet ): BiqQuery servisi Proje erişim yetkilerinin yanında proje içerisinde oluşturulan veri bloğu seviyesinde yetkilendirme olanağı da sağlamaktadır. Belirlenen veri bloğu üzerinde kullanıcılara özel erişim hakları tanımlanabilmektedir. Veri Bloğu seviyesinde tanımlanan erişim yetkileri proje erişim yetkilerinin üzerindedir. Veri Bloğu Haklar: Veri Bloğu seviyesinde kişilere tanımlanabilecek erişim hakları da projelerde olduğu gibi üç çeşittir. READ(OKUMA): Datası üzerindeki tablo, tablo verisi çağırma, dataset içindeki tabloları okuma ile ilgili işleri çalıştırma WRITE(YAZMA): Okuma yetkisine ek olarak;  Dataset üzerinde herhangi bir tablo üzerinde kayıt ekleme, güncelleme, silme işlemlerini gerçekleştirme  Dataset üzerinde ekleme veya güncelleme ile ilgili iş parçacıklarını çalıştırma
  • 6. OWNER(SAHİPLİK): Yazma yetkisine ek olarak;  Tüm dataset üzerindeki güncelleme işlemlerini yapabilir  Dataset Silme işlemini gerçekleştirebilir. 3. Tablolar: BigQuery içinde yüklenen tüm veriler tablolar içerisinde tutulmaktadır. Sistem farklı şekillerde yeni tablo yaratılmasına olanak sağlamaktadır. BigQuery üzerinde erişim seviyesi bakımından tablo bazlı bir erişim kısıtlaması bulunmamaktadır. Kişi dataset erişim hakkında sahipse dataset üzerindeki tüm tablolar üzerinde de aynı haklara sahiptir. Big Query içerisine Veri Yüklenmesi: Üretilen büyük hacimli ve yapısal olmayan verilerin analiz edilebilmesi için öncelikle bigquery üzerine yüklenmesi gerekmektedir. Bigquery üzerindeki tabloların organize edilmesi ve erişimin kontrol edilmesi için datasetler kullanılır. Sistem üzerine veri transfer edilmeden önce tabloların yaratılması için en az bir dataset oluşturulması gerekmektedir. Bigquery Sistemleri üzerinde veri yükleme, veri export, sorgu vb. işlemler gibi asenkron görevler “job” olarak adlandırılan iş süreçleri tarafından gerçekleştirilmektedir. Birden çok eşzamanlı iş sürecininin çalışması sistem tarafından desteklenmektedir. Sistem Üzerine Veri Yükleme Yöntemleri: Bigquery sistemi üzerine veri ; 1) Job adı verilen iş süreçleri vasıtasıyla verilerin topluca yüklenmesi 2) Yeni veri eklendikçe eklenen verinin big query üzerine gönderilmesi şeklinde olmak üzere iki şekilde gerçekleştirilebilmektedir. Yüklenen veriler oluşturulan yeni tabloya eklenebildiği gibi, varolan tabloya eklenebilir veya olan bir tablodaki verilerin üzerine yazılabilir. Çeşitli kaynaklardan gelen veriler ayrı ayrı iş süreçleri (job) vasıtasıyla sistem üzerine eklenebilmektedir. Konfigurasyon dosyasındaki SourceURI parametresi kullanılarak kolaylıkla veri kaynakları değiştirilebilmektedir.
  • 7. Sisteme Yüklenecek Verinin Hazırlanması: Aktarılacak verinin yapısına göre big query ile uyumlu olacak şekilde hazırlanması gerekmektedir. Aktarılacak verinin formatı farklı olabilir bu durumda verinin uygun bir formata getirilmesi gerekmektedir. Big query tarafından iki tip veri formatı desteklenmektedir.Bunlar; -CSV -JSON (newline-delimited). Bu iki veri format seçilirken aşağıdaki kriterler göz önünde bulundurulmalıdır. Veri Formatı Seçimini Etkileyen Faktörler:  CSV VE JSON her ikiside flat yani düz metin yapısındaki veriyi desteklemektedir.  Düz metin yapısı yani flat veriler sorgu bakımından hızlı olmasına rağmen boyut olarak büyük alanlar kaplamaları dezavantajdır.  JSON veri formatı ise flat veri desteğine ek olarak ek olarak içiçe ve tekrarlanan yapıları destekler bu sayede tekrarlana veriler tekrarlanarak mümkün olduğunca veriler arasında ilişki azaltılarak hem performans hemde kayıt alanı bakımından avantaj sağlamaktadır.  Embedded newlines: Gönderilecek her bir veri ayrı bir satırda bulunuyorsa bigquery üzerine yüklenme süresi çok daha hızlı olmaktadır. Veri seçimini etkileyen önemli faktörde veri üreten sistemin türüdür. Sistemin desteklediği veri çıkarma formatı bağlayıcı kriterdir. Sonuç olarak Performansı açısından bakıldığında JSON formatlı verilerin aktarım hızı csv formatına göre daha hızlı olmaktadır. CSV ve JSON arasında seçim yapılabiliyorsa JSON formatının tercih edilmesi performans açısından avantaj sağlayacaktır. Veri Format Limitleri açısından JSON - CSV karşılaştırması aşağıdaki tabloda görülebilmektedir. CSV and JSON Satır ve hücrenin sahip olabileceği maksimum büyüklük açısından; Data formatı Maximum Limit CSV 1 MB (satır ve hücre boyutu) JSON 20 MB (satır boyutu) CSV and JSON Dosya Boyutu açısından; Dosya Tipi Sıkıştırılmış Sıkıştırılmamış CSV 1 GB  Yeni Satır : 4 GB  Yeni Satır Olmaksızın: 1 TB, JSON 1 GB 1 TB
  • 8. Tekrarlanan/içiçe alanlardan oluşan JSON nesnesi örneği aşağıda görülmektedir. {"kind": "person", "full Name": "John Doe", "age": 22, "gender": "Male", "citiesLived": [{ "place": "Seattle", "numberOfYears": 5}, {"place": "Stockholm", "numberOfYears": 6}]} Desteklenen Data Tipleri: Bigquery String, integer, float, boolen ,nested/repeated kayıtlar ve tarih zaman formatlarındaki verileri desteklemektedir. Data Sıkıştırma Seçimini Etkileyen Faktörler: Sıkıştırılmamış dosyalar sıkıştırılmış dosyalara çok daha hızlı bir şekilde bigquery üzerine yüklenebilmektedir. Buna karşın sıkıştırılmamış dosyaların boyutlarındaki büyüklük hem işlem sırasında ihtiyaç duyulan band genişliği ihtiyacını yükseltmekte hem de bulut üzerinde daha büyük alana ihtiyaç duyulduğu için maliyetleri yükseltmektedir. Sonuç olarak bandgenişliği limitli sistemlerde veri Google bulut sunucularına yüklenmeden önce sıkıştırılması tercih edilirken yükleme hızının önemli olduğu ve band genişliğinin yeterli olduğu durumlarda dosyaların sıkıştırılmadan bulut sunucular üzerine yüklenmesi tercih edilmelidir. Veri Dönüştürme BigQuery JSON ve CSV formatlarını desteklemektedir. JSON veya CSV formatına dönüştürülmeye uyumlu servislerden bigquery üzerine aktarım oldukça basit olmasına rağmen XML formatında saklanan büyük verilerin aktarım için hazır hale getirilmesi daha karmaşık işlemlerin yapılmasını gerektirmektedir. Büyük dataset üzerinde XML formatının yaygın olarak kullanılmakta olmasına rağmen Bigquery doğrudan xml formatındaki verinin aktarılmasını desteklememektedir. Bu nedenden dolayı XML formatındaki büyük verininin aktarımdan önce JSON veya CSV formatına dönüştürülmesine ihtiyaç vardır. Büyük boyuttaki xml dosyaları üzerinde ayrıştırma işlemi için kullanılacak parser tipinin seçimi önemlidir. Büyük boyutlu dosyaların parse edilme işlemi sırasında DOM tabanlı parser kullanılması tercih etmek yerine SAX tabanlı parser tercih edilmelidir. DOM Parser kullanıldığında işlem yapmak için tüm dosyanın yüklenmesi gerektiğinden memory kullanımı dosya boyutuna göre oldukça yüksek olacağı için SAX tabanlı parser kullanılması daha etkin olmaktadır. Bazı durumlarda kaynak dosyada yer alan bazı alanların formatını bigquery üzerine aktarmadan daha uygun başka bir formata dönüştürmek sorgu performansını arttırmaktadır.
  • 9. Örnek vermek gerekirse; Tarih Saat belirten alanlar içerisinde tutulan ve anlaşılır olması açısından tercih edilen ISO 8601 formatını (YYYY-MM-DDTHH:MM:SS) POSIX formatına dönüştürmek verilebilir. ISO 8601 formatında bigquery üzerine gönderilen veriler Bigquery üzerinde string veri tipi olarak aktarılmaktadır. String formatındaki veriler büyük sorgularda sorgu zamanın yükselmesine neden olmaktadır. Bu nedenle ISO 8601 formatındaki verilerin integer karşılığı olan POSIX formatına dönüştürülerek bigquery üzerine aktarılması ileride yapılacak sorguların daha hızlı çalışmasını sağlamaktadır. Örnek Kod: # Example source data 201473587,737,2008,urn:nimsp:transaction,3254081d1bd4dd611e4b48d439ddd34c,"","",f,50.00,2008-10-19T10:13:29,"BOYD, RYAN" # Use GNU awk to convert the timestamp field to posix using mktime() cat iso8601.csv | gawk -F , 'BEGIN {FS=",";OFS=",";} {timestamp = $10; gsub(/[-:T]/, " ", timestamp); $10 = mktime(timestamp);} { print }' > posix.csv # Result data 201473587,737,2008,urn:nimsp:transaction,3254081d1bd4dd611e4b48d439ddd34c,"","",f,50.00,1224436409,"BOYD, RYAN" BigQuery Üzerine Stream Yöntemi İle Veri Gönderilmesi İş paracıkları kullanarak Bigquery üzerine verilerin toplu olarak yüklenebilmesinin yanında Tablo üzerine veri yüklendikçe bigquery üzerine kaydedilmesi işleminin gerçekleştirilebilmesi için tabledata().insertAll() metodunu kullanıcılara sunmaktadır. Bu sayede verinin yüklenmesi sırasında oluşan gecikme olmaksızın bigquey üzerinde güncel veri üzerinde çalışılabilmektedir. Bu yaklaşım kullanılmaya karar vermeden önce aşağıda belirtilen noktalar üzerinde düşünülmesi faydalı olacaktır. 1. Erişim Kontrol: Öncelikle hedef tabloyu içeren dataset üzerinde yazma erişim hakkının verilmesi gerekmektedir. 2. Kota Politikası:  Tablo üzerindeki her yeni oluşturulan kayıt için maksimum değerler göz önünde bulundurulmalıdır.  Maximum Satır Boyutu:20KB  Her bir insert işleminde kayıt edilebilecek maximum veri boyutu 1 MB  Her bir tablo üzerinde oluşturulacak maksimum satır sayısı 1000 satırı geçememelidir.
  • 10. Yukarıda belirtilen maksimum değeri geçildiği takdirde kota aşım hatası (quota_exceeded) oluşacaktır. 3. Veri Erişim Durumu Veri Bigquery üzerinde yer alan ilgili tabloya ilk olarak eklendikten sonra eklenen veriye erişim 2 dakika sonra sağlanabilmektedir. Bu süre sadece ilk kayıt ekleme işlemi için geçerlidir. Bu süre warm-up süresi olarak adlandırılmaktadır. İlk işlemden sonra yapılan eklemelerden sonra warm-up süresinden kaynaklanan gecikme gerçekleşmez. Fakat kayıt işleminden sonra 1-2 saat herhangi bir kayıt işlemi gerçekleşmezse sistem bu sureden sonraki ilk kayıt işlemi için warm-up süresini tekrar uygulayacaktır. 4. Veri Dayanıklılık: Veri Bigquery üzerine stream edildikten sonra normal durumda birkaç dakika ile bir saat arasında buffer üzerinde tutulmaktadır. Tampon bölge üzerindeki verilerin kopyaları veri kaybının önlenmesi için ek bölgeler üzerine replike edilmektedir. 5. Veri Tutarlılığı: Bigquery sistemleri veri tutarlılığını arttırmak için her yeni satır eklendiğinde eklenen satır ile ilgili InsertId oluşturur. Bigquery bu idleri birkaç dakikalık süreç boyunca hatırlar ve eğer belirli zaman dilimi içinde aynı satırlar kaydedilmek istenirse InsertID parametresini set ederek benzer kayıt oluşmasını engeller. Örnek vermek gerekirse; Networkten kaynaklanan bir problem gerçekleştiğinde stream edilen kayıtın başarılı ve başarısız olduğu ile ilgili sistem üzerinden herhangi bir cevap dönmeyeceği için kaydetme işlemi başarılı olsa bile karşı taraf a bilgi gitmediği için aynı kayıt tekrar biqquery üzerine gönderilebilir. Bu durumda InsertId parametresi sayesinde bigquery üzerinde birden çok aynı kayıtın oluşması engellenecektir. Bigquery Üzerindeki Verinin Sorgulanması BigQuery üzerinde sorgu yazılırken standart SQL ifadelerinin varyasyonları kullanıldığı için sorgular için farklı bir dil öğrenilmesine gerek yoktur. Hem senkron hemde asenkron sorgu metotlarını desteklemektedir. Tüm sorgu sonuçları tablo olarak kaydedilir. Sorgu sonucunda sonuçların kaydedildiği tablolar kalıcı veya geçici olmak üzere 2 tiptir. Kalıcı(Persistent) Tablolar: Yazma iznine sahip olunan herhangi bir dataset içerisinde yeni bir tablo veya varolan bir tablo olabilir.
  • 11. Temporary(Geçici) Tablolar: Belirli bir dataset üzerinde rasgele isimle oluşturulan tablolardır. Bu tip tabloların ortalama ömrü 24 saattir. Paylaşım amacıyla kullanılamazlar. Senkron soruların sonuçlarının tümü geçici olarak yaratılan tablolara kaydedilmektedir. Eğer sonuçların daha uzun süreli olarak tutulacağı kalıcı tablolar üzerine yazılması isteniyorsa query asenkron olarak tekrar çalıştırılmalıdır. BigQuery Üzerinden Veri Çıkarılması Bigquery, yüklenen verilerin Google bulut üzerindeki saklama alanına CSV veya JSON formatında çıkarılabilmesine imkan sağlamaktadır. Bigquery üzerindeki verilerin başka bir yerde kullanabilmek için dışarı çıkarılması için sistem üzerindeki iş süreçleri kullanılmaktadır. Sistem üzerindeki veriyi dışarıya çıkarmadan önce dikkat edilmesi gerekli olan ihtiyaçlar aşağıda listelenmektedir. Erişim kontrol yetkileri bakımından; Verinin dışarı çıkarılabilmesi için bigquery üzerinde ilgili dataset üzerinde en az okuma yetkisine ve verinin çıkarılacağı google bulut üzerindeki saklama alanı üzerinde de yazma yetkisine sahip olunması gerekmektedir. Kota Politikası bakımından; Bigquery üzerinden veri çıkarılması için çalıştırılabilecek maksimum iş sayısı günlük 50 adetle sınırlandırılmıştır. Örnek: JSON formatında veri çıkarılması için tanımlanması gereken iş yapılandırma dosya örneği aşağıda gösterilmektedir. jobData = { 'projectId': projectId, 'configuration': { 'extract': { 'sourceTable': { 'projectId': projectId, 'datasetId': datasetId, 'tableId': tableId }, 'destinationUri': 'gs://<bucket>/<file>', 'destinationFormat': 'NEWLINE_DELIMITED_JSON' } } }
  • 12. Bigquery üzerindeki diğer bir kısıtta sistem üzerinden export edilerek oluşturulan dosyanın maksimum boyutu 1 GB olmak zorundadır. Bu nedenle sistem üzerinden 1GB üzeri export işlemi yapılırken yapılandırma dosyasında sistemin dosya boyutu 1GB seviyesini geçtiği zaman yeni dosya oluşturabilmesi için ilgi parametrelerin eklenmesi gerekmektedir. Bigquery üzerinde birden çok dosyaya export işlemi yapılabilmesi için konfigürasyon dosyasına 'destinationUri': 'gs://<bucket>/<file>' satırı yerine 'destinationUri': ‘ gs://my_export_files/data-*.json’ eklenmelidir. İlgili değişiklik yapıldıktan sonra bigquery dosya boyutu 1GB seviyesini aştıkça aşağıdaki gibi yeni dosyaları otomatik olarak oluşturacaktır. gs://my_export_files/data-0000.json gs://my_export_files/data-0001.json gs://my_export_files/data-0002.json İş Süreçi,Proje ve Dataset Yönetimi Jobs: İş Süreçleri uzun süreli işlemleri çalıştırmak için kullanılmaktadır. Örnek vermek gerekirse sorgulama işlemleri, tablolara veri aktarılması, tablolardan veri çıkarılması işlemleri sayılabilir. Standart İş Süreci Aşamaları:  Job.Insert metodu kullanılarak öncelikle bir iş başlatılır. İş süreci başlatıldıktan sonra aynı metot üzerinden işin durumunun ilerleyen zamanlarda takip edilebilmesi için JobId üretilir.  Jobs.Get metodu ve JobId ile iş sürecinin durumu sorgulanır.İş süreç durumu olarak DONE olarak güncellendiğinde iş sürecinin çalışması durdurulur.  Durumun değerinin “Tamamlandı” olarak gelmesi sürecin başarı ile sonuçlandığını garanti etmez süreç uzun süredir çalışmıyorsa da aynı sonuç dönebilir.  İş sürecinin başarı ile sonuçlandığının kontrol edilmesi için iş sürecinin status.errorResult isimli özelliği kullanılır. Eğer süreç başarısız ise bu parametre içerinde neden başarısız olduğu ile ilgili hata tanımı yer alacaktır. Eğer status.ErrorResult parametresi mevcut değilse işlemin başarılı olarak sonuçlandığı sonucuna varılabilmektedir. Datasetler:
  • 13. Datasetler bir veya daha çok tabloyu içerebilen gruplardır be bigquery üzerinde kontrol erişiminin ayarlandığı en alt seviyedir. Bigquery üzerinde erişim tablo bazında değil dataset bazında kısıtlanabilmektedir. Sistem üzerindeki datasetlere bigquery. datasets.list. metodu ile ulaşılabilmektedir. Örnek Kod: public static void listDatasets(Bigquery bigquery, String projectId) throws IOException { Datasets.List datasetRequest = bigquery.datasets().list(projectId); DatasetList datasetList = datasetRequest.execute(); if (datasetList.getDatasets() != null) { List datasets = datasetList.getDatasets(); System.out.println("Dataset list:"); for (DatasetList.Datasets dataset : datasets) { System.out.format("%sn", dataset.getDatasetReference().getDatasetId()); } } } Projeler: Projeler içerisinde birden fazla dataset yeralabilmektedir. Projelerin yönetimi ve yaratılması API konsol üzerinden yapılabilmektedir. bigquery.projects.list. metodu kullanılarak sistem üzerindeki erişim yetkisi bulunulan projelerin listesi alınabilmektedir. Örnek private static void listProjects(Bigquery service) throws IOException { Bigquery.Projects.List projectListRequest = service.projects().list(); ProjectList projectList = projectListRequest.execute(); if (projectList.getProjects() != null) { List projects = projectList.getProjects(); System.out.println("Project list:"); for (ProjectList.Projects project : projects) { System.out.format("%sn", project.getFriendlyName()); } } } Tablolar: Bigquery üzerindeki tablolar her satırın ayrı kayıt içerdiği ve her kolon için farklı veri tiplerine destek veren standart 2 boyutlu tablolardır.
  • 14. Bigquery üzerindeki her bir kolon aşağıdaki özelliklere sahiptir. İsim: Kolon isimleri büyük ve küçük harfleri ve 0-9 arası sayıları desteklemektedir. Fakat ilk karakter harf olmak zorundadır. Veri Tipi: Kolonlar tarafından desteklenen veri tipleri aşağıdaki gibidir. o STRING o INTEGER o FLOAT o BOOLEAN o RECORD -JSON  mode o NULLABLE o REQUIRED o REPEATED -JSON Yeni Tablo Oluşturulması Bigquery üzerinde iki şekilde tablo oluşturulabilir. CSV veya JSON formatında veri yüklenmek suretiyle veya sorgu çalıştırılması sonucu sorgu sonuçlarının kaydedilmesi ile tablo oluşturulması şeklindedir. BigQuery API Bildirinin bu bölümünde BigQuery üzerindeki örnek bir data set üzerinden sorgu çalıştırılıp sonuçlarının gösterildiği örnek uygulamanın bigquery adi kullanılarak nasıl yapılabileceği anlatılmıştır. Adım 1: Bigquery Projesi Oluşturma: Uygulama üzerinden Bigquery Servisini kullanabilmek için öncelikle Google API konsol üzerinden yeni bir proje oluşturulması gerekmektedir. Proje tarafından hem uygulamanın google tarafından tanınabilmesi hem de Bigquery API kütüphanesinin kullanılabilmesi için üç farklı değer üretilir. Bu değerler Project Number, client ID ve client secret değerleridir. ”Project number” sorguların çalıştırıldığı projeyi tanımlamaktadır. “Client Id” ve “Client secret ”değerleri ise uygulamanın google ve bigquery servislerini kullanabilmesi için gerekli olan üzerine yetkilendirme işlemlerinde kullanılmaktadır.
  • 15. Yeni Proje Oluşturma sırasında izlenecek adımlar aşağıda belirtilmiştir.  Google API Console sayfasına bağlantı kurularak BigQuery isimli yeni bir proje yaratılır.  Projemiz oluşturulduktan sonra Services sekmesi altından BigQuery API özelliği etkinleştirilir.  Son olarak ta API Console üzerinde proje URL si üzerinden proje numarası not edilir. Örnek URL: (https://code.google.com/apis/console/#project:12345XXXXXXX). Proje Numarası, Bigquery API ile bağlantı kurulduğunda kullanılacaktır.  Client Id ve Client secret değerleri oluşturmak için Console üzerinde API Access butonuna tıklandıktan sonra Create an OAuth2.0 client ID butonuna tıklanır.  Uygulama tipinin seçilebileceği sayfa açılır açılan sayfadan “installed application” seçeneği seçildikten sonra Create client ID butonuna tıklanarak clientId ve client secret değerleri oluşturulur.  Download Json butonuna basılarak uygulamanın BigQuery servislerini kullanabilmesi için gerekli olan client_secret.json dosyası kaydedilir. client_secret.json örnek dosyası: { "installed": { "client_id": "XXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com", "client_secret": "XXXXXXXXXXXXXXXXXXXX", "redirect_uris": ["urn:ietf:wg:oauth:2.0:oob"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token" } } Adım 2: Google API Client Kütüphanelerinin Yüklenmesi Örnek uygulamamızda Bigquery servislerini kullanabilmemiz için Google API client kütüphaneleri aşağıdaki linklerden yüklenmelidir.  Java: Google APIs Client Library for Java, and the Generated BigQuery Java Client library.  Python: Google APIs Client Library for Python Uygulamamızı JAVA yazılım dili ile geliştireceğimiz için JAVA için gerekli kütüphaneler yüklenmelidir. Adım 3: Bigquery API Erişimi Bigquery servisine erişim sağlanabilmesi için Google API Console vasıtasıyla oluşturulmuş olan client_secrets.json dosyasından clientId ve client_secret değerlerinin okunması için gerekli kodun yazılması gereklidir.
  • 16. Örnek Kod: // Enter your Google Developer Project number or string id. private static final String PROJECT_ID = "name_of_project"; // Use a Google APIs Client standard client_secrets.json OAuth 2.0 parameters file. private static final String CLIENTSECRETS_LOCATION = "client_secrets.json"; // Objects for handling HTTP transport and JSON formatting of API calls. private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); private static final JsonFactory JSON_FACTORY = new JacksonFactory(); public static void main(String[] args) throws IOException { GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(new JacksonFactory(), new InputStreamReader(ApiQuickstart.class.getResourceAsStream(CLIENTSECRETS_LOCATION))); Credential credential = getCredentials(clientSecrets, new Scanner(System.in)); Bigquery bigquery = new Bigquery(HTTP_TRANSPORT, JSON_FACTORY, credential); String query = "SELECT TOP( title, 10) as title, COUNT(*) as revision_count " + "FROM [publicdata:samples.wikipedia] WHERE wp_namespace = 0;"; runQueryRpcAndPrint(bigquery, PROJECT_ID, query, System.out); } ClientId ve client _secret değerleri kullanılarak kullanıcının API üzerine erişimi sağlanır .Erişim sonucu başarılı olduğunda Google API üzerinden dönen erişim kodu kullanılarak Bigquery servislerinin kullanabilmek için Bigquery client nesnesi yaratılmaktadır. Örnek Kod: static Credential getCredentials(GoogleClientSecrets clientSecrets, Scanner scanner) throws IOException { String authorizeUrl = new GoogleAuthorizationCodeRequestUrl( clientSecrets, clientSecrets.getInstalled().getRedirectUris().get(0), Collections.singleton(BigqueryScopes.BIGQUERY)).build(); System.out.println( "Paste this URL into a web browser to authorize BigQuery Access:n" + authorizeUrl); System.out.println("... and paste the code you received here: "); String authorizationCode = scanner.nextLine(); // Exchange the auth code for an access token. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, Arrays.asList(BigqueryScopes.BIGQUERY)) .build(); GoogleTokenResponse response = flow.newTokenRequest(authorizationCode) .setRedirectUri(clientSecrets.getInstalled().getRedirectUris().get(0)).execute(); return flow.createAndStoreCredential(response, null); }
  • 17. Adım 4: Sorgu Çalıştırma Bigquery üzerinde sorgu çalıştırabilmek için Senkron ve asenkron olmak üzere iki farklı metodu kullanıma sunulmaktadır. Senkron Sorgu yöntemi kullanıldığında api üzerinden sorgu başlatılır ve sonuç için sorgunun tamamlanmasını veya sorgu süresi için bir timeout süresi verilmiş ise timeout süresinin dolması beklenmelidir. Asenkron Sorgu Yönteminde ise sorgu için bir iş süreci başlatılmakta ve süreç başlatıldıktan sonra sistem tarafından verilen jobId ile iş sürecininin durumu kontrol edilebilmektedir. İşlem tamamlandıktan sonra sorgu sonuçları alınmaktadır. Senkron sorgu yönteminin aksine bu yöntemde sorgu sonucu beklenirken başka iş süreçleri kontrol edilebilmektedir. Örnek uygulamamızda Bigquery tarafından desteklenen metotlardan senkron sorgu yöntemi kullanılmıştır. Senkron sorgulamayı başlatmak için API vasıtasıyla “runQueryRpcAndPrint” metoduna sorgu cümlesi ve proje numarası string olarak gönderilir. Örnek Kod: /** * Runs a synchronous BigQuery query and displays the result. * * @param bigquery An authorized BigQuery client * @param projectId The current project id * @param query A String containing a BigQuery SQL statement * @param out A PrintStream for output, normally System.out */ static void runQueryRpcAndPrint( Bigquery bigquery, String projectId, String query, PrintStream out) throws IOException { QueryRequest queryRequest = new QueryRequest().setQuery(query); QueryResponse queryResponse = bigquery.jobs().query(projectId, queryRequest).execute(); if (queryResponse.getJobComplete()) { printRows(queryResponse.getRows(), out); if (null == queryResponse.getPageToken()) { return; } }
  • 18. Adım 5: Sorgu Sonuçlarının Gösterilmesi Sorgu tamamlandıktan sonra API üzerinden sorgu sonuçları JSON formatında dönmektedir. Uygulama tarafından servis tarafından gönderilen json formatındaki sorgu sonuçları ayrıştırılarak uygulama üzerinde gösterilir. Örnek Kod: private static void printRows(List<TableRow> rows, PrintStream out) { if (rows != null) { for (TableRow row : rows) { for (TableCell cell : row.getF()) { // Data.isNull() is the recommended way to check for the 'null object' in TableCell. out.printf("%s, ", Data.isNull(cell.getV()) ? "null" : cell.getV().toString()); } out.println(); } } } Bigquery Servisine Tarayıcı Üzerinden Erişim Sağlanması: Bigquery API üzerinde üçüncü parti uygulamanın erişimine izin vermesinin yanında veri yükleme, veri çıkarma, sorgu çalıştırma iş süreçlerinin yönetilmesi gibi birçok işlevin yapılabilmesine olanak sağlayan web arayüz biriminide kullanıcılarına sunmaktadır. https://bigquery.cloud.google.com/ adresi üzerinden kullanıcı bilgileri girilmek suretiyle bigquery yönetim konsoluna erişilebilmektedir. Bigquery Yönetim konsolu kullanılarak gerçekleştirilebilecek işlemler ana başlıkları aşağıda belirtilmiştir. Proje İşlemleri Projeler Arasında Geçiş Yapılması Tablo İşlemleri  Tablo İçeriğine Gözatma(Veri ,Şema)  Yeni Tablo Oluşturma,  Tablo Silme,  Tablo Kopyalama,  Tablo Üzerine Veri Ekleme,
  • 19. Sorgu İşlemleri  Sorgu Oluşturma,  Sorgu Çalıştırma,  Sorgu Sonuçlarının Tablo olarak kaydedilmesi  Sorgu Sonuçlarının CSV dosyası olarak kaydedilmesi (Sorgu sonucu 16.000 den küçükse)  Sorgu Tarihçesine Erişilmesi DataSet İşlemleri  Yeni DataSet Oluşturma  Dataset Silme  DataSet İçeriğine Gözatma,  Seçili Datasetin Kullanıcı Bazlı Paylaşımı Veri Dışarı Çıkarma İşlemleri:  Tablo içeriğinin Google Disk Sunucuları üzerine export edilmesi Bigquery Servisine Excel Üzerinden Erişim Sağlanması: Microsoft Excel aracı analiz vb. işler üzerine çalışılan sektörlerde oldukça yaygın olarak kullanılmaktadır. Bigquery tarafından sağlanan bu servisle excel sayfası üzerinden oluşturulan sorgular bigquery üzerinde çalıştırılabilmektedir. Bigquery Excel Connector özelliğini kullanabilmek için öncelikle aşağıdaki önkoşulların sağlanması gerekmektedir. Önkoşullar: https://bigquery-connector.appspot.com/download adresinden ilgili dosya (Microsoft Excel Web Sorgusu Dosyası) indirilir. https://bigquery-connector.appspot.com/ sayfasında Microsoft Excel Web Sorgusu Dosyasını kullanabilmek için “Creating a Key” bölümünden anahtar kod oluşturulur. İşlem Adımları: 1. Önkoşullar tamamlandıktan sonra boş bir excel sayfası açılır ve aşağıdaki görselde görüldüğü gibi sayfanın ilk üç satırına sırasıyla Bigquery üzerinde oluşturulmuş olan Proje Id numarası, iki numaralı önkoşul gerçekleştirildikten sonra elde edilen anahtar ve SQL sorgu cümlesi yazılır.
  • 20. 2. Excel Programı üzerinde Veri(Data) >>Var Olan Bağlantılar(Get External Data) Yolu izlenir. 3. Varolan Bağlantılar Penceresinde Daha Fazlası için Gözat (Browse More ) butonuna basılarak Önkoşul 1 de indirilen Microsoft Excel Web Sorgusu Dosyası gösterilmelidir.
  • 21. 4. Microsoft Excel Web Sorgusu Dosyası (connector.iqy) gösterildikten sonra açılan ekrandan bigquery üzerinden çekilen verilerin yerleştirileceği çalışma sayfası seçilir. 5. Excel Sayfasında daha önceden girmiş olduğumuz Project ID, Unique Key, Query değerleri sırasıyla seçilir.
  • 22. 6. Tüm parametrelerin excel üzerinde değerleri girildikten sonra bigquery üzerinde sorgu çalıştırılıp sonuçlar excel üzerinde seçili sayfada görüntülenmektedir.
  • 23. Üçüncü Parti Araçlar: Endüstride yaygın olarak kullanılmakta olan bir çok popüler Veri Yükleme, Veri Dönüştürme ve Görselleştirme araçları Bigquery yapısını desteklemektedir. Bu konuda Bigquery ile entegre çalışan popüler yazılımlar aşağıda belirtilmiştir. Görselleştirme ve İş Zekası Araçları Kategorisi: ETL (Veri Yükleme ve Dönüştürme) Kategorisi:
  • 24. İkinci Bölüm: Bildirinin bu bölümünde Google Bigquery Servisi ile uyumlu iş zekası çözümü BIME aracı ve kullanımı hakkında bilgi verilecektir. BIME Nedir: BIME geleneksel yüksek yatırım ve teknik altyapı gerektiren iş zekası çözümlerinin aksine hızlı analitik ve görselleştirme yeteneklerine sahip yeni nesil bir iş zekası modelidir. Bime SAAS tabanlı bir servistir. SAAS tabanlı olmasının getirdiği yetenekler sayesinde Bilme üzerinden online olarak veri kümelerine bağlanılıp veriler üzerinde sorgulama yapılabilmesine olanak sağlamaktadır. Bime üzerinde veri kümesi ile bağlantı kurulduktan sonra ilgili sorgular hızlı bir şekilde oluşturulup sonuçlar görselleştirilebilmektedir. Görselleştirilen sonuçlar hızlı ulaşılabilmesi için dashboard olarak adlandırılan izleme amaçlı ekranlara aktarılıp yetkili kullanıcıların erişimine açılabilmektedir. Bime kullanılarak var olan CRM, ERP vb. uygulamaların veri tabanlarına bağlanılıp online olarak istenen veriler kolaylıkla izlenebilmektedir. Bime anlam olarak “BI for me” kelimelerinini birleştirilmesi ile elde edilmiştir. BI (Businnes Intelligince) geleneksel iş zekası çözümlerinin aksine ek bir sitem kaynağına veya bilgisine ihtiyaç duymamaktadır. Bime teknik olarak bakıldığında Saas çözümüdür. Bu nedenle geleneksel çözümlerle kıyaslandığında daha erişilebilir bir çözümdür. Bime ile çok çeşitlik veri kaynaklarına bağlanmak oldukça kolaydır. Hem lokal kaynaklara(ilişkisel veri tabanları, excel dosyaları vb. ) hem de onlline veri kaynaklarına(google bigquery vb.) kolaylıkla erişilebilmektedir.
  • 25. BIME üzerinde veri analizi iki moda sahiptir 1. Memory Mode 2. Delegated Mode Memory mod ile kullanıcı tarafında memory üzerinde yer alan veri miktarını analiz edebilirken delegate mod da veritabanın kapasitesinin tamamı kullanılabilmektedir. Delegated Mod da kullanıcı öncelikle istekte bulunur. Bime kullanıcı isteğine göre SQL sorgularını oluşturur ve veri tabanına ilgili sorguyu gönderir sonucun dada dönen değerler üzerinde işlem yapmaktadır. Memory modda ise kullanıcı isteğinden sonra veri tabanındaki tüm verinin memory kapasitesi kadarı memory üzerine kaydedilir analiz memory üzerindeki veri üzerinden gerçekleştirilir.
  • 26. Delegated modun dezavantajları aşağıda belirtilmektedir. 1. Sadece sorgu sonucunun anlık görüntüsü alınabildiği için veri snapshot teknolojileri (Dejavu vb.) kullanılamayacaktır. 2. İlişkisel veritabanındaki yük arttırılacağı için sistemin yavaşlamasına neden olabilir. Bildirinin ilerleyen bölümlerinde bigquery üzerine yüklemiş olduğumuz veri üzerinde yapılan sorgulara ait sonuçların görsel olarak takip edilebilmesi için bime ile nasıl entegre edebileceğimiz hakkında bilgi verilecektir. http://www.bimeanalytics.com/ adresi üzerinden bime hesabı açıldıktan sonra kullanıcı konsoluna erişim linki sistem tarafından oluşturulur. Sistem üzerinden kullanıcıya özel oluşturulan link vasıtasıyla bime yönetim konsoluna erişilmektedir.
  • 27. Konsol üzerinde Create Connection butonun basılarak açılan sayfadan bağlantı yapılmak istenen data kaynağı seçilir. Açılan Pencerede veri kaynağını Bigquery olarak seçiyoruz. Veri kaynağı seçildikten sonra açılan pencerede Google Bigquery hesabına bağlanabilmemiz için kullanıcı bilgileri girilerek bigquery üzerinde analiz yapılmak istenen veri kaynağına bağlanır.
  • 28. Şema tabı üzerinden veri kaynağı üzerindeki hangi alanların analiz sekmesinde görünür olup olmayacağı belirlenir. Bu aşamadan sonra Kaydet butonuna basılarak Analiz Sekmesine geçilir.
  • 29. Veri bağlantısı sağlandıktan sonra tüm veri üzerinde bime arayüzü üzerinden istenilen sorgulamalar yapılabilir. Analiz ekranı tarafından sunulan görsel ara yüz üzerinden istenen sorgular sürükle-bırak yöntemi ile kolaylıkla oluşturulabilmektedir. Örnek Proje: Bildirinin önceki bölümlerinde anlatıldığı gibi Bime ara yüzü üzerinden bağlantı şeklini BigQuery olarak seçip, genel sekmesinde google hesabımıza bağlanmak için sahip olduğumuz kullanıcı bilgilerini giriyoruz. Sonraki adımda bağlantı sağlandıktan sonra Table alanından açılan seçeneklerden sırasıyla publicdata:samples seçeneğini ardından da shakespeare isimli örnek tabloyu seçiyoruz. Analiz sekmesine geçtiğimizde artık aşağıdaki gibi seçmiş olduğumuz shakespeare isimli tablo ile ilgili alanların geldiği görülür. Bu arayüz vasıtasıyla sürükle bırak işlemi ilgili kolonları oluşturmak istediğimiz sorguya göre ilgili Rows,Columns,Explode,Measure,Filter alanlarına taşıyarak sorgumuzu oluşturabiliriz. Shakespeare eserlerinde eser adı ve eserde geçen kelime sayısına göre örnek analiz sonucu aşağıdaki resimde görülmektedir.
  • 30. Analiz ekranında Rows,Explode,Measures,Columns,Filters olmak üzere 5 adet eksen vardır. Explode alanı sürüklenen alan içerisindeki her bir değer için ayrı ayrı gösterimin istendiği durumlarda kullanılır. Measures Alanı ile alan içerisindeki değer üzerinde hesaplama yaptırılmak istendiği durumlarda kullanılır. Measure alanı içerisinde açılır menü üzerinden aşağıdaki seçenekler seçilebilmektedir. Verilen örnekte shakespeare eserlerinde geçen kelimelerin toplam sayısı görülmek istendiği için “SUM” opsiyonu seçilmiştir. Filter Opsiyonu sorgu sonucunda gösterilecek alanlar seçilebildiği alandır.
  • 31. Bime tarafından kullanıcılara sunulan önemli bir yenilikte sorgu sonuçlarının grid dışında farklı grafik görselleri üzerinde gösterilmesine olanak sağlamasıdır. Analiz ekranında Grid butonu tıklanmak suretiyle sorgu sonuçlarının seçili grafik görseli üzerinde görülebilmesi sağlanabilmektedir. Yukarıdaki resim dede görüldüğü gibi Bar grafikten Geo Spatial olarak gösterilmesine kadar çok çeşitli gösterim alternatifleri sistem tarafından sağlanabilmektedir. Veri Kümesi ile yapılan analizler sonucunda elde edilen örnek gösterimler aşağıda gösterilmiştir. Pie Gösterimi:
  • 32. Bar Gösterimi: Gauge Gösterimi Funnel Gösterimi:
  • 33. DASHBOARD: Bime sistemi Dashboard olarak isimlendirilen izleme ekranları sayesinde yaratılarak biden çok veri kaynağı üzerinde gerçekleştirilen eş zamanlı sorgu sonuçları seçilen grafiksel gösterimle son kullanıcıya sunulabilmesine imkan vermektedir. Ara yüz üzerinden dashboard ekranlarının oluşturulması, düzenlenmesi işlemleri gerçekleştirilebilmektedir. Sistem üzerinde dashboard ekranı oluşturmak veya varolan sorgu sonucunu dashboard ekranı olarak kaydetmek için Sorgu sonucu tamamlandıktan sonra Save butonuna basılır ve çıkan menüden ToDashboard opsiyonu seçilmelidir. Sistemin oluşturulan Dashboard ekranının public erişime açılabilmesinin yanında sistem tarafından yetki verilen kullanıcılarında erişimi sağlanabilmektedir.
  • 34. Üçüncü Bölüm: Bildirinin bu bölümünde google bigquery üzerinde gerçekleştirilen verilerin android tabanlı mobil cihazlar üzerinden nasıl erişilebileceği üzerine bilgi verilecektir. Google bigquery veri tabanı üzerinde gerçekleştirdiğimiz sorguları Servis tabanlı İş zekası çözümü olarak geliştirilen BIME isimli servisi kullandık. Görselleştirdiğimiz verilere android tabanlı cihazlar üzerinden erişebilmemiz için iki yöntem kullanabiliriz. Yöntem 1 : BIME üzerinde bildirinin BIME ileilgili bolumunda anlatıldığı gibi sorgu sonuclarının dashboard olarak kaydedilip ilgili linki açan basit bir android web browser uygulaması geliştirmek suretiyle Yöntem 2: Google play üzerinden https://play.google.com/store/apps/details?id=air.com.bimeanalytics.bimemobile linki üzerinden BIME servisini kullanabilmek için geliştirilen uygulamayı tabletimize kurmak suretiyle android tabanlı mobil cihaz üzerinden erişebiliriz. Uygulama Örnek Görüntüleri: