當前位置:首頁 » 服務存儲 » hive是如何存儲的
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hive是如何存儲的

發布時間: 2022-04-14 08:55:53

Ⅰ Hive元資料庫是用來做什麼的,存儲哪些信息

本質上只是用來存儲hive中有哪些資料庫,哪些表,表的模式,目錄,分區,索引以及命名空間。為資料庫創建的目錄一般在hive數據倉庫目錄下。

Ⅱ hive分桶表的儲存格式是什麼固定的還是可以隨意指定

對於每一個表或者是分區,Hive可以進一步組織成桶,也就是說桶是更為細粒度的數據范圍劃分。Hive是針對某一列進行分桶。Hive採用對列值哈希,然後除以桶的個數求余的方式決定該條記錄存放在哪個桶中。分桶的好處是可以獲得更高的查詢處理效率。使取樣更高效
hive表數據是在hdfs中儲存的並沒有固定的儲存格式,hive只保存管理表元數據。
桶就是將數據表由一個文件存儲分為多個文件存儲
分桶語法:
create table t_buck(id string,name string)
clustered by (id) into 4 buckets;
指定了根據id分成4個桶,最好的導入數據方式是insert into table.
要開啟模式開關 
set hive.enforce.bucketing = true;
set maprece.job.reces=4;
查詢時cluster by指定的欄位就是partition時分區的key

Ⅲ hive的幾種文件格式

hive文件存儲格式包括以下幾類:

1、TEXTFILE

2、SEQUENCEFILE

3、RCFILE

4、ORCFILE(0.11以後出現)

其中TEXTFILE為默認格式,建表時不指定默認為這個格式,導入數據時會直接把數據文件拷貝到hdfs上不進行處理;

SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接從本地文件導入數據,數據要先導入到textfile格式的表中, 然後再從表中用insert導入SequenceFile,RCFile,ORCFile表中。

前提創建環境:

hive 0.8

創建一張testfile_table表,格式為textfile。

create table if not exists testfile_table( site string, url string, pv bigint, label string) row format delimited fields terminated by ' ' stored as textfile;

load data local inpath '/app/weibo.txt' overwrite into table textfile_table;

一、TEXTFILE
默認格式,數據不做壓縮,磁碟開銷大,數據解析開銷大。
可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,
從而無法對數據進行並行操作。
示例:

總結:
相比TEXTFILE和SEQUENCEFILE,RCFILE由於列式存儲方式,數據載入時性能消耗較大,但是具有較好的壓縮比和查詢響應。數據倉庫的特點是一次寫入、多次讀取,因此,整體來看,RCFILE相比其餘兩種格式具有較明顯的優勢。

Ⅳ 如何通俗地理解Hive的工作原理

Hive是建立在 Hadoop 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化載入(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 sql 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 MapRece 開發者的開發自定義的 mapper 和 recer 來處理內建的 mapper 和 recer 無法完成的復雜的分析工作。
流程大致步驟為:
1. 用戶提交查詢等任務給Driver。
2. 編譯器獲得該用戶的任務Plan。
3. 編譯器Compiler根據用戶任務去MetaStore中獲取需要的Hive的元數據信息。
4. 編譯器Compiler得到元數據信息,對任務進行編譯,先將HiveQL轉換為抽象語法樹,然後將抽象語法樹轉換成查詢塊,將查詢塊轉化為邏輯的查詢計劃,重寫邏輯查詢計劃,將邏輯計劃轉化為物理的計劃(MapRece), 最後選擇最佳的策略。
5. 將最終的計劃提交給Driver。
6. Driver將計劃Plan轉交給ExecutionEngine去執行,獲取元數據信息,提交給JobTracker或者SourceManager執行該任務,任務會直接讀取HDFS中文件進行相應的操作。
7. 獲取執行的結果。
8. 取得並返回執行結果。

Ⅳ timestamp類型hive怎麼存儲的

先明白數據倉庫的作用--存儲歷史數據-進而對數據進行分析,只提供查詢-不提供修改

1。Hive 的目標是做成數據倉庫,所以它提供了SQL,提供了文件-表的映射關系,又由於Hive基於HDFS,所以不提供Update,因為HDFS本身就不支持。
2.HBase 是NoSQL資料庫-所以不要跟傳統混淆並談-NoSQL 提供的是另一種思路來滿足高性能的需求,而這些是傳統資料庫的短板,與傳統資料庫的理念不一樣
3.load data 這個可以自己去查。Hbase要使用自己的API
4.是的。
5.這句話不對。
6.映射就是結構對應-如文件每一行的第一個欄位-映射到Hive表的第一個欄位
類似Hibernate的語法解析。

Ⅵ 分布式環境下hive的外部表是如何存儲的

第一、hive本身是不存儲數據的,不論外表、內表,hive的所有數據是存放在hdfs文件系統的。
第二、基於上面,你的問題就轉變為hdfs的文件是如何存儲的了,hdfs的文件是以塊block存儲的,每個塊分布在多台機器上面,每個塊的信息以及存放路徑則存放在nameNode節點的元數據里邊。

Ⅶ Hive日誌默認存儲在什麼位置

hive.log.dir就是日誌存儲在目錄/tmp/${user.name}(當前用戶名)/下
而hive.log就是hive日誌文件的名稱

Ⅷ hive工作時,數據是存儲在mysql還是hdfs

存儲的數據都在hdfs,元數據等可能存儲於mysql或者deby等

Ⅸ 大數據Hive倉庫是什麼

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射成一張表,並提供類SQL查詢功能;其本質是將HQL轉化成MapRece程序。

  • 構建在Hadoop之上的數據倉庫:

  • 使用HQL作為查詢介面

  • 使用HDFS存儲

  • 使用MapRece計算

  • 靈活性和擴展性比較好:支持UDF,自定義存儲格式等:

  • 適合離線數據處理

Ⅹ hive能存儲數據嗎

能,hive的存儲位置是HDFS