Video: 15 Affordable Campers Under 10K | Micro Camping to Caravan RV 2024
Du vet sikkert allerede at eksperter i relasjonsdatabase-modellering og design ofte bruker mye tid på å designe normaliserte databaser, eller skjemaer <. Database normalisering er en teknikk som beskytter mot tap av data, redundans og andre uregelmessigheter ettersom data oppdateres og hentes. Ekspertene følger en rekke regler for å komme til en normalisert database, men Regel 1 er at du må ende opp med en
gruppe av tabeller. (Et stort bord som lagrer alle dataene dine, er ikke normalt - ordspillet er beregnet.) Det er unntak, avhengig av brukssaken, men loven i mange tabeller følger generelt tett, spesielt for databaser som støtter transaksjoner eller analytisk behandling (forretningsunderretning, for eksempel).
Hva har alt dette å gjøre med å bli med i Hive? Vel, husk at det underliggende operativsystemet for Hive er (overraskelse!) Apache Hadoop: MapReduce er motoren for å bli med i tabeller, og Hadoop File System (HDFS) er den underliggende lagringen. Det er alle gode nyheter for brukeren som ønsker å lage, administrere og analysere store tabeller med Hive.
Husk at MapReduce og HDFS er optimalisert for gjennomstrømning med stor dataanalyse, og at i denne verden er
latenser - brukerrespons tidene, med andre ord - vanligvis høye. Hive er designet for analytisk behandling i batch-stil, ikke for rask online transaksjonsbehandling. Brukere som vil ha best mulig ytelse med SQL på Apache Hadoop, har løsninger tilgjengelig.
Fordi Hive-tabellen leser og skriver via HDFS, involverer vanligvis store datamengder, jo flere data du kan administrere helt i ett bord, desto bedre blir resultatet.
Disk og nettverkstilgang er mye tregere enn minnetilgang, så minimere HDFS leser og skriver så mye som mulig.
Med denne bakgrunnsinformasjonen i tankene, kan du takle å gjøre sammen med Hive. Heldigvis var Hive-utviklingssamfunnet realistisk og forstått at brukerne vil ha og trenger å bli med på tabeller med HiveQL. Denne kunnskapen blir spesielt viktig med EDW augmentation. Bruk saker som "forespørsler" arkiver krever ofte tilmeldinger for dataanalyse.
Her er et Hive join-eksempel ved hjelp av flydatatabeller. Oppføringen viser hvordan du lager og viser en myflightinfo2007-tabell og en myflightinfo2008-tabell fra de større FlightInfo2007- og FlightInfo2008-tabellene. Planen hele tiden var å bruke CTAS opprettet myflightinfo2007 og myflightinfo2008 tabeller for å illustrere hvordan du kan utføre samlinger i Hive.
Figuren viser resultatet av en indre sammenheng med myflightinfo2007 og myflightinfo2008-tabellene ved hjelp av SQL-klienten SQuirreL.
Hive støtter
equi-joins, en spesifikk type samling som bare bruker likestillingssammenligninger i tilmeldingsprotikatet. (ON m8. FlightNum = m7. FlightNum er et eksempel på en equi-join.) Andre komparatorer som Mindre enn (<) støttes ikke. Denne begrensningen er bare på grunn av begrensninger på den underliggende MapReduce-motoren. Du kan heller ikke bruke OR i ON-klausulen. Figuren illustrerer det tidligere eksempelet på den indre sammenføyningen og to andre Hive-tilknytningstyper. Vær oppmerksom på at du kan bekrefte resultatene av et indre medlemskap ved å gjennomgå innholdet i myflight2007 og myflight2008-tabellene.
Følgende figur illustrerer hvordan en indre sammenføyning fungerer ved hjelp av et Venn-diagram, hvis du ikke er kjent med teknikken. Den grunnleggende ideen her er at en indre sammenlegger returnerer poster som samsvarer mellom to tabeller. Så en indre sammenføyning er et perfekt analyseverktøy for å avgjøre hvilke flyreiser som er de samme fra JFK (New York) til ORD (Chicago) i juli 2007 og juli 2008.
Optimalisering av Hive-tilmeldinger er et hett tema i Hive-fellesskapet. Hvis du vil ha mer informasjon om gjeldende optimaliseringsteknikker, kan du se siden Bli med på optimalisering på Hive-wiki.