這篇博文將分享給你如何將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;當你目前在那個資料庫的工作空間時,就可以省略該資料庫的名字。
注意:這時候不會複製原表的分隔符。舉個例子,我本來的庫裡面建立的表是以 '|' 來做分隔符的,但是我在將txt檔案的內容匯入(load data)新建的表裡時,再去select表會出現下圖的情況。並不是按列匯入,而是把檔案中的一行當做一列。
這樣的解決方法,我們在複製表的時候,需要指定分隔符:
create table iot_devicelocation like cserver.iot_devicelocation row format delimited fields terminated by '|';
複製表的結構和資料有兩種做法: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資料庫。
Hive操作 複製表結構和資料
create table if not exists database namea.table namea like database nameb.table nameb注意 這時候不會複製原表的分隔符。舉個例子,我本來的庫裡面建立的表是以 來做分隔符的,但是我在將txt檔案的內容匯入 load d...
oracle 複製表結構和資料
1 複製表結構以及資料 create table d table name as select from s table name 注意並不會建立索引 2 只複製表結構 create table d table name as select from s table name where 1 2 3...
sql複製表結構和資料
功能 將查詢的結果放到乙個新錶中去,查詢結果可以 於乙個表或多個表 sqlserver中使用select into語句 按照使用場合可以分為以下幾類 1 實現全表備份 如 select inott1fromtitles 2 備份表的一部分列 不寫 而寫出列的列表 或一部分行 加where條件 如 s...