Hive操作——複製表結構和數據

這篇博文將分享給你如何將hive中B庫的表複製到A庫中。如下圖,將cserver中的表的結構以及數據都複製到xpu中。本篇將分爲兩個部分:複製表結構、複製結構+數據。

一、複製表的結構

寫法:CREATE TABLE A.new_table LIKE B.old_table;(需要A數據庫提前創建好,否則會報找不到)

這裏將cserver的iot_devicelocation複製到xpu中去,首先看一下iot_devicelocation的表結構。

複製表結構:創建一個和iot_devicelocation表一樣表結構的test_iiot_devicelocation表

hive> create table if not exists xpu.test_iot_devicelocation like iot_devicelocation;

可以寫成如下的形式:create table if not exists database_nameA.table_nameA like database_nameB.table_nameB;當你目前在那個數據庫的工作空間時,就可以省略該數據庫的名字。

一、二、複製表的結構及數據

複製表的結構和數據有兩種做法:1、先複製表結構再添加數據;2、複製表的同時直接複製數據。

1、先複製表結構再添加數據

緊接着第一步,再將表結構複製過去之後,我們開始添加數據。

hive> insert into xpu.test_iot_devicelocation select * from iot_devicelocation;

寫法如下所示: insert into database_nameA.table_nameA select * from table_nameB;底層其實是依靠MapReduce去實驗數據複製的,有點類似於是sqoop複製數據的原理。

2、同時複製表和數據

hive> create table test_iot_deviceenergytype as select * from cserver.iot_deviceenergytype;

這裏我們將數據庫的工作空間切換到xpu數據庫。此後我們寫複製語句如下所示:create table table_nameA as select * from database_nameB.table_nameB;   執行結果如下圖所示:基本跟1中的方法一致,但是操作起來會更方便簡潔,因此推薦這種方法。

我們驗證一下結果,可以看出我們已將所有表都成功複製到xpu數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章