:::: MENU ::::

Sysdig Nedir ? Sysdig Kullanarak Sunucu İzleme

sysdig_logo

Sysdig Nedir ?

Bazı durumlarda bir işlem tarafından yapılan ve alınan sistem çağrılarını takip etmek gerekebilir bunun için  akla gelen ilk şey nedir? Muhtemelen haklı olarak düşünceniz strace olur ve haklısın. strace hakkında bilgi sahibi değilseniz ilgili paylaşımımı inceleyebilirsiniz.

Hangi araç ile komut satırından ham ağ trafiğini izlemek için kullanırsınız? Hakkında bilgi sahibiyseniz  tcpdump , kullanarak yine doğru bir seçim yapmış oluruz. (unix’de her şey bir dosyadır)

Açık dosyaları izlemek zorunda kaldığımızda ise ilk kullanacağımız lsof‘dur. lsof ile daha önce payaştığım yazıya göz atabilirsiniz.

Sysdig, açık kaynak kodlu linux (RHE,Debian,Container),OSX ve Windows sistemlerde çalışan ve strace , tcpdump ve lsof gibi (strace+tcpdump+lsof+iftop+htop) sysadmin’in sıklıkla kullandığı klasik ama gerçekten harika araçları tek çatıda toplayan ve  farklı birçok  kabiliyet ve özelliğe sahip gelişmiş bir araçtır.

Ayrıca, çok güzel de bir filtreleme sistemine sahiptir. Bu şekilde spesifik olarak system çağrıların(syscall) ve olayların(event) belirttiğiniz kriterlere göre görüntülenmesini veya istersek bir dosyaya(trace file) yazılmasını sağlayabiliriz. Bu trace file’ları MacOS X ya da Windows gibi farklı platformlar üzerinde de analiz edebiliriz.

Sysdig’in bir diğer güzel özelliği ise “chisels” adını verdikleri analiz scriptleridir. Bu scriptler toplanan verinin anlamlandırılması için kullanılan Lua dilinde yazılmış scriptlerdir ve sisteminiz hakkında detaylı bilgi edinmek için kullanabileceğiniz ve analiz ihtiyaçlarınıza göre kendi scriptlerinizi geliştirebileceğiniz bir mekanizmadır. Yazının sonunda örnekler ile bu kısmı daha iyi analayacaksınız.

Bu yazıda sysdig ile Linux sistem izleme ve sorun gidermek için kurulum ve temel kullanımını inceleyeceğiz.

Sysdig Kurulumu

Bu yazı için ben, kısalık ve kolaylık uğruna resmi internet sitesinde açıklanan otomatik yükleme işlemini kullanmayı tercih ettim.

Sysdig kurulumu gerçekleştirmek için sudo olarak aşağıdaki komutu çalıştırmanız yeterli oluyor. Herşey otomatik olarak kuruluyor. Tüm kurulum seçenekleri için sayfayı inceleyebilirsiniz.

Sysdig Kullanımı

Yükleme tamamlandıktan sonra, sysdig’in en basit (primitive) kullanımı komut satırından doğrudan sysdig komutunu çalıştırmaktır.

Bu şekilde o an çalışan sistem çağrıları ve event’ler ekrandan akacaktır. Bu çıktıda her bir olay bir satır olacak şekilde görüntülenmektedir ve her bir satırda aşağıda sıralaması verilen bilgiler ekrana basılacaktır:

İlgili bilgilerin açıklaması da şu şekildedir:

  • evt.num     :  Event numarası
  • evt.time     : Event tarihi
  • evt.cpu      : Event’in hangi kaç numaralı CPU core üzerinde çalıştığı
  • proc.name: Süreç ismi.
  • thread.tid : Thread ID ( tek thread’li süreçler için PID)
  • evt.dir        : Event yönü, giriş eventleri için > ve çıkışlar için <
  • evt.type      : Event tipi, örm: ‘open’, ‘read’, ‘write’
  • evt.args      : event’in aldığı argüman.

Sysdig Filtreleme (class.field) Parametreleri

Sysdig’i yukarıda verilen şekilde tüm sistem olaylarını görüntüleyecek şekilde kullanmak aynı anda binlerce olayın ekrandan akıp gitmesine ve bu bilgi akışı içerisinde kaybolup gitmenize neden olacaktır; işte strace’den alışık olduğumuz bu verimsiz durumu ortadan kaldırmak için sysdig’in çok gelişmiş bir filtreleme sistemi bulunmaktadır.

Bu sistem sayesinde binlerce sistem çağrısını en ince ayrıntısına kadar filtreleyerek spesifik aramalar yapabiliriz.

Örnek olarak vim komutuna ait aktiviteyi görüntülemek için sysdig’i aşağıdaki şekilde kullanabilirsiniz:

Yukardaki komutu verip aşağıdaki gibi bir vim komutu çalıştırırsanız.

Aşağıdaki şekle benzer bir çıktı görürsünüz.

Sysdig’in fitreleme yapısı standart karşılaştırma operatörlerini ( =, !=, <, <=, >, >= ) ve boolean operatörleri (“and”, “or” ve “not”) desteklediği için filtrelemeyi genişletmek çok kolaydır.

Örnek olarak cat ve vim komutunun aktivitelerini görüntülemek için komutu şu şekilde kullanmak mümkündür:

ya da ping haricindeki tüm diğer süreçlerin kapadığı dosyaları görüntülemek için örnek şu şekildedir:

Tüm filtreleme (class.field) seçeneklerini aşağıdaki komut ile görebiliriz:

Sysdig Kullanışlı Örnekler

Belirli bir dizin altında işlem yapan süreçleri görüntülemek için:

Bellibir süreç haricinde dosyalar üzerinde aktivite gerçekleştiren süreçler ve yaptıkları işlemler:

Java ve MySQL süreçlerine ait aktivite:

Komutların aldığı parametreler üzerinden filtreleme yapmak için proc.args filtresi yani class.filed’i kullanılmaktadır.

Örnek olarak parametre olarak www.omeroner.com alan bir uygulamanın hareketlerini izlemek için (örn: dig www.omeroner.com)

Spesifik bir ip adresi tarafından yapılan bağlantılar sonucu oluşan ve sshd süreci ile alakalı olmayan aktiviteyi incelemek için:

Mysql dışındaki süreçler tarafından karşılanan gelen network bağlantılarını incelemek için:

Belli bir  kullanıcıya ait tüm aktivitenin izlenmesi:

Belli bir gruba ait tüm aktivitenin izlenmesi:

Event tipine göre çağrıları görüntülemek için: (LINUX System Call Quick Reference için bu dosyayı inceleyebilirsiniz.)

Tüm event listesini görmek için:

Sysdig Çıktı Formatlarını Düzenleme

Sysdig ile filtreleme sonuçlarının  çıktılarını customize edebililiyoruz. Örnek olarak event tipi chdir (change dir) olan sistem çağrılarını, komutu (cd) çalıştıran kullanıcı ve ilgli dizini görüntülemek üzere formatlı bir şekilde ekrana basmak için şu komut kullanılabilir:

shell üzerinden gerçekleştirilen tüm komutları, kullanıcı, komut ve komut agrümanını içerecek şekilde ekrana basmak için:

Sysdig ile Trace Dosyaları

Yazının başında’da ifade ettiğim gibi sysdig ile elde ettiğimiz sonuçları daha sonra incelemek için bir dosyaya (trace file) yazdırabiliriz.

Örnek olarak tüm sysdig çıktısını trace.scap dosyasına yazılması için kullanılacak komut:

Sadece 50 adet event’in ilgili dosyaya yani trace.scap yazılmasını sağlamak için komut:

Trace dosyasına yazdırdığımız bir sysdig çıktılarını okumak için kullanılacak komut:

 

Sysdig ‘de Chisels Kullanımı

chisels , sysdig üzerinden elde edilen verinin anlamlandırılması üzere kullanılan scriptlere verilen addır ve öntanımlı olarak bir çok chisel bulunmaktadır.

Öncelikle bu chisel’lerin bir listesini -cl parametresi kullanarak görebiliriz:

chisel’ler hakkında daha detaylu bilgi almak üzere -i parametresi kullanılabilir. Örnek olarakbottlenecks isimli chisel’in ne iş yaptığına bakmak için aşağıdaki komut kullanılabilir:

 

Sysdig  Chisels Kullanışlı Örnekler

Ençok cpu kullanan süreçleri görmek için:

1 ms’den uzun süren I/O aktivitesi:

1 ms’den uzun süren network aktivitesi:

Syscall bazında en çok error üreten süreçler:

Süreçlere ait standart çıktıları ekrana basmak için (class.field kullanılabilir):

Yazma + Okuma anlamında en çok disk I/O’nun yapıldığı dosyalar:

En çok disk I/O üreten (Read + Write) süreçler:

Byte cinsinden toplam I/O miktarı:

Hangi süreçlerin hangi log dosyalarına ne yazdığının ekrana basılması:

Syslog’a yazılan her mesajın görüntülenmesi:

Spesific bir ip’nin ürettiği trafiğin görüntülenmesi (dikkat edeceğiniz üzere chisel’leri filtreleme seçenekleri kullanabiliyoruz):

Spesifik bir port üzerinde gerçekleşen trafiğin görüntülenmesi:

Byte cinsinden en çok trafik üreten bağlantıların listenmesi:

En çok trafik üreten portların listelenmesi:

En çok trafik üreten süreçlerin görüntülenmesi:

Sistemdeki kullanıcılara ait aktivitenin interaktif olarak izlenmesi:

Örnekleri çoğaltmak kendinize kalmış ve daha fazlası için bu sayfayı ziyaret edebilirsiniz.

 

 


HTTP İsteklerinin Zamanlamalarını cURL İle Görme

 Basit bir istek 4 temel aşamadan oluşur,


Bazen sayfa yüklenme sürelerinin tespitini (daha doğrusu sayfanın indirilme )sürelerinin tespiti için curl mükemmel bir tercih olabilir.

Basit Kullanım:

ZSH ile döngüye sokabiliriz:

BASH ile:

CURL komutu için varsayılan davranış GET’dir, ancak POST, DELETE PUT ve daha karmaşık istekleri yapabilirsiniz. Eğer cURL ‘e aşina değilseniz, başlamak için en iyi yer manpage ‘dir.

Bu şekilde HTTP zamanlama testi için bir “şablon” oluşturabilirsiniz :

Şablon dosyası olarak  yukarıdaki içerik ile  “curl-format” adında dosya oluşturup bu dosya ile bir istek yapabiliriz. Aşağıdaki gibi dns araması,transter öncesi,yönlendirme,toplam süre gibi zamanlamaları ayrı ayrı görebiliriz.

Options:

  • -w “@curl-format”Biçim dosyası olarak curl-format’ın kullanma cURL söyler
  • -o /dev/null isteğin output’unu /dev/null’ a yönlendirir.
  • -s  ilerleme çubuğu göstermemek için kullanılır.
  • http://www.mynet.com/ istek yapılan URL..

Daha ayrıntılı bir sonuç arıyorsanız Apache Benchmark deneyebilirsiniz: Daha önceki paylaşımımda ab ile ilgili yazımı inceleyebilirsiniz.



Kubernetes Cluster Kurulumu: Admin Node Yapılandırma

Kubernetes containerized uygulamaların dağıtımını,düzenlenmesini, ölçeklendirme ve yönetimini otomatikleştirmek için kullanılan açık kaynak bir sistemidir.

kubernetes

Anlatmaya çalışacağım Kubernets cluster yapısı bir Admin Node iki 2 Container Node şeklinde bir yapı olacak.

Bu bölümde admin node’u yapılandırılalım başka bir yazıda node’ların yapılandırılmasından bahsedeceğim.

Kubernetes architecture diyagramı aşağıdaki gibidir.

kubernetes-architecture-diagram

[1] Gerekli paketleri yükleyin

 [2] Kubernetes yapılandırın. Aşağıdaki eklemeleri ve değişiklikleri config dosyasında yapalım.

Servisler çalıştıralım ve başlangıça ekleyelim.

[3] Flannel Ağ yapılandırma.

Konteyner Düğümler içinde kullanılacak istediğiniz ağ aralığı belirtin

[4] Eğer tüm yapılandırmalar doğru bir şekilde uygulandı ise aşağıdaki şekilde bir ekran çıktısı görmemiz gerekiyor.

 

 


Centos 7 Üzerine Cockpit Kurulumu

Cockpit ile kolayca web tarayıcısı üzerinden GNU/Linux sunucularını yönetebilirsiniz. Docker sistem kullanıyorsanız docker sistemlerinizide cockpit üzerinden kolayca yönetebilirsiniz.

Centos 7 Üzerine Cockpit Kurulumu

[1] Cockpit Kurulumu


[2] Web tarayıcısı ile “https: //(Sunucunun adı veya IP adresi):9090/” , daha sonra cockpit giriş formu görüntülenir.Aşağıdaki gibi mevcutda kullanılan bir kullanıcı ile oturum açın.Bu örnek root kullanıcı ile gösterir

cockpit_0

[3] Cockpit ana sayfası. Bu ekran üzerinden sistemi yönetmek mümkündür.

cockpit_1

[4] Sol menüdeki “Services”  bölümünden, Sistem hizmetlerini yönetmek mümkündür.

cockpit_2

[5] Sol menüdeki “Containers” bölümünden,  Docker container’ları yönetmek mümkündür.

cockip_3

[6] Sol menüdeki  “Log” bölümünden, Sistem günlüklerini(loglarını) yönetmeniz mümkündür.

cockpit_4

[7] Sol menüdeki “Networking” bölümünden,  Ağ ayarlarını ve yapılandırmalarını yönetmeniz mümkündür.

cockpit_5

[8]Sol menüdeki “Storage” bölümünden,  Depolama ayarlarını ve yapılandırmalarını yönetmeniz mümkündür.

cockpit_7

[9]Sol menüdeki “Tools-Accounts” bölümünden,  Kullanıcı hesaplarını yönetmek mümkündür.

cockpit_6

[10] Sol menüdeki  “Terminal” bölümünden, doğrudan komutlar ile sistemi yönetmek mümkündür.

cockpit_8


389 Directory Server ve Client Kurulumu ve Yapılandırılması

389 Directory Server ve Client Kurulumu ve Yapılandırılması için aşağıdaki adımları takip edebilirsiniz.

SERVER KURULUMU VE YAPILANDIRMASI

Arge Ortamı

Master-Slave yapılandırması için yukarıdaki host bilgililerini kullanacağız.

Sistem üzerinde ön hazırlıklar ardından kuruluma geçebiliriz;

Aşağıdaki adımları cevaplayarak kurulumu tamamlayabiliriz.

Kurulumu tamamladık. Kurulum log dosyası; Log file is ‘/tmp/setupZKynnZ.log’. Sunucu üzerinde son ayarlamaları yapalım ve ardından servisin çalışıp çalışmadığı kontrolünü yapalım.

Son olarak gui bağlantısını yapabiliriz. 389 console’a erişebiliriz.

Ardından açılan pencerede;

ldap389_1

ldap389_1

SSH-PUBLIC KEY YAPILANDIRMASI

Server Tarafı

SSH-PUBLIC Key yapılandırması için Ldap master sunucuda aşağıdaki ldif uzantılı dosyayı;

aşağıdak belirtilen içerik ile oluşturuyoruz.

Dosya üzerindeki düzenlemeleri yapıp değişikliğin aktif olması için servisi restart ediyoruz.

Ldap gui üzerinden ssh-public-key tanımlayacağımız kullanıcın özelliklerinden sırasıyla;

Object Class –> Add Value –> ldappublickey –> OK
Add Attribute –> sshpublickey –> OK
Ardından kullanıcı tarafından oluşturulan public-key girişi yapılır.

ldap389_3

 

 

ldap389_4

 

Client Tarafı

SSH-PUBLIC Key tanımlaması için client tarafında ssh servisi üzerinden yapılacak değişiklikler.

get-sshkey-from-ldap.sh dosyasının içeriği;

dosya yetkilendirmeleri ve ldap üzerindeki bir user ile test edilmesi.

SSL YAPILANDIRMASI

Directory Server için;

Sertifika listesini görmek için;

GUI üzerinden ssl aktif etmek için sırasıyla;

Directory Server –> Configuration -> Encryption
Enable SSL for this server checkbox’ını seçiyoruz.

ldap389_5

Sonrasında servisi restart ettiğimizde bize ssl sertifikası sırasında oluşturduğumuz parolayı soracak.

Şifre sormadan directory server servisi restart etmek için;

SSL port testi;

Client üzerinden SSL ile bağlanmayı test etmek için;

Administrator Server için;

Sertifika listesini görmek için;

GUI üzerinden ssl aktif etmek için sırasıyla;

Administrator Server –> Configuration -> Encryption
Enable SSL for this server checkbox’ını seçiyoruz.

ldap389_6
Sonrasında servisi restart ettiğimizde bize ssl sertifikası sırasında oluşturduğumuz parolayı soracak.

Şifre sormadan directory server servisi restart etmek için;

CLIENT KURULUMU VE YAPILANDIRMASI

NSLCD SERVICE İLE YAPILANDIRMA

veya authconfig-tui ile yapılandırabiliriz.

nslcd config dosyasına aşağıdaki satırları eklemeliyiz.

ldap config dosyasına aşağıdaki satırları eklemeliyiz.

ssl için

clear text control için

ssl için ldap ve nslcd config dosyalarında yapılacak düzenlemeler

SSSD SERVICE İLE YAPILANDIRMA

Örnek sssd config dosyası

kontrol için

 


ESX’de Grep ile NIC Driver Bilgisi Okuma

 ESX üzerindeki tüm sanal sunucuların NIC Driver bilgilerini grep kullanarak görmek için aşağıdaki komut/script kullanabiliriz

ESX’de Grep ile NIC Driver Bilgisi Okuma için:

Aşağıdaki script’i kullanabiliriz.

Yukardaki script çalıştırıldığında aşağıdaki gibi bir çıktı verecektir:


SendGrid ile Komut Satırından E-Posta Göndermek

Mail gönderimi oldukça zahmetli ve zor bir iş özellikle mailleri kullanıcının gelen kutusu’na düşürmek (inbox) oldukça zorlaştı. Bundan dolayı mail’lerinizi sadece bu işi yapan platformlar üzerinden göndermek isteyebilirsiniz. Sendgrid, mail gönderimlerinizi yapabileceğiniz birçok platformdan biridir. Benim tercihim Sendgrid oldu. Aylık 12 bin mail’e kadar gönderim ise ücretsiz. Sendgrid API gayet başarılı. Projenize entegre etmek’de gayet basit.

Sendgrid API dokümanları için sayfayı ziyaret edebilirsiniz.

SendGrid ile Komut Satırından E-Posta Göndermek;

Shell script olarak değişken kullanarak göndermek için,


Terraform Nedir? Nasıl Kurulur?

readmeTerraform nedir?

Terraform, sistem altyapınızı(infrastructure) inşa etmek, değiştirmek ve versiyonlamak için kullanılan geliştirilmeye hızla devam edilen güvenli ve verimli bir araçtır. Ayrıntılı bilgi ve gelişimi için bu sayfayı inceleyebilirsiniz.

Özellikle cloud provider’lardan aws kullanıyorsanız neredeyse tüm resource’ları (Infrastructure as Code) mantığı ile yönetebiliyorsunuz. Bunun yanında fiziksel makineleri,VM,network switchleri ve container’larıda yönetebilirsiniz. Ayrıca örnek vermem gerekirse CloudFlare,Atlas,DigitalOcean,Docker,Google Cloud,VMware vSphere,Azure,DNS gibi birçok provider ve in-house sistemleri yönetebilirsiniz. Tüm liste için bu sayfayı inceleyebilirsiniz.

Terraform Nasıl Kurulur?

Terraform şuan Mac OS X,FreeBSD,Linux,OpenBSD,Solaris,Windows sistemlerde kullanılabiliyor.Linux ve FreeBSD’de Arm işlemci desteğide var.

Ben kurulumu centos sistem üzerinde gerçekleştirdim fakat siz bu sistemlerden herhangi birinde kurulumu gerçekleştirebilirsiniz.

Bu sayfadan istediğimiz platform için kaynak dosyayı indirmemiz ve PATH ayarı yapmamız yeterli oluyor.

Linux/Mac için örnek PATH düzenlemesi.

daha sonrasında kurulumu verify  edebiliriz bunun için konsol’da

ekranını görüyorsak kurulum problemsiz tamamlanmıştır.

Örnek yapılandırma:

aws üzerinde instance oluşturmak.(Bunun için amazon hesabınızın olduğunu kabul ediyorum. Hesabınız yok ise bu adresten free tier hesap açabilirsiniz.)

tüm resource yönetimi için bu sayfayı inceleyebilirsiniz.


Bulut Bilişim Ne Ola Ki?

İnternet hızı ve kullanımı teknolojinin gelişmesiyle hergün hızla büyümekte ve yaygınlaşmakta. Balta girmemiş ormanlara bile artık internet erişiminin olması için çalışmalar yapılıyor. Bu doğrultuda hayatımızda kullandığımız herşey artık akıllı (smart) diye nitelendirdiğimiz türde olmaya başladı. Akıllı telefon, akıllı saat, akıllı evler,akıllı kıyafetler, akıllı arabalar vb.

Biraz önce dediğim gibi internet kullanımının artması ve kullandığımız herşeyin akıllanması sonucunda büyük dataların(big data) oluşması ve bu dataların büyüdükçe analiz edilmesi,işlenmesi ayrı bir dert olmaya başladı. Tüm bu gelişimlerle beraber altyapı maliyetleri,yönetilmesi ve sürekliliği içinde ihtiyaçlar artı ve bu ihtiyaçlar doğrultusundada yeni birçok hizmet türleri ortaya çıktı.

Tam bu doğrultuda, Bulut bilişim (Cloud computing) günümüzde bilişim dünyasında kullanımı gün geçtikçe artan ve yaygınlaşan bir hizmet türü olmaya başladı. Bulut Bilişim , kullanıcıların yerel konumlarında yazılım, veri erişimi veya servis altyapısı gerekmeksizin tüm ihtiyaçların hizmet olarak sağlanmasıdır. Günümüzde birçok şirket yöneticisi gerek güvenlik gerek ise gizlilikten ötürü altyapılarını cloud’a taşıma konusunda net bir karar ve fikir sahibi değiller. Özellikle ülkemizi yöneten kişilerin bu konuya olan yaklaşımlarını gördükçe.

Eski Bakan ve Şuanki Başbakan Binali Yıldırım’ın bulut bilişim hakkındaki yorumu;

‘herkes oraya bişey atıyo, gelen ordan işine yarayanı alıyo kullanıyo. ‘

‘abur cubur dolduruyosun, herkes ihtiyacını ordan alıyo.’

 Tabiki işler Başbakan Binali Yıldırım’ın ifade ettiği gibi bukadar basit ve kolay değil. Bulut Bilişimin ne olduğunu gösteren mantıksal şema aşağıdaki gibidir.

cloud_computing-svg

Bulut Bilişim’de çeşitli hizmet modelleri bulunmaktadır.

 

Bulut Bilişim hizmeti genel olarak;

olarak 3 şekilde sunulmaktadır.

 

Bu hizmetler arasındaki farkları uzun uzun anlatmaktansa aşağıdaki görsel ile işin özeti gayet iyi anlaşılıyor. Görselden anlaşılacağı üzere  IaaS hizmeti sistem yöneticilerini, PaaS hizmeti  uygulama geliştiricileri, SaaS hizmeti de daha çok son kullanıcıları hedef almaktadır. Daha sonraki paylaşımlarımda bu platformlar ile ilgili ayrıntılı bilgi vermeye çalışacağm.

bulut_bilisim_turleri


Google BigQuery Nedir?

Google BigQuery Nedir? Google Big Query google tarafından 2012 yılında başlatılan bulut bilişim(cloud service) 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.

Dremel, MapReduce gibi  ve dağıtık mimari üzerinde çok büyük verilerin kolay bir şekilde analiz edilebilmesini sağlayan bir sistemdir

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;

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.

bigquery

 

Yukarıdaki resimde de görüldüğü gibi milyonlarca kayıt bulunan bir tablodaki verilerden  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 A,B,CD,E 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.

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;

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;

Google ‘a göre Dremel büyük ölçekli sistemlerde test edilmiş tek metottur.

  • Ücretlendirme;

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 ÜCRETLENDİRME
Veri Kopyalama Ücretsiz
Veri Yükleme Ücretsiz
Veri Çıkarma Ücretsiz
Metadata Operasyonları(List, get, patch, update ve delete ) Ücretsiz
Veri Sakalama $0.02 per GB, Aylık
Streaming Kayıt Ekleme $0.01 per 200 MB
Query $5 per TB(ilk ay 1TB bedava)

Fiyatlandırma için sayfayı ziyaret edebilirsiniz.

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.


Sayfalar:1234567...17