Hanterade tabeller är Hive-ägda tabeller där hela livscykeln för tabellens data hanteras och kontrolleras av Hive. Externa tabeller är tabeller där Hive har en lös koppling till data. Replication Manager replikerar externa tabeller framgångsrikt till ett målkluster. De hanterade tabellerna konverteras till externa tabeller efter replikering.

Hive stöder replikering av externa tabeller med data till målklustret och behåller alla egenskaper hos externa tabeller. Datafilernas behörighet och ägande bevaras så att de relevanta externa processerna kan fortsätta att skriva i dem även efter failover.

Skrivningarna på externa tabeller utförs med hjälp av Hives SQL-kommandon och datafilerna kan också nås och hanteras av processer utanför Hive. Om en extern tabell eller partition tas bort tas endast metadata som är kopplade till tabellen eller partitionen bort, men de underliggande datafilerna förblir intakta. Ett typiskt exempel på en extern tabell är att köra analytiska frågor på HBase- eller Druid-ägda data med hjälp av Hive, där datafilerna skrivs av HBase eller Druid och Hive läser dem för analys.

När du skapar ett schema för en Hive-replikeringspolicy ska du ställa in frekvensen så att ändringar replikeras tillräckligt ofta för att undvika alltför stora kopior.

Du kan stöta på följande användningsfall under Hive-replikering:

Användningsfall för uppgradering av Replication Manager I ett normalt scenario måste du, om du har haft externa tabeller som replikerats som hanterade tabeller, efter uppgraderingsprocessen släppa dessa tabeller från målet och ange baskatalogen. I nästa instans replikeras de som externa tabeller. Konflikter i externa tabellers dataplats för replikering av flera källkluster till samma målkluster För att hantera konflikter i externa tabellers dataplats för replikering av flera källkluster till samma målkluster tilldelar Replication Manager en unik baskatalog för varje källkluster under vilken de externa tabellernas data från motsvarande källkluster kopieras. Om platsen för externa tabeller i ett källkluster till exempel är /ext/hbase_data är platsen i målklustret efter replikering <base_dir>/ext/hbase_data. Du kan använda kommandot DESCRIBE TABLE för att spåra den nya platsen för externa tabeller. Replikeringskonflikter mellan HDFS- och Hive-platsen för externa tabeller När du kör Hive-replikeringspolicyn på en extern tabell lagras data på målkatalogen på en specifik plats. När du sedan kör HDFS-replikeringsprincipen som försöker kopiera data på samma externa tabellplats ser Replication Manager till att Hive-data inte åsidosätts av HDFS. När du till exempel kör en Hive-replikeringsprincip på en extern tabell skapar principen en målkatalog /tmp/db1/ext1. När du kör en HDFS-replikeringsprincip ska principen inte åsidosätta data genom att replikera på katalogen /tmp/db1/ext1. Konflikter under replikeringsprocessen för externa tabeller Konflikter uppstår när två Hive-replikeringsprinciper på DB1 och DB2 (antingen från samma källkluster eller olika källkluster) har externa tabeller som pekar på samma dataplats (till exempel /abc) och som replikeras till samma målkluster. För att undvika sådana konflikter måste du ange olika sökvägar för konfigurationen av baskatalogen för externa tabeller för båda strategierna. Ange till exempel /db1 för DB1 och /db2 för DB2. På så sätt säkerställs det att platsen för den externa tabellens måldata är olika för de båda databaserna. Till exempel /db1/abcd och /db2/abcd.

Articles

Lämna ett svar

Din e-postadress kommer inte publiceras.