Ev Kişisel Finans RDBMS modelinden HBase

RDBMS modelinden HBase

Video: Learn RDBMS in 6 minutes! 2024

Video: Learn RDBMS in 6 minutes! 2024
Anonim

Eğer uygulamanız için tasarım aşamasındaysanız ve HBase'in iyi bir yer olacağına inanıyorsanız, satır anahtarlarını ve şemasını HBase veri modeli ve mimarisine uyacak şekilde tasarlamak Doğru yaklaşım. Bununla birlikte, bazen başlangıçta bir RDBMS için tasarlanmış bir veritabanını HBase'ye taşımak anlamlıdır.

Bu yaklaşımın mantıklı olduğu ortak bir senaryo, ölçeklenebilirlik sınırlarına ulaşan bir MySQL veritabanı örneğidir. Bir MySQL örneğini yatay olarak ölçekleme teknikleri vardır (başka bir deyişle parçalama, ) ancak bu süreç genellikle hantaldır ve sorunludur, çünkü MySQL basitçe parçalanma için tasarlanmamıştır.

İlişkisel modelden HBase modeline geçmek nispeten yeni bir disiplindir. Bununla birlikte, belli belirlenmiş düşünce kalıpları ortaya çıkmakta ve bir geçişe yaklaşırken uyulması gereken üç temel prensibe uyumludur. Bu ilkeler denormalizasyon, çoğaltma, ve akıllı anahtarlar (DDI) 'dır.

  • Denormalizasyon: İlişkisel veritabanı modeli a) normalleştirilmiş bir veritabanı şemasına ve b) SQL işlemlerine yanıt vermek için tablolar arasında birleşmelere bağlı. Veri tabanı normalizasyonu, veri kaybı, fazlalık ve diğer anormalliklere karşı veri güncelleştirildiğinde ve alınırken güvence altına alınan bir tekniktir.

    Uzmanların normalleştirilmiş bir veritabanı şemasına (ve veritabanı normalleştirme kendi başına bir çalışmaya) ulaşmaları için takip ettiği birkaç kural vardır, ancak süreç genelde daha büyük tabloları daha küçük tablolara bölerek ilişkileri tanımlamaktır onların arasında. Veritabanı denormalizasyonu, daha küçük, daha spesifik tabloların daha büyük, daha genel tablolara eklendiği normalleştirmenin tam tersidir.

    Bu, tablolarda birleşimler sağlanmadığı ve masraflı disk işlemleri gerektirdiği için birleşimlerin yavaş olabileceği için HBase'e geçilirken yaygın bir yöntemdir. Güncelleme ve alım anormalliklerine karşı koruma sağlamak artık HBase istemci uygulamanızın işidir, çünkü normalleştirme yoluyla sağlanan korumalar geçersiz ve geçersizdir.

  • Çoğaltma: Veritabanı şemasını denormalize hale getirirken, büyük tablolarda maliyetli okuma işlemlerinden kaçınmanıza yardımcı olabileceğinden, verileri çoğaltabilirsiniz. Ekstra depolama konusunda endişe etmeyin (elbette ki sebeple); HBase'in otomatik ölçeklenebilirliğini avantajınıza kullanabilirsiniz.

    Bununla birlikte, istemci uygulamanız tarafından verilerin çoğaltılması ve doğal olarak HBase'in satır aralıklı olmayan (HBASE-5229 JIRA'da açıklanan istisna hariç) sıradan atomik işlemler sağladığını unutmayın veya çapraz tablo.

  • Akıllı Tuşlar: HBase'de depolanan veriler satır tuşu ile sıralanır ve satır tuşu sistem tarafından sağlanan tek yerel dizin olduğundan, satır anahtarının dikkatli akıllı tasarımı büyük bir fark yaratabilir. Örneğin, satır anahtarınız servis siparişini ve servis siparişini veren müşterinin kimlik numarasını bir araya getirebilir.

    Bu satır tuşu tasarımı, servis siparişiyle ilgili verileri aramak veya aynı tabloda aynı satır tuşunu kullanarak müşteri ile ilgili verileri aramak için size yardımcı olacaktır. Bu teknik, bazı sorgular için daha hızlı olacak ve maliyetli tablo birleştirmelerini önleyecektir.

Bu belirli düşünce kalıplarını netleştirmek için bir Müşteri İletişim Bilgileri tablosunu alın ve onu tipik bir servis sipariş veritabanı bağlamında yerleştirin. Şekilde, normalleştirilmiş bir hizmet sipariş veritabanı şemasının nasıl göründüğü gösterilmektedir.

Hizmet siparişleri kapatıldığında ve muhtemelen silindiğinde müşteri verilerini kaybetmemek için, RDBMS normalleştirme kurallarını izleyerek müşteri Müşteri İletişim Bilgileri tablosunu servis sipariş tablosundan ayrı olacak şekilde ayarlayın. Ürünler tablosu için de aynı yaklaşımı kullanın; bu, hizmet siparişlerinden bağımsız olarak kurgusal şirket veritabanına yeni ürünler eklenebileceği anlamına gelir.

RDBMS birleştirme işlemlerine güvenerek, bu şema, belirli bir ürüne karşı açılan hizmet siparişlerinin sayısının yanı sıra müşterinin bulunduğu ürünün kullanım yerini gösteren sorguları da desteklemektedir.

Her şey güzel ve şık ama RDBM ile kullanacağınız bir şema. Bu şemayı bir HBase şemasına nasıl geçirebilirsiniz? Bir sonraki şekil olası bir HBase şemasını göstermektedir - biri DDI tasarım kalıbını takip etmektedir.

Müşteri İletişim Bilgileri tablosu, daha önce kullanılan yabancı anahtarların yerine müşteri adı ve iletişim bilgileri eklenerek standart dışı hale getirilmiştir. Ayrıca, Müşteri İletişim Bilgilerini olduğu gibi tutarak veriler çoğaltıldı. Artık Servis Siparişi tablosuna ve Müşteri İletişim Bilgileri tablosuna katılmanız gerekli değildir.

Buna ek olarak, servis sipariş numarasını oluşturmak için ürün numarasını müşteri numarası ile birleştiren akıllı bir sıra anahtarı dizaynı kullanılmıştır (örneğin A100 | 00001). Bu akıllı anahtar kullanılarak, servis sipariş tablosu, ürün eksiklikleri ve şu anda ürün sorunları yaşayan müşteriler hakkında hayati raporlar sağlayabilir.

Tüm bu sorgular HBase tarafından uygulama için atomik bir tarzda sıralı bir şekilde desteklenebilir. HBase'in satır anahtarlarını sipariş ettiğini ve bunları sözlük tarzında sıraladığını bildiğiniz için, uygulamanız raporlama için tarama yaparken veri yerelliği hakkında bazı eğitimli tahminler yapabilir. (Örneğin, tüm A * serisi ürün numaraları bir arada depolanacaktır.)

HBase şeması ile temsil edilen servis sipariş veritabanı göreceli olarak basit bir örnektir, ancak HBase'in bazı durumlarda RDBMS dünyasıyla nasıl kesiştirebileceğini göstermektedir ve önemli bir değer sağlamak. Kurgusal şirkette terabayt veya hatta petabaytlık servis çağrı verileri depolanırsa, HBase maliyet, güvenilirlik, performans ve ölçek bakımından büyük fark yaratacaktır.

Tabii ki hizmet siparişinizin HBase şemasını çeşitli şekillerde tasarlayabilirsiniz. Kuşkusuz tasarım, desteklenmesi gereken sorgulara bağlı, ancak bazı ilişkisel veritabanlarını, HBase mimarisi ve DDI tasarım kalıbı konusunda sağlam bir anlayıştan çalışırsanız, üretim için çok güçlü HBase uygulamalarına geçirebilirsiniz.

Bu örnek, sorguların HBase istemci API'lerinden yararlanan bir Java uygulaması tarafından ya da belki de Apache Thrift kullanan başka bir dil ile gerçekleştirildiğini varsaydı. Bu uygulama modeli, gereksinimleri iyi karşılayabilir ve hayali hizmet şirketi için yararlı performans ve özelleştirme seçenekleri sunabilir.

RDBMS modelinden HBase

Editörün Seçimi

Ile Web Sunucusunda Drupal Yükleme Softaculous ile Bir Web Sunucusuna Drupal Yükleme

Ile Web Sunucusunda Drupal Yükleme Softaculous ile Bir Web Sunucusuna Drupal Yükleme

Birçok web barındırma şirketi, Fantastico veya Softaculous adlı programları kullanarak kolay Drupal kurulumu. Barındırma şirketiniz Softaculous'u kullanıyorsa, işte böyle çalışır. Drupal topluluğu, Softaculous veya Fantastico gibi üçüncü parti yazılımlarla Drupal'ın yüklenmesini önermez. Bunu yapmak, yükseltmeyi zorlaştırabilir ve veritabanlarınızdaki sorunlara potansiyel olarak neden olabilir ...

Drupal Bahçe Site Kullanıcılarını Yönetme - mankenler

Drupal Bahçe Site Kullanıcılarını Yönetme - mankenler

Drupal Gardens'daki People sayfası, kullanıcıları, düzenli bir Drupal kurulumunda olurdunuz. Kullanıcıları bulabilir, rolleri engelleyebilir ve engelini kaldırabilir, silebilir ve atayabilirsiniz. Kullanıcıları yönetmek için Kişiler bağlantısını tıklayın. Liste sekmesi varolan kullanıcıları bulmanıza yardımcı olur ve İzinler sekmesi rolleri oluşturmanıza izin verir ve ...

Drupal kurulumu: Yazılım Alma - mankenler

Drupal kurulumu: Yazılım Alma - mankenler

Web barındırıcınız Fantastico veya Softaculous kullanmıyorsa, ilk Drupal'ı yüklemek için adım Drupal'ın en son sürümünün bir kopyasını alıyor ve web sunucunuza taşıyor. Paketi indirmek Drupal yazılımının kopyasını almak özgür ve kolaydır. Şu adımları izleyin: Drupal'a göz atın. org ve tıklayın ...

Editörün Seçimi

OAuth Kodlarını Android Uygulamanızla Twitter Sunucusuyla Görüşecek - aumlalar

OAuth Kodlarını Android Uygulamanızla Twitter Sunucusuyla Görüşecek - aumlalar

Android uygulamanızın Twitter sunucularıyla iletişim kurması için kendi OAuth kodlarınıza ihtiyacınız var. Onları almak için, aşağıda listelenen basit adımları uygulayın ve kendi Twitter uygulamasını geliştirmeye gideceksiniz. Twitter, herhangi bir zamanda önceden bildirimde bulunmaksızın web sitesinin tasarımını değiştirebilir. Twitter'da oturum açın ...

Xcode Kaynak Düzenleyici ile Başlarken - mankenler

Xcode Kaynak Düzenleyici ile Başlarken - mankenler

Yazarken kullandığınız ana araç bir iPad uygulaması için kod, Proje gezgini içinde bir kaynak kodu dosyası seçtikten sonra Xcode Çalışma Alanı penceresinin sağ tarafındaki Düzenleyici alanında Standart düzenleyici bölmesi olarak görünen Xcode kaynak editörüdür. Ayrıca Asistan editörü gibi görünür ...

Editörün Seçimi

App'unuzu Geliştirmek İçin Android Animasyon Nasıl Kullanılır

App'unuzu Geliştirmek İçin Android Animasyon Nasıl Kullanılır

Android uygulamanızda biraz süslü animasyona ihtiyacımız var. Bu, umut veren bir hırsı gösteriyor! Android, uygulamanızın geliştirilmesinde kullanabileceğiniz iki tür animasyona sahiptir: Animasyonu görüntüle: Bu listede açıklandığı üzere ya arayı doldurarak veya kare kare animasyonla canlandırdığınız eski bir sistem: Arası doldurma: ...

IPad Uygulamalarınızda Çerçeveler Nasıl Kullanılır - AYDINLATMALAR

IPad Uygulamalarınızda Çerçeveler Nasıl Kullanılır - AYDINLATMALAR

Genel işlevsellik. IPad için iPhone OS, uygulamalarınıza teknolojileri, hizmetleri ve özellikleri dahil etmek için bir dizi çerçeve sunmaktadır. Örneğin, UIKit çerçevesi, uygulamanızda kullanabileceğiniz destek olayları, çizim desteği, pencereler, görünümler ve denetimler sağlar. Bir çerçeve, aşağıdakileri yapmak üzere tasarlanmıştır ...