Video: 6 Modul 5 Imbinarea datelor din mai multe celule 2024
Probabil știți deja că experții în modelarea și proiectarea bazelor de date relaționale își petrec, de obicei, o mulțime de timp proiectând baze de date normalizate sau . Baza de date este o tehnică care protejează împotriva pierderii de date, a redundanței și a altor anomalii, deoarece datele sunt actualizate și preluate. Experții respectă o serie de reguli pentru a ajunge la o bază de date normalizată, dar regula 1 este că trebuie să ajungeți la un grup
din tabele. (Există excepții, în funcție de cazul de utilizare, dar legea multor tabele este în general urmărită îndeaproape, în special pentru bazele de date care susțin tranzacțiile sau procesarea analitică (business intelligence, de exemplu). Ce are de-a face cu asocierea în stup? Amintiți-vă că sistemul de operare de bază pentru Hive este (surpriză!) Apache Hadoop: MapReduce este motorul pentru îmbinarea tabelelor, iar sistemul de fișiere Hadoop File (HDFS) este stocarea de bază. Este o veste bună pentru utilizatorul care dorește să creeze, să gestioneze și să analizeze mesele mari cu Hive.
Potențialul de a debloca informațiile ascunse în structurile masive de date este interesant. Cu toate acestea, legăturile cu stupurile nu funcționează la fel de bine ca și în lumea RDBMS / EDW, astfel încât utilizatorii pentru prima dată sunt adesea surprinși de "seninătatea" răspunsului sistemului.
Amintiți-vă că MapReduce și HDFS sunt optimizate pentru performanță cu analize de date mari și că, în această lume,latențele
- timpii de răspuns ai utilizatorilor, cu alte cuvinte - sunt de obicei ridicate. Stocul este conceput pentru procesarea analitică în regim de tip lot, nu pentru procesarea rapidă a tranzacțiilor on-line. Utilizatorii care doresc cea mai bună performanță posibilă cu SQL pe Apache Hadoop au soluții disponibile.
Accesul la disc și la rețea este mult mai lent decât accesul la memorie, astfel încât să minimizeze HDFS să citească și să scrie cât mai mult posibil.
Având în vedere aceste informații de fundal, puteți aborda colaborarea cu Hive. Din fericire, comunitatea de dezvoltare Hive a fost realistă și a înțeles că utilizatorii ar dori și trebuie să se alăture meselor cu HiveQL. Această cunoaștere devine deosebit de importantă cu augmentarea EDW. Utilizarea cazurilor, cum ar fi arhivele "interogabile", necesită adesea conexiuni pentru analiza datelor.
Aici este un exemplu de îmbinare de tip Hive utilizând tabelele cu date de zbor. Listarea vă arată cum să creați și să afișați o tabelă myflightinfo2007 și o tabelă myflightinfo2008 din tabelele mai mari FlightInfo2007 și FlightInfo2008. Planul de-a lungul a fost de a utiliza CTAS creat tabelele myflightinfo2007 și myflightinfo2008 pentru a ilustra modul în care puteți efectua conexiuni în stup.
Figura prezintă rezultatul unei intrări interne cu tabelele myflightinfo2007 și myflightinfo2008 utilizând clientul SQL SQuirreL.
Hive suportă
equi-joins,
un tip specific de join care folosește numai comparații de egalitate în predicate join. (ON m8, FlightNum = m7 FlightNum este un exemplu de equi-join.) Alte comparatoare, cum ar fi Less Than (<) nu sunt acceptate. Această restricție se datorează numai limitării motorului MapReeduce. De asemenea, nu puteți folosi OR în clauza ON. Figura ilustrează exemplul anterior al îmbinării interioare și alte două tipuri de îmbinări de tip Hive. Rețineți că puteți confirma rezultatele unei intrări interioare examinând conținutul tabelelor myflight2007 și myflight2008. Figura următoare ilustrează modul în care o îmbinare interioară funcționează utilizând o diagramă Venn, în cazul în care nu sunteți familiarizat cu tehnica. Ideea de bază aici este că o intrare internă returnează înregistrările care se potrivesc între două tabele. Deci un cuplu interior este un instrument de analiză perfect pentru a determina care zboruri sunt aceleași de la JFK (New York) la ORD (Chicago) în iulie 2007 și iulie 2008.
Optimizarea îmbinărilor de stup este un subiect fierbinte în comunitatea Hive. Pentru mai multe informații despre tehnicile curente de optimizare, consultați pagina "Alăturați-vă optimizarea" din wiki-ul Hive.