日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

学习笔记Hive(三) —— Hive应用(1)—— 数据库定义、创建表

發布時間:2025/3/21 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记Hive(三) —— Hive应用(1)—— 数据库定义、创建表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、任務講解

泰坦尼克號乘客信息存儲與分析

泰坦尼克號乘客信息存儲與分析:

  • 創建乘客信息表
  • 導入數據到表中
  • 統計獲救與死亡情況
  • 統計艙位分布情況
  • 統計港口登船人數分布情況
  • 統計性別與生存率的關系
  • 統計客艙等級與生存率的關系
  • 統計登船港口與生存率的關系

二、數據庫定義

2.1、HQL語句簡介

HiveQL是一種類SQL語言,用于分析存儲在HDFS中的數據。

不支持事務及更新操作。

HiveQL 語句通過解釋器轉換為MapReduce 作業提交到Hadoop 集群上, 延遲比較大。


2.2、數據類型

基礎數據類型

復雜數據類型

2.3、Hive CLI

1、執行shell命令
用戶不需要退出hive CLI就可以執行簡單的bash shell命令。只要在命令前加上!并且以分號(;)結尾就可以

2、在Hive中使用Hadoop的dfs命令


2.4、創建與查看數據庫


2.5、創建數據表

(中括號表示可選)

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name #[EXTERNAL]:外表/內表 (col_name data_type [COMMENT col_comment], ...)[PARTITIONED BY (col_name data_type, ...)] #分區表 指定字段[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] #字段將分隔符或行間分隔符[STORED AS file_format] #定義存儲格式[LOCATION hdfs_path] #指定表數據存放的路徑

三、創建表


3.1、創建內表

在train數據庫下創建表person

(在瀏覽器輸入:master:50070可以看到)

數據內容
person.txt(我放在/opt目錄下)

1,Tom,23 2,Kate,24 3,Betty,22 4,Ketty,23 5,Jhon,21

這里有種簡易的方式導入到hive中就是:先上傳到HDFS:


3.2、創建外表

創建Hive外部表external_person,指定HDFS的路徑為/user/root/external/person



數據內容
person.txt(我放在/opt目錄下)

1,Tom,23 2,Kate,24 3,Betty,22 4,Ketty,23 5,Jhon,21

上傳到hdfs:

*補充:內外部差別

學習了內表和外表,那么疑問來了,它們是不是就差別在能否自定義目錄?其實它們的差別主要體現在刪除,別急!看完下面例子你就明白了!

① 先刪除內表和外表

② 查看它們在hdfs的數據文件是否被刪除
內表被刪除了:

外表沒被刪除:

總結內表刪除時會把原數據及hdfs上的數據都刪掉,而外表刪除時只會刪掉原數據不會刪掉hdfs上的數據


3.3、創建泰坦尼克乘客信息表

任務實現:創建泰坦尼克乘客信息表

  • 創建一個內/外部表,指定數據的存放路徑。
  • 通過HDFS命令導入數據到指定路徑。

創建(內)表

數據文件
train.csv
(導入時刪掉頭一行)

上傳到hdfs

查看:


3.4、靜態分區表

  • 創建靜態分區表tidanic_part,字段為:passengerid、survived、 pclass、 name
  • 分區字段為gender,按照性別字段sex分區

OK

3.5、動態分區表

  • 創建動態分區表tidanic_dynamic_part,字段為:passengerid、survived、 name
  • 分區字段為passenderclass,按照pclass值進行分區


(我們可以看出動態分區建表其實和靜態分區的建表是一樣的,他們不同在動態分區進行插入時要初始化)

OK

3.7、創建帶數據的表

  • 創建一個tidanic的子集


3.8、創建桶表

  • 桶是比表或分區更為細粒度的數據范圍劃分。針對某一列進行桶的組織,對列值哈希,然后除以桶的個數求余,決定將該條記錄存放到哪個桶中。

獲得更高的查詢處理效果
抽樣調查

  • 創建桶表,按年齡將數據分到4個桶,抽取兩個桶的數據創建一個新表tidannic_sample



語法:TABLESAMPLE(BUCKET x OUT OF y)

X代表從哪個桶開始抽, y代表抽取桶個數為(桶數/y)個,y必須是桶數的倍數或者因子

總結

以上是生活随笔為你收集整理的学习笔记Hive(三) —— Hive应用(1)—— 数据库定义、创建表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。