Video: Python Tutorial for Beginners [Full Course] Learn Python for Web Development 2024
Muhtemelen, ilişkisel veritabanı modelleme ve tasarımındaki uzmanların çoğu zaman normalleştirilmiş veritabanlarını tasarlamak için zaman harcamaktadır veya şemalar <. Veritabanı normalleştirme , veri güncellenirken ve alınırken veri kaybına, fazlalık ve diğer anormalliklere karşı koruma sağlayan bir tekniktir. Uzmanlar, normalleştirilmiş bir veritabanına ulaşmak için bir takım kuralları takip eder, ancak Kural 1, tabloların bir
grubu ile sonuçlanması gerektiğidir. (Tüm verilerinizi depolayan büyük bir tablo normal değildir - pun tasarlanmıştır.) Kullanım durumuna bağlı olarak istisnalar vardır, ancak birçok tablo yasası genellikle, özellikle işlemler veya analitik işleme destekleyen veritabanları için (iş zekası, Örneğin).
Bunun, Kovan'daki katillerle ne ilgisi var? Apache Hadoop: MapReduce tabloya katılmanın motorudur ve Hadoop Dosya Sistemi (HDFS) altta yatan saklama alanıdır. Hive ile büyük tablolar oluşturmak, yönetmek ve analiz etmek isteyen kullanıcı için iyi bir haber.
MapReduce ve HDFS, büyük veri analizi ile verim için optimize edildi ve bu dünyada
gecikmeler - kullanıcı yanıt süresi, diğer bir deyimle - genellikle yüksek. Hive, hızlı çevrimiçi işlem işlemleri için değil, parti tarzı analitik işleme için tasarlanmıştır. Apache Hadoop'ta SQL ile mümkün olan en iyi performansı isteyen kullanıcılar çözümler sunmaktadır.
HDFS ile okunur ve yazılır, çünkü genellikle HDFS ile çok büyük veri blokları içerdiğinden, bir masada ne kadar çok veri yönetiyorsanız, genel performans o kadar iyi olur.
Disk ve ağ erişimi bellek erişiminden çok daha yavaş, bu nedenle HDFS'nin en aza indirgenmesini mümkün olduğunca okuyor ve yazıyor.
Bu arka plan bilgisi akılda tutulursa, Kovan ile katılıma çabalayabilirsiniz. Neyse ki, Kovan geliştirme topluluğu gerçekçiydi ve kullanıcıların tabloları HiveQL ile birleştirmek istediğini ve bunlara katılmaları gerektiğini anlamıştı. Bu bilgi EDW artırmada özellikle önem kazanmaktadır. "Sorgulanabilir" arşivler gibi kullanım örnekleri genellikle veri analizi için katılır.
İşte, uçuş verileri tablolarını kullanan bir Kovan katılma örneği. Giriş, daha büyük FlightInfo2007 ve FlightInfo2008 tablolarından bir myflightinfo2007 tablosu ve bir myflightinfo2008 tablosu oluşturma ve görüntüleme yöntemini gösterir. Önümüzdeki plan CTAS tarafından oluşturulan myflightinfo2007 ve myflightinfo2008 tablolarını Hive'da nasıl birleştirebildiğimizi göstermek için kullandı.
Şekil, SQuirreL SQL istemcisini kullanarak myflightinfo2007 ve myflightinfo2008 tablolarıyla bir iç birleştirmenin sonucunu göstermektedir.
Hive, yalnızca
eş-birleşimlerini, birleşim yükleminde eşitlik karşılaştırmalarını kullanan belirli bir türde birleşmeyi destekler. (ON m8, FlightNum = m7, FlightNum bir eş-birleştirmenin bir örneğidir.) Less Than (<) gibi diğer karşılaştırıcılar desteklenmez. Bu kısıtlama, yalnızca MapReduce alt yapısı üzerindeki sınırlamalardan ötürüdür. Ayrıca, OR yan tümcesinde OR kullanamazsınız. Şekil, iç birleştirme ve diğer iki Hive birleştirme biçiminin daha önceki örneğini göstermektedir. Myflight2007 ve myflight2008 tablolarının içeriğini gözden geçirerek bir iç birleştirme sonuçlarını doğrulayabileceğini unutmayın.
Aşağıdaki şekil, tekniğe aşina değilseniz iç birleşimin bir Venn diyagramı kullanarak nasıl çalıştığını göstermektedir. Burada temel fikir, bir iç birleştirmenin iki tablo arasında eşleşen kayıtları döndürmesi. Dolayısıyla, iç birleşim, Temmuz 2007'de ve Temmuz 2008'de JFK (New York) ile ORD (Chicago) arasında hangi uçuşların aynı olduğunu belirlemek için mükemmel bir analiz aracıdır.
Kovan katılımlarını optimize etmek, Hive topluluğunda sıcak bir konudur. Geçerli optimizasyon teknikleri hakkında daha fazla bilgi için, Hive wiki'deki Katılma Optimizasyon sayfasına bakın.