Spravované tabulky jsou tabulky vlastněné systémem Hive, jejichž celý životní cyklus dat je spravován a řízen systémem Hive. Externí tabulky jsou tabulky, kde má Hive volnou vazbu na data. Správce replikace úspěšně replikuje externí tabulky do cílového clusteru. Spravované tabulky jsou po replikaci převedeny na externí tabulky.
Hive podporuje replikaci externích tabulek s daty do cílového clusteru a zachovává všechny vlastnosti externích tabulek. Oprávnění a vlastnictví datových souborů jsou zachována, takže příslušné externí procesy do nich mohou zapisovat i po převzetí služeb při selhání.
Zápisy do externích tabulek se provádějí pomocí příkazů Hive SQL a k datovým souborům mohou přistupovat a spravovat je i procesy mimo Hive. Pokud dojde ke zrušení externí tabulky nebo oddílu, odstraní se pouze metadata spojená s tabulkou nebo oddílem, ale podkladové datové soubory zůstanou nedotčeny. Typickým příkladem externí tabulky je spouštění analytických dotazů na data vlastněná HBase nebo Druidem pomocí Hive, kdy jsou datové soubory zapsány HBase nebo Druidem a Hive je čte za účelem analýzy.
Při vytváření plánu pro zásady replikace Hive nastavte frekvenci tak, aby se změny replikovaly dostatečně často a nedocházelo k příliš velkým kopiím.
Při replikaci Hive se můžete setkat s následujícími případy použití:
Případ použití správce aktualizace replikace V běžném scénáři, pokud jste měli externí tabulky, které byly replikovány jako spravované tabulky, musíte po procesu aktualizace tyto tabulky z cíle odstranit a nastavit základní adresář. V další instanci se replikují jako externí tabulky. Konflikty v umístění dat externích tabulek při replikaci více zdrojových clusterů do stejného cílového clusteru Aby bylo možné řešit konflikty v umístění dat externích tabulek při replikaci více zdrojových clusterů do stejného cílového clusteru, přiřadí Správce replikace každému zdrojovému clusteru jedinečný základní adresář, pod který se zkopírují data externích tabulek z příslušného zdrojového clusteru. Pokud je například umístění externích tabulek ve zdrojovém clusteru /ext/hbase_data, pak je umístění v cílovém clusteru po replikaci <base_dir>/ext/hbase_data. Ke sledování nového umístění externích tabulek můžete použít příkaz DESCRIBE TABLE. Konflikty replikace mezi umístěním externí tabulky v systému HDFS a v systému Hive Když spustíte zásady replikace systému Hive na externí tabulku, data se uloží v cílovém adresáři v určitém umístění. Když následně spustíte zásady replikace HDFS, které se pokusí zkopírovat data ve stejném umístění externí tabulky, Správce replikace zajistí, aby data Hive nebyla přepsána systémem HDFS. Když například spustíte zásadu replikace Hive na externí tabulku, vytvoří tato zásada cílový adresář /tmp/db1/ext1. Při spuštění zásady replikace HDFS by tato zásada neměla přepsat data replikací na adresář /tmp/db1/ext1. Konflikty během procesu replikace externích tabulek Konflikty se objevují, když dvě zásady replikace Hive na DB1 a DB2 (buď ze stejného zdrojového clusteru, nebo z různých zdrojových clusterů) mají externí tabulky, které ukazují na stejné umístění dat (například /abc) a jsou replikovány na stejný cílový cluster. Abyste se vyhnuli takovým konfliktům, musíte nastavit různé cesty pro konfiguraci základního adresáře externích tabulek pro obě zásady. Například nastavte /db1 pro DB1 a /db2 pro DB2. Tím zajistíte, že umístění dat cílové externí tabulky bude pro obě databáze odlišné. Například /db1/abcd a /db2/abcd.