SORU
7 EKİM 2009, ÇARŞAMBA


Birleşim olmadan hayat... anlayış ve genel uygulamalar

Bir sürü "BAW"nın (koca-web siteleri) kullanarak veri depolama ve alma teknikleri itimat büyük tablo ile dizin ve kullanma sorgular olmaz/olamaz kullanın Katılır sorgularını (BigTable, HQL, vs.) anlaşma ile ölçülebilirlik ve sharding veritabanları. Ne kadar çok varsa o çalışır ve veri varçokilgili?

Sadece bu katılmayı çok şey uygulama tarafında yapılması gereken tahminde bulunabilirim, ama bu pahalı olur değil mi? Eğer birkaç farklı tablolar için birkaç sorguları bilgileri derlemek için almak için yapmak zorunda ne? Birçok kez sadece kullanmaktan daha masraflı olmaya başladı birleştiren veritabanı vurmak değil mi? Ne kadar bağlıdır sanırım?

Ve yaygın olarak kullanılabilir ORMs için nasıl katılır kullanmak için yetersizlik ile başa çıkmak için eğilimi var mı? Yoğun kullanım bugün ORMs desteği var mı? Ya da verilerin bu seviyeye yaklaşmak için en projeleri kendi neyse rulo eğilimindedir?

Yani bu uygulanamaz herhangi bir geçerli proje yapıyorum ama bir şey oldu kafamda birkaç ay şimdi ben sadece spekülasyon olarak ne "en iyi uygulamalar". Asla, asla, gereken yerlerde bir ölçek vardılar çünkü projelerimden birinde bu adres için bir ihtiyaç vardı. Umarım bu soru diğer insanlar gibi.. yardımcı olur

Aşağıda birinin dediği gibi, ORMs "" katılıyor olmadan bir iş yapma. Geliştiriciler bu düzeyde veri ile çalışmak için zaten mevcut diğer veri erişim katmanları vardır?

DÜZENLEME: Bazı açıklama için, Vinko Vrsalovic. " dedi

"KIS KIS gülerim sanırım konuşmak istiyor NO-SQL hakkında işlem veri nerede normal dışı ve Hadoop kullanılan veya BigTable veya Cassandra düzenleri."

Bu bahsettiğim şey aslında.

Bonus xkcd komik başvurusu yakalamak isteyenler için puan.

CEVAP
16 EKİM 2009, Cuma


Bu, ilişkisel bir veritabanı bakınca kendini garantiye almak için genel amaçlı bir araçtır. Modern bilgisayarlar yeterince hızlı ve iyi optimize edilmiş tek bir kutu üzerinde oldukça saygın bir boyuta büyüyebilir yeterli. İLİŞKİSEL Bir İLİŞKİSEL seçerek verilerinizi kendini çok esnek erişim sağlayan, güçlü yeteneği çok daha kolay veri karşı yapmak için kod kısıtlamaları doğruluğu. Bu VERİTABANI, belirli bir sorun için iyi bir optimizasyon temsil edecek. ancak sadece sorunları kolayca değiştirmek için esneklik sağlar.

Hızla büyüyen başlatmak ve tek DB bir server boyutu aşan bir ölçeğe sahip olacak fark, bir anda yapmak çok zor seçimler var. Darboğazları tespit etme ve kaldırma başlamak gerekir. Bu bir İLİŞKİSEL dışında takılman gerekecek bağlılık biri pis hırladı düğüm olacak. Verileri birbirine daha fazla iş yapmak zorunda kalacaksın, ama belki de tamamen her şeyi dinlenmek zorunda kalmazsınız. Eğer okuma-ağır belki iseniz basit çoğaltma yapabilirsiniz. Eğer pazar ve büyüme belki tesviye kapalı doyurarak iseniz ve kısmen DB sunucuları sabit numara için denormalize shard. Belki de sadece users veri depolamak için taşınabilir sorunu tabloları bir avuç var. Belki de sizin Kullanım Profili önbellek çok dostça ve kocaman memcached bir küme için yük geçirebilirsiniz.

Nerede ölçeklenebilir anahtar-değer depoları gibi BigTable gel zaman hiçbiri olabilir ve çok fazla veri tek bir tür olduğu zaman da normal dışı bir tek tablo için çok fazla bir sunucu. Bu noktada keyfi bölüm ve hala temiz bir API erişim için gerekir. Verileri bir sürü makine arasında yayıldığında doğal olarak standart ilişkisel algoritmaları çok gerektiren bu makineler birbirlerine çok konuşma gerektiren algoritmalar, olamaz. Olarak sana tavsiyem, bu dağıtılmış sorgulama algoritmaları var potansiyel gerektirir daha fazla toplam işlem gücü daha eşdeğer bir BİRLEŞTİRME doğru dizine ilişkisel veritabanı, ama çünkü onlar parallelized gerçek zamanlı performans siparişlerin büyüklüğü daha iyi tek bir makine yapabilir (varsayarak bir makine de tüm dizin bile var).

Şimdi büyük bir veri yatay olarak ayarlayın (sadece daha fazla sunucu takarak) ölçek, ölçülebilirlik zor kısmı bitti. Şey söylememeliyimbittiçünkü devam eden operasyonlar ve geliştirme de bu ölçek çok daha zor olan tek sunucu uygulaması, ama önemli olan uygulama sunucuları genellikle önemsiz ölçek üzerinden pay-hiçbir şey mimarlık sürece elde edebilirsiniz veri ihtiyaçları zamanında moda.

Ne kadar sık kullanılan yetersizlik Katılır kullanmak için kolu hakkında soru cevap, kısa cevapyok. ORM Nesne İlişkisel Eşleme anlamına gelir ve bir ORM işi çoğu sadece yüklem mantığı güçlü ilişkisel paradigma basit nesne tabanlı veri yapıları çevriliyor. Ne veriyorlar değerini en basit anahtar-değer bir mağazadan mümkün olmayacaktır. Uygulamada, sen-ecek büyük olasılıkla ihtiyaç oluşturmak ve korumak kendi veri Erişim Katmanı bu uygun kendi özel ihtiyaçları, çünkü veri profilleri de bunlar gam gidiş için değişiklik dramatik ve inanıyorum ki orada çok fazla bileşimleri için genel amaçlı bir araç ortaya çıkıyor ve duruma hakim bir şekilde RDBMSs. Kısacası, her zaman bu ölçekte daha fazla ayak işi yapmak zorunda kalacaksın.

Bu, kesinlikle anahtar-değer deposu temel üzerine inşa edilebilir ne olduğunu görmek ilginç olacak. " dedi. Gerçekten yeterli tecrübeye burada özellikle yorum yapmak istemiyorum, ama bu hikaye çok eskilere gidiyor hakkında kurumsal bilgi işlem (örn. içinde bir çok bilgi var Oracle), bir sürü kullanılmayan teorik bilgi Akademi, bir çok pratik bilgi de Google, Amazon, Facebook, et al, ama bilgisi olan var filtre içine daha geniş geliştirme topluluğu vardır hala oldukça sınırlı.

Ancak şimdi bir sürü uygulama taşıma, web, ve daha fazla ve daha fazla dünya nüfusunun online, kaçınılmaz olarak daha fazla ve daha fazla uygulama gösterecek ölçek ve en iyi uygulamaları başlayacak kristalize. Bilgi gap Cassandra gibi AppEngine ve EC2 yanı sıra açık kaynak veritabanları gibi bulut hizmetleri tarafından her iki taraftan aşağı whittled olacak. Bir anlamda bu da emekleme aşamasında olan paralel ve zaman uyumsuz bir hesaplama ile el ele gider. Kesinlikle büyüleyici bir zaman bir programcı olmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • PlugResearch

    PlugResearch

    22 Mart 2006