Hql 資料定義

2021-07-11 23:09:06 字數 958 閱讀 1553

引數設定

1.set hive.cli.print.current.db=true可以上cli顯示當前的資料庫名稱;

2.可以用like 配合正規表示式查詢相應條件的資料庫名。show database like 'hji.*';//顯示以hji開頭的資料庫

3.用create database建立資料庫的時候會在hive.metastore.warehouse.dir相應的目錄下建立相應資料庫命名的資料夾,下面儲存表

(default資料庫除外,沒有default.db命名的資料夾存在)

4.用關鍵字comment可以新增描述資訊。

5.hive不允許使用者刪除乙個有表的資料庫的,要刪除可以再後面新增cascade。如:drop database financial cascade;

(如果某個資料庫被刪除了其相應的資料夾也會被刪除)

6.修改資料庫

alter database financial set dbproperties('edited-by'='hadoop');

7.在建立表時,如果當前所在的資料庫並非目標資料庫可以用create table 資料庫名.tablename建立。可以用comment為每個字段新增解釋資訊。

8.使用者還可以拷貝一張已經存在的表,create[external] table if not exists 資料庫名.student1 like 資料庫名.student;

9.建立表時可以partition指定分割槽情況,如:

create table student(id int,name string,class string,provice string)partition by (class string,provice string);

查詢時可以用select * from student where class='....' anf provice='hebei';

對於非常大的資料集,分割槽可以顯著地提高查詢效能。

HQL排查資料傾斜

如果某個key下記錄數遠超其他key,在join或group的時候可能會導致某個reduce任務特別慢。可能會導致下面2個問題 1 某個reduce task,卡在99.9 半天不動 2 任務超時被殺掉 通過時間判斷 如果某個reduce的時間比其他reduce時間長的多。才可以檢視web ui,大...

hql補充 自定義函式操作

檢視資料庫 show create database hive test 檢視表show create table page view 表結構desc formatted page view 載入資料到表 load data local inpath home test hive 2.3.7 dat...

HQL 資料庫操作

1 建立資料庫 1.1 語法create database if notexists database name 指定庫名稱 comment database comment 庫批註 location hdfs path 指定庫的位置 with dbproperties property name ...