先說結論 不能重名個
剛接觸hive 看到 內外表這個 標誌的時候第一反應是隔絕開的 ,所以有個疑問就是 內錶外表是否可以重名
建立外表
create external table if not exists dept(
deptno int,
dname string,
loc int
)row format delimited fields terminated by '\t';
檢視資訊 部分刪除
hive> desc formatted dept ;ok
table type: external_table
驗證再有 if not exists 是否存在判讀的過程中 是否可以覆蓋原表 或者 建立一張內錶
hive> create external table if not exists dept(
> deptno int,
> dname string,
> loc int
> )
> row format delimited fields terminated by '\t';
oktime taken: 0.463 seconds
hive> show tables ;
okdept
time taken: 0.04 seconds, fetched: 1 row(s)
hive> desc formatted dept ;
oktable type: external_table
檢視之後發現 dept 表只有乙個 , 而且依舊是外表說明 既不會出現多個 也不會覆蓋原有表型別
hive> create table dept(
> deptno int,
> dname string,
> loc int
> )
> row format delimited fields terminated by '\t';
failed: execution error, return code 1 from org.apache.hadoop.hive.ql.exec.ddltask. alreadyexist***ception(message:table dept already exists)
hive>
去除掉 if not exists 直接報表純在的錯誤
結論 hive內外表不可以重名
(其實很簡單 如果兩個表名重複 在查詢時候語句沒有要求 內外表 查詢需要加 特殊標識 )
名稱重複 select 一定會有問題 反推就知道內外表名稱不能重複
hive內外表比較與切換
內錶與外表比較 create external table if notexists db name.table name col name data type comment col comment partitioned by col name data type comment col com...
Hive 之內 外表 與 分割槽表 桶表區別
內錶 刪表刪資料 hdfs上的檔案資料 外表 刪表不刪資料 hdfs上的檔案資料 外表 包含external 的表叫外部表 分割槽表 加入分割槽避免hive select查詢中掃瞄整個表內容,會消耗很多時間做沒必要的工作。例如每一天的日誌存放在乙個分割槽中,這樣根據特定的日期查詢 乙個表可以擁有乙個...
EsgynDB 建立Hive外表
esgyndb支援直接讀取hive metadata訪問hive原生表,從而繞過了hive自身需要經過map reduce的動作而減少延遲。一般情況下,使用esgyndb的sql引擎去訪問hive原生錶比使用hive本身的map reduce方式的效能要高出很多倍。從esgyndb執行對hive原生...