Beheerde tabellen zijn tabellen die eigendom zijn van Hive en waarbij de volledige levenscyclus van de gegevens van de tabellen door Hive worden beheerd en gecontroleerd. Externe tabellen zijn tabellen waarbij Hive een losse koppeling met de gegevens heeft. Replicatiebeheer repliceert externe tabellen met succes naar een doelcluster. De beheerde tabellen worden geconverteerd naar externe tabellen na replicatie.

Hive ondersteunt replicatie van externe tabellen met gegevens naar doelcluster en het behoudt alle eigenschappen van externe tabellen. De toestemming en het eigendom van de gegevensbestanden worden bewaard, zodat de relevante externe processen erin kunnen blijven schrijven, zelfs na failover.

De schrijfacties op externe tabellen worden uitgevoerd met behulp van de Hive SQL-opdrachten en de gegevensbestanden kunnen ook worden benaderd en beheerd door processen buiten Hive. Als een externe tabel of partitie wordt verwijderd, wordt alleen de metagegevens die bij de tabel of partitie horen verwijderd, maar de onderliggende gegevensbestanden blijven intact. Een typisch voorbeeld voor een externe tabel is het uitvoeren van analytische query’s op HBase of Druid-eigen gegevens met behulp van Hive, waarbij de gegevensbestanden worden geschreven door HBase of Druid en Hive ze leest voor analyse.

Wanneer u een schema maakt voor een Hive-replicatiebeleid, stelt u de frequentie zo in dat wijzigingen vaak genoeg worden gerepliceerd om te grote kopieën te voorkomen.

U kunt de volgende use-cases tegenkomen tijdens Hive-replicatie:

Replication Manager-upgrade use-case In een normaal scenario, als u externe tabellen had die werden gerepliceerd als beheerde tabellen, moet u na het upgradeproces deze tabellen uit het doel laten vallen en de basismap instellen. In de volgende instantie worden ze gerepliceerd als externe tabellen. Conflicten in de gegevenslocatie van externe tabellen voor replicatie van meerdere bronclusters naar hetzelfde doelcluster Om de conflicten in de gegevenslocatie van externe tabellen voor replicatie van meerdere bronclusters naar hetzelfde doelcluster te behandelen, wijst de Replicatiebeheer een unieke basismap toe voor elk broncluster waaronder de gegevens van de externe tabellen van het overeenkomstige broncluster worden gekopieerd. Bijvoorbeeld, als de locatie van de externe tabel in een broncluster /ext/hbase_data is, dan is de locatie in het doelcluster na replicatie <base_dir>/ext/hbase_data. U kunt het commando DESCRIBE TABLE gebruiken om de nieuwe locatie van externe tabellen te achterhalen. Replicatieconflicten tussen HDFS en de locatie van externe tabellen in Hive Wanneer u het replicatiebeleid van Hive op een externe tabel uitvoert, worden de gegevens in de doelmap op een specifieke locatie opgeslagen. Wanneer u vervolgens het HDFS-replicatiebeleid uitvoert dat gegevens op dezelfde externe tabellocatie probeert te kopiëren, zorgt Replicatiebeheer ervoor dat de Hive-gegevens niet worden overschreven door HDFS. Wanneer u bijvoorbeeld een Hive-replicatiebeleid uitvoert op een externe tabel, maakt het beleid een doelmap /tmp/db1/ext1. Wanneer u een HDFS replicatiebeleid uitvoert, mag het beleid de gegevens niet overschrijven door te repliceren op de map /tmp/db1/ext1. Conflicten tijdens het replicatieproces van externe tabellen Conflicten ontstaan wanneer twee Hive-replicatiebeleidsregels op DB1 en DB2 (van hetzelfde broncluster of verschillende bronclusters) externe tabellen hebben die naar dezelfde gegevenslocatie wijzen (bijvoorbeeld /abc) en naar hetzelfde doelcluster worden gerepliceerd. Om dergelijke conflicten te voorkomen, moeten verschillende paden worden ingesteld voor de configuratie van de externe basismap van tabellen voor beide beleidsregels. Stel bijvoorbeeld /db1 in voor DB1 en /db2 voor DB2. Dit zorgt ervoor dat de doellocatie voor externe tabelgegevens verschillend is voor beide databases. Bijvoorbeeld, /db1/abcd en /db2/abcd.

Articles

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.