Video: Sqoop Import and Export data from RDMBS and HDFS 2025
Du ved sikkert allerede, at eksperter i relationelt databasemodellering og design typisk bruger meget tid til at designe normaliserede databaser eller skemaer <. Database Normalisering er en teknik, der beskytter mod tab af data, redundans og andre uregelmæssigheder, da data opdateres og hentes. Eksperterne følger en række regler for at nå frem til en normaliseret database, men Regel 1 er, at du skal ende med en
gruppe af tabeller. (Et stort bord, der gemmer alle dine data, er ikke normalt. Ordsprog er beregnet.) Der er undtagelser afhængigt af brugen, men loven i mange tabeller følger generelt tæt sammen, især for databaser, der understøtter transaktioner eller analytisk behandling (business intelligence, for eksempel).
Hvad har alt dette at gøre med at blive med i Hive? Husk at det underliggende operativsystem til Hive er (overraskelse!) Apache Hadoop: MapReduce er motoren til at slutte tabeller, og Hadoop File System (HDFS) er den underliggende lagring. Det er alle gode nyheder for brugeren, der ønsker at oprette, styre og analysere store tabeller med Hive.
Husk at MapReduce og HDFS er optimeret til gennemløb med stor dataanalyse, og at i denne verden er
latenser - brugersvaretider med andre ord - normalt høj. Hive er designet til batch-stil analytisk behandling, ikke til hurtig online transaktionsbehandling. Brugere, der ønsker den bedst mulige ydeevne med SQL på Apache Hadoop, har løsninger til rådighed.
Fordi Hive-bordet læser og skriver via HDFS normalt involverer meget store datablokke, jo flere data kan du håndtere helt i ét bord, desto bedre er den samlede ydeevne.
Disk- og netværksadgang er meget langsommere end hukommelsesadgang, så minimere HDFS læser og skriver så meget som muligt.
Med denne baggrundsinformation i tankerne kan du tackle at gøre sammen med Hive. Heldigvis var Hive-udviklingssamfundet realistisk og forstod, at brugere ville have brug for og blive nødt til at deltage i tabeller med HiveQL. Denne viden bliver særlig vigtig med EDW augmentation. Brug sager som "forespørgsel" arkiver kræver ofte sammenføjninger til dataanalyse.
Her er et Hive join-eksempel ved hjælp af flydatatabeller. Listingen viser dig hvordan du opretter og viser en myflightinfo2007 tabel og en myflightinfo2008 tabel fra de større FlightInfo2007 og FlightInfo2008 tabeller. Planen hele tiden var at bruge CTAS oprettet myflightinfo2007 og myflightinfo2008 tabeller for at illustrere hvordan du kan udføre samlinger i Hive.
Figuren viser resultatet af en indre sammenføjning med myflightinfo2007 og myflightinfo2008 tabellerne ved hjælp af SQL-klienten SQuirreL.
Hive understøtter
equi-joins, en bestemt type tilslutning, der kun bruger ligestillings sammenligninger i joinprotikatet. (ON m8. FlightNum = m7. FlightNum er et eksempel på en equi-join.) Andre komparatorer såsom Mindre end (<) understøttes ikke. Denne begrænsning er kun på grund af begrænsninger på den underliggende MapReduce-motor. Du kan heller ikke bruge OR i ON-klausulen. Figuren illustrerer det tidligere eksempel på det indre forbund og to andre Hive-sammenføjningstyper. Bemærk, at du kan bekræfte resultaterne af en indre sammenføjning ved at gennemgå indholdet af myflight2007 og myflight2008 tabellerne.
Følgende figur illustrerer, hvordan en indre sammenføjning arbejder med et Venn-diagram, hvis du ikke er bekendt med teknikken. Grundidéen her er, at en indre deltager returnerer de poster, der matcher mellem to tabeller. Så en indre sammenføjning er et perfekt analyseværktøj til at bestemme hvilke flyvninger, der er de samme fra JFK (New York) til ORD (Chicago) i juli 2007 og juli 2008.
Optimering af Hive-tilmeldinger er et varmt emne i Hive-fællesskabet. For mere information om aktuelle optimeringsteknikker, se siden Tilslut optimering på Hive wiki.