Làm cách nào để lấy / tạo câu lệnh create cho một bảng hive hiện có?


90

Giả sử bạn đã có "bảng" trong Hive, có cách nào nhanh chóng giống như các cơ sở dữ liệu khác để có thể lấy câu lệnh "CREATE" cho bảng đó không?

Câu trả lời:



26

Các bước tạo Tạo ddls bảng cho tất cả các bảng trong cơ sở dữ liệu Hive và xuất thành tệp văn bản để chạy sau:

bước 1) tạo tệp .sh với nội dung bên dưới, giả sử 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"

bước 2) Chạy tập lệnh shell trên bằng cách chuyển 'db name' làm paramanter

>bash hive_table_dd.sh <<databasename>>

đầu ra:

Tất cả các câu lệnh tạo bảng trong DB của bạn sẽ được ghi vào HiveTableDDL.txt


1
làm thế nào chúng tôi có thể đảm bảo rằng các nhóm và định dạng lưu trữ sẽ được sao chép vào bảng mới.
YouAreAwesome

Bạn cũng nên thêm dấu chấm phẩy sau mỗi câu lệnh để tập lệnh có thể được thực thi bằng cách nói hive -f HiveTableDDL.txt.
Muton

Tập lệnh này không thành công đối với tôi với lỗi bên dưới: Lỗi khi biên dịch câu lệnh: FAILED: Dòng phân tích cú pháp 1:18 không thể nhận dạng đầu vào gần '|' '|' trong tên bảng, tôi đang thực thi tập lệnh này với beeline vì HDP 3.0 không hỗ trợ truy cập hive-shell
Abhinav

@cfeduke tập lệnh này cung cấp vị trí của các bảng tổ ong. làm thế nào để bỏ qua phần inorder vị trí để chạy các ddls này ở một vị trí tổ ong khác? Không thể thay đổi trên hơn 1000 bảng
dùng1

2

Mô tả Định dạng / Mở rộng sẽ hiển thị định nghĩa dữ liệu của bảng trong hive

hive> describe Formatted dbname.tablename;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.