Несекционированную таблицю можна перетворити на секционированную з пропозицією MODIFY, доданою до оператора SQL ALTER TABLE. Крім того, можна вказати ключове слово ONLINE, увімкнувши одночасні операції DML під час перетворення.
2 Відповіді
- Увімкніть динамічне розділення у Hive: SET hive.exec.dynamic.partition = true; SET hive.exec.dynamic.partition.mode = nonstrict;
- Створіть схему для розділеної таблиці: CREATE TABLE table1 (id STRING, info STRING) PARTITIONED BY ( tdate STRING);
Онлайн-перетворення нероздільної таблиці в розділену в Oracle Database 12c, випуск 2 (12.2) у попередніх випусках ви можете розділити несекционированную таблицю за допомогою EXCHANGE PARTITION або DBMS_REDEFINITION у "майже онлайн" спосіб, але обидва методи вимагали кількох кроків.
Статичне розділення у Hive Під час завантаження даних вам потрібно вказати, у якому розділі зберігати дані. Це означає, що з кожним завантаженням вам потрібно вказувати значення стовпця розділу. Ви можете додати розділ у таблицю та перемістити файл даних у розділ таблиці.
Створення розділеної таблиці вимагає Дозвіл CREATE TABLE у базі даних і дозвіл ALTER для схеми, у якій створюється таблиця. Для створення розділеного індексу потрібен дозвіл ALTER для таблиці або подання, де створюється індекс.