Oracle mı yoksa MySQL mi, yoksa kendi inşa ettikleri bir şey mi?
Oracle mı yoksa MySQL mi, yoksa kendi inşa ettikleri bir şey mi?
Yanıtlar:
Yapısal Veriler için Dağıtılmış Depolama Sistemi
Bigtable, çok büyük bir boyuta ölçeklenmek üzere tasarlanmış yapılandırılmış verileri yönetmek için dağıtılmış bir depolama sistemidir (Google tarafından oluşturulmuştur): binlerce emtia sunucusundaki petabayt veri.
Google'daki birçok proje, web dizini oluşturma, Google Earth ve Google Finans dahil olmak üzere verileri Bigtable'da depolar. Bu uygulamalar, hem veri boyutu (URL'lerden web sayfalarına uydu görüntülerine kadar) hem de gecikme gereksinimleri (arka uç toplu işlemeden gerçek zamanlı veri sunumuna) açısından Bigtable'a çok farklı talepler getiriyor.
Bu çeşitli taleplere rağmen, Bigtable tüm bu Google ürünleri için başarılı bir şekilde esnek ve yüksek performanslı bir çözüm sağlamıştır.
Bazı özellikler
Mimari
BigTable ilişkisel bir veritabanı değildir. Birleştirmeleri veya zengin SQL benzeri sorguları desteklemez. Her tablo çok boyutlu seyrek bir haritadır. Tablolar satır ve sütunlardan oluşur ve her hücrenin bir zaman damgası vardır. Farklı zaman damgalarına sahip bir hücrenin birden fazla sürümü olabilir. Zaman damgası, "bu Web sayfasının 'n' sürümlerini seçin" veya "belirli bir tarih / saatten daha eski hücreleri sil" gibi işlemlere izin verir.
Büyük tabloları yönetmek için Bigtable tabloları satır sınırlarına böler ve tablet olarak kaydeder. Bir tablet yaklaşık 200 MB'dir ve her makine yaklaşık 100 tablet kaydeder. Bu kurulum, tek bir tablodaki tabletlerin birçok sunucu arasında yayılmasını sağlar. Aynı zamanda ince taneli yük dengelemesine de izin verir. Bir tablo çok fazla sorgu alıyorsa, diğer tabletleri tutabilir veya meşgul tablosunu o kadar meşgul olmayan başka bir makineye taşıyabilir. Ayrıca, bir makine kapanırsa, bir tablet diğer birçok sunucuya dağıtılabilir, böylece belirli bir makine üzerindeki performans etkisi minimum olur.
Tablolar değişmez SSTables ve kütük kuyruğu (makine başına bir kütük) olarak saklanır. Bir makinenin sistem belleği bittiğinde, Google'a özel sıkıştırma teknikleri (BMDiff ve Zippy) kullanarak bazı tabletleri sıkıştırır. Küçük işlemler yalnızca birkaç tablet içerirken, büyük işlemler tüm tablo sistemini içerir ve sabit disk alanını kurtarır.
Bigtable tabletlerinin yerleri hücrelerde saklanır. Herhangi bir tabletin aranması üç katmanlı bir sistem tarafından gerçekleştirilir. Müşteriler sadece bir tane olan bir META0 tablosuna işaret ederler. META0 tablosu, aranan tabletlerin yerlerini içeren birçok META1 tabletini takip eder. Hem META0 hem de META1, sistemdeki darboğazları en aza indirmek için ön getirme ve önbelleğe alma işlemlerinden yoğun şekilde yararlanır.
uygulama
BigTable, günlük ve veri dosyaları için bir destek deposu olarak kullanılan Google Dosya Sistemi (GFS) üzerine kurulmuştur . GFS, tablo verilerini sürdürmek için kullanılan Google'a özel bir dosya biçimi olan SSTables için güvenilir depolama alanı sağlar.
BigTable'ın yoğun şekilde kullandığı bir diğer hizmet de , yüksek oranda erişilebilir, güvenilir dağıtılmış bir kilit hizmeti olan Chubby'dir . Chubby, istemcilerin bir kilit almasına izin verir, muhtemelen bazı meta verilerle ilişkilendirir ve canlı mesajlarını Chubby'ye geri göndererek yenileyebilir. Kilitler, dosya sistemi benzeri bir hiyerarşik adlandırma yapısında saklanır.
Bigtable sisteminde üç ana sunucu türü vardır :
Google'ın araştırma belgesinden bir örnek:
Web sayfalarını depolayan örnek bir tablonun bir dilimi. Satır adı, tersine çevrilmiş bir URL'dir . İçindekiler sütun ailesi sayfa içeriğini içerir ve tutturucu sütun ailesi , sayfaya başvuran tüm tutturucuların metnini içerir . CNN'in ana sayfasına hem Sports Illustrated hem de MY-look ana sayfaları referans verir, bu nedenle satır
anchor:cnnsi.com
ve adında sütunlar içeriranchor:my.look.ca
. Her çapa hücresinin bir sürümü vardır ; içindekiler sütun vardır üç versiyonu damgaları det3
,t5
vet6
.
API
BigTable'a tipik işlemler, tablo ve sütun ailelerinin oluşturulması ve silinmesi, veri yazılması ve bir satırdan sütunların silinmesidir. BigTable bu işlevleri bir API'deki uygulama geliştiricilerine sağlar. İşlemler satır düzeyinde desteklenir, ancak birkaç satır tuşunda desteklenmez.
İşte araştırma belgesinin PDF'sine link .
Burada , Washington Üniversitesi'ndeki bir konferansta Google'ın Jeff Dean'ini gösteren ve Google'ın arka ucunda kullanılan Bigtable içerik depolama sistemini tartışan bir video bulabilirsiniz .
Kendilerini inşa ettikleri bir şey - buna Bigtable deniyor.
http://en.wikipedia.org/wiki/BigTable
Veritabanında Google tarafından bir makale var:
Spanner , Google'ın BigTable'ın halefi olan global olarak dağıtılmış ilişkisel veritabanı yönetim sistemidir (RDBMS) . Google, her tablonun birincil bir anahtarı olması gerektiğinden bunun saf bir ilişkisel sistem olmadığını iddia ediyor.
İşte makalenin linki.
Spanner, Google'ın ölçeklenebilir, çok sürümlü, global olarak dağıtılmış ve senkronize olarak çoğaltılmış veritabanıdır. Verileri küresel ölçekte dağıtan ve harici olarak tutarlı dağıtılmış işlemleri destekleyen ilk sistemdir. Bu makale Spanner'ın nasıl yapılandırıldığını, özellik setini, çeşitli tasarım kararlarının altında yatan mantığı ve saat belirsizliğini ortaya çıkaran yeni bir zaman API'sini açıklamaktadır. Bu API ve uygulaması, dış tutarlılığı ve çeşitli güçlü özellikleri desteklemek için kritik öneme sahiptir: geçmişte engellemeyen okumalar, kilitsiz salt okunur işlemler ve tüm Spanner'da atom şeması değişiklikleri.
Google tarafından icat edilen bir başka veritabanı Megastore . İşte özet:
Megastore, günümüzün etkileşimli çevrimiçi hizmetlerinin gereksinimlerini karşılamak için geliştirilmiş bir depolama sistemidir. Megastore, NoSQL veri deposunun ölçeklenebilirliğini geleneksel bir RDBMS'nin rahatlığıyla yeni bir şekilde harmanlıyor ve hem güçlü tutarlılık garantileri hem de yüksek kullanılabilirlik sağlıyor. Verilerin ayrıntılı bölümleri içinde tamamen serileştirilebilir ACID semantiği sağlıyoruz. Bu bölümleme, her bir yazmayı geniş bir alan ağı üzerinden makul bir gecikme ile senkronize olarak çoğaltmamıza ve veri merkezleri arasında kesintisiz yük devretmeyi desteklememize olanak tanır. Bu makalede Megastore'un anlambilimi ve çoğaltma algoritması açıklanmaktadır. Ayrıca, Megastore ile oluşturulmuş çok çeşitli Google üretim hizmetlerini destekleme deneyimimizi de açıklamaktadır.
Diğerlerinin de belirttiği gibi Google, BigTable adlı kendi geliştirdiği bir çözümü kullanıyor ve bunu gerçek dünyaya açıklayan birkaç makale yayınladılar.
Apache halkı, HBase adı verilen bu makalelerde sunulan fikirlerin bir uygulamasına sahiptir . HBase, sitelerine göre "çok miktarda veri işleyen uygulamaları kolayca yazıp çalıştırabilmenizi sağlayan bir yazılım platformudur." Adlı daha büyük Hadoop projesinin bir parçasıdır . Testlerden bazıları oldukça etkileyici. Siteleri http://hadoop.apache.org adresindedir .
Google, tüm ana uygulamaları için BigTable kullanmasına rağmen, diğer (belki de küçük) uygulamalar için MySQL'i de kullanır .
Ve BigTable'ın ilişkisel bir veritabanı (MySQL gibi) değil , çok farklı özelliklere sahip büyük (dağıtılmış) bir karma tablo olduğunu bilmek de kullanışlı olabilir . BigTable ile (sınırlı bir sürüm) Google AppEngine platformunda kendiniz oynayabilirsiniz .
Yukarıda belirtilen Hadoop'un yanında, BigTable ile aynı sorunları (ölçeklenebilirlik, kullanılabilirlik) çözmeye çalışan başka birçok uygulama var. Dün burada güzel bir blog yazısı gördüm .
Google öncelikle Bigtable kullanıyor.
Bigtable, çok büyük bir boyuta ölçeklendirilmek üzere tasarlanmış yapılandırılmış verileri yönetmek için dağıtılmış bir depolama sistemidir.
Daha fazla bilgi için belgeyi buradan indirin .
Google ayrıca bazı uygulamaları için Oracle ve MySQL veritabanlarını kullanır.
Ekleyebileceğiniz daha fazla bilgi çok takdir edilmektedir.
Google also use Oracle
- referans gerekli.
Google hizmetleri çok dilli bir kalıcılık mimarisine sahiptir. BigTable, YouTube, Google Arama, Google Analytics vb. Hizmetlerinin çoğundan yararlanır. Arama hizmeti başlangıçta MapReduce'u dizin oluşturma altyapısı için kullandı, ancak daha sonra Kafein sürümü sırasında BigTable'a geçti.
Google Cloud veri mağazasında, hem dahili hem de harici kullanıcılarla karşılaşan Google'da 100'den fazla üretim uygulaması vardır. Gmail, Picasa, Google Takvim, Android Market ve AppEngine gibi uygulamalar Cloud Datastore & Megastore'u kullanıyor.
Google Arama Trendleri akış işleme için MillWheel kullanır. Google Ads başlangıçta MySQL kullandı, daha sonra özel bir yazılı dağıtılmış ilişkisel veritabanı olan F1 DB'ye geçti. Youtube Vitess ile MySQL kullanıyor. Google, Google Dosya Sistemi'nin yardımıyla emtia sunucularında fazladan veri depolar.
Kaynak: Google Veritabanları: Google Hizmetleri Petabyte-Exabyte Ölçek Verilerini Nasıl Depolar?
YouTube Veritabanı - Depolama Alanı Bitmeden Nasıl Bu Kadar Çok Video Saklar?