【轉】HiveQL:對資料定義的學習

來源:互聯網
上載者:User

標籤:

1.Hive中的資料庫:

它是表的一個目錄或者命名空間,用來避免表命名衝突,我們通常使用資料庫來將生產表組織成邏輯組。

基本命令:

(1)建立一個資料庫(如果不存在該資料庫):

create database if not exists time;

(2)查看Hive中所包含的所有資料庫:

show databases;

註:Hive會為每個資料庫建立一個目錄,資料庫中的表將會以這個資料庫目錄的子目錄形式儲存,有一個例外是default資料庫中的表,default目錄中的表會預設直接儲存在hive.metastore.warehouse.dir之下。

我們可以設定屬性hive.cli.print.current.db=true來讓hive的CLI顯示的指出當前工作在哪一個資料庫下:

如上,先是在default目錄下,使用use time;命令後切換到time資料庫下。

2. Hive中資料的儲存:

分為中繼資料、“真實”資料和日誌:

(1)中繼資料:預設情況下,Hive中繼資料儲存在內建的 Derby 資料庫中,只能允許一個會話串連,只適合簡單的測試。為了支援多使用者多會

話,則需要一個獨立的中繼資料庫,筆者使用 MySQL 作為中繼資料庫,Hive 內部對 MySQL 提供了很好的支援。

我們可以進入mysql中查看hive中表的中繼資料:

預設的中繼資料的表有:

其中主要涉及的表有:

例如:我們在mysql中查看hive中繼資料資訊的TBLS表:

作為對照,我們查看hive中是否存在log表和hive_test表:

註:在hive的安裝過程中有三種模式:

內建模式:中繼資料保持在內嵌的Derby模式,只允許一個會話串連 

本地獨立模式:在本地安裝Mysql,把中繼資料放到Mysql內 

遠程模式:中繼資料放置在遠端Mysql資料庫

(2)“真實”資料:存在hdfs上。

(3)日誌:存在本地/tmp/${user_name}/hive.log (例如:/tmp/hadoop/hive.log 是筆者的存放路徑)

3. Hive中的表:分為內部表(又叫管理表)和外部表格。

(1)若建立內部表,會將資料移動到資料倉儲指向的路徑。在刪除內部表的時候,內部表的中繼資料和資料會被一起刪除;

(2)若建立外部表格,僅記錄資料所在的路徑,不對資料的位置做任何改變(即資料已經存在hdfs上,新建立的表指向它)。外部表格只刪除中繼資料,不刪除資料。這樣外部表格相對來

說更加安全些,資料群組織也更加靈活,方便共用來源資料。

4. 對錶進行分區:

(1)在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分資料,因

此建表時引入了partition概念——>更快的查詢,提高效能!

(2)分區表指的是在建立表時指定的partition的分區空間。如果需要建立有分區的表,需要在create表的時候調用可選參

partitioned by。

eg:create table employees (name string , salary string) partitioned by (country string , state string);

此時我們只是聲明了employees表有分區結構,但還沒有建立分區,我們可以通過載入資料的方式建立分區,也可以通過alter命令增加、修改、刪除分區。如下筆者使用第一種方法建立分區並上傳資料:

eg:load data local inpath ‘/home/hadoop/extend/data_employees‘ into table employees partition (country=‘US‘,state=‘CA‘);

Hive會建立這個分區對應的目錄,並上傳檔案到這個目錄下。

註:Hive並不會驗證使用者裝載的資料和表的模式是否匹配。然而,Hive會驗證檔案格式是否和表結構定義的一致,即如果在表建立時定義的儲存格式是SEQUENCEFILE,那麼裝載進去的檔案也必須是sequencefile格式。

【轉】HiveQL:對資料定義的學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.