Як отримати / сформувати оператор create для існуючої таблиці вуликів?


91

Якщо припустити, що у вас вже є "таблиця" у Hive, чи існує швидкий спосіб, як інші бази даних, отримати можливість отримати оператор "CREATE" для цієї таблиці?

Відповіді:



27

Кроки для створення таблиці ddls створення таблиці для всіх таблиць у базі даних Hive та експорту в текстовий файл для подальшого запуску:

Крок 1) Створіть файл .sh із вмістом нижче, скажімо hive_table_ddl.sh

#!/bin/bash
rm -f tableNames.txt
rm -f HiveTableDDL.txt
hive -e "use $1; show tables;" > tableNames.txt  
wait
cat tableNames.txt |while read LINE
   do
   hive -e "use $1;show create table $LINE;" >>HiveTableDDL.txt
   echo  -e "\n" >> HiveTableDDL.txt
   done
rm -f tableNames.txt
echo "Table DDL generated"

Крок 2) Запустіть вищезазначений сценарій оболонки, передавши 'db name' як парамант

>bash hive_table_dd.sh <<databasename>>

вихід:

Усі оператори створення таблиці вашої БД будуть записані в HiveTableDDL.txt


1
як ми могли переконатись, що сегменти та формат сховища будуть репліковані в нову таблицю.
YouAreAwesome

Ви також повинні додати крапку з комою після кожного оператора, щоб скрипт міг бути виконаний, сказавши hive -f HiveTableDDL.txt.
Мутон,

Цей сценарій для мене невдалий із помилкою нижче: Помилка під час компіляції оператора: FAILED: ParseException, рядок 1:18 не може розпізнати введення біля '|' '|' в імені таблиці Я виконання сценарію з Білайном , як HDP 3.0 не підтримує вулика оболонки доступу
Абхінав

@cfeduke цей сценарій вказує розташування таблиць вуликів. як пропустити частину розташування inorder, щоб запустити ці ddls в іншому місці вулика? змінити більше ніж на 1000 таблиць неможливо
user1

2

Опис Форматований / Розширений покаже визначення даних таблиці у вулику

hive> describe Formatted dbname.tablename;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.