導航:首頁 > 數據分析 > 外部表數據放在哪裡

外部表數據放在哪裡

發布時間:2023-01-20 18:22:06

㈠ hive外部表分區

內部表:
數據由hive自身管理 存儲在hive指定的hdfs目錄中 刪除會刪除數據本身
外部表(external):
數據存儲在用戶使用location關鍵字指定的hdfs目錄中 hive中僅存儲一份元數據 刪除操作不會影響到hdfs中原本的數據文件

將hdfs中文件存儲在不同的目錄下 hive查詢時僅查詢指定目錄下的數據 避免掃描全部文件 可以極大的加速查詢 hive支持靜態分區和動態分區
靜態分區由用戶指定分區所在的目錄 而動態分區由表中的某一個欄位來決定每條數據所在的分區

創建了一個bill表其中包含三個業務欄位
partitioned by (day int) 指定了day為分區標志 在查詢時使用 where day = 20201010 來指定分區

為bill表添加一個分區目錄20201010 當指定day = 20201010時 將在這個分區查詢數據
隨日期增加 需要手動將對應日期的目錄作為分區添加到bill中 可以使用crontab 每天自動執行一次添加分區的操作

㈡ hive中創建外部分區表使用location是指定數據存放位置還是指數據來源

指定數據存放位置,如果沒有指定,就會在hdfs的默認位置建立表文件。

Hive 沒有專門的數據存儲格式,也沒有為數據建立索引,用戶可以非常自由的組織 Hive 中的表,只需要在創建表的時候告訴 Hive 數據中的列分隔符和行分隔符,Hive 就可以解析數據。

Hive 中所有的數據都存儲在 HDFS 中,Hive 中包含以下數據模型:表(Table),外部表(External Table),分區(Partition),桶(Bucket)。

(2)外部表數據放在哪裡擴展閱讀:

Hive中的表和資料庫中的表在概念上相似。 每個表在Hive中都有一個對應的目錄來存儲數據。

例如,一個表pvs,其在HDFS中的路徑為:/ wh / pvs,其中wh是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的數據倉庫的目錄,所有表數據( 不包括外部表)存儲在此目錄中。

Partition對應於資料庫中的 Partition 列的密集索引,但是Hive中的Partition的組織方式與資料庫中的完全不同。 在Hive中,表中的Partition與表下的目錄相對應,所有Partition的數據都存儲在相應的目錄中。

㈢ 外部表的外部表的特性

(1) 位於文件系統之中,按一定格式分割,如文本文件或者其他類型的表可以作為外部表。
(2) 對外部表的訪問可以通過SQL語句來完成,而不需要先將外部表中的數據裝載進資料庫中。
(3) 外部數據表都是只讀的,因此在外部表不能夠執行DML操作,也不能創建索引。
(4) ANALYZE語句不支持採集外部表的統計數據,應該使用DMBS_STATS包來採集外部表的統計數據。
(5) 可以查詢操作和連接。可以並行操作。
(6) 數據在資料庫的外部組織,是操作系統文件。
(7) 操作系統文件在資料庫中的標志是通過一個邏輯目錄來映射的。

㈣ 生產環境中為什麼建議使用外部表

因為外部表不會載入數據到hive,減少數據傳輸、數據還能共享。hive不會修改數據,所以無需擔心數據的損壞,刪除表時只刪除表結構、不刪除數據。

生產環境是正式提供對外服務的,一般會關掉錯誤報告,打開錯誤日誌,是最重要的環境。部署分支一般為master分支。

(4)外部表數據放在哪裡擴展閱讀:

注意事項:

位於文件系統之中,按一定格式分割,如文本文件或者其他類型的表可以作為外部表。對外部表的訪問可以通過SQL語句來完成,而不需要先將外部表中的數據裝載進資料庫中。

外部數據表都是只讀的,因此在外部表不能夠執行DML操作,也不能創建索引。ANALYZE語句不支持採集外部表的統計數據,應該使用DMBS_STATS包來採集外部表的統計數據。

在創建外部表的時候,並沒有在資料庫中創建表,也不會為外部表分配任何的存儲空間。創建外部表只是在數據字典中創建了外部表的元數據,以便對應訪問外部表中的數據,而不在資料庫中存儲外部表的數據。簡單地說,資料庫存儲的只是與外部文件的一種對應關系,如欄位與欄位的對應關系。

㈤ 資料庫中的數據到底是放在哪了

access有文件
oracle,sql的話,也有個數據文件和日誌文件
還有其他的都有文件
fox是一個個的文件

㈥ Hive內部表、外部表、分區表、桶表概述

  Hive是基於Hadoop的一個數據倉庫,可以將結構化的數據文件映射為一張表,並提供類sql查詢功能,Hive底層將sql語句轉化為maprece任務運行。Hive是一個數據倉庫,不支持行級插入、更新以及刪除操作。Hive共有四種表,分別是內部表、外部表、分區表和桶表。

 1. 內部表

  內部表有時也被稱為管理表。這種表會控制著數據的生命周期,Hive默認情況下會將這些表的數據存儲在由配置項hive.metastore.warehouse.dir所定義的目錄的子目錄下。當我們刪除內部表時,同時會刪除這個表中的數據。內部表不方便與其他工具共享數據。

  創建一個內部表可以用如下語句:

 2. 外部表

  外部表指向特定目錄的一份數據,Hive並不對該數據具有所有權。當刪除表時,不會刪除該目錄下的數據,數據可以被多個工具共享。即外部表只是對數據進行邏輯管理,創建一個外部表需要用external關鍵字:

 3. 分區表

   分區表是一種內部表。分區表通過指定一個或多個partition key,決定數據存放方式,進而優化數據的查詢。每個表可以指定多個partition key,每個partition在hive中以文件夾的形式存在。如下所示是對數據的年份進行分區,每個年份對應一個文件夾,年份相同的數據會放到同一個文件夾下:

  創建分區表時要注意開啟允許動態分區設置,必要的時候還需要設置允許創建的最大分區數。

  創建分區表可以用以下語句:

 4. 桶表

  桶表也是內部表,桶表是對某一列的數據進行哈希取值以將數據打散,然後放到不用文件中存儲。在Hive分區表中,分區中的數據量過於龐大時,建議使用桶。在分桶時,對指定欄位的值進行hash運算得到hash值,並使用hash值除以桶的個數取余進行分桶。分桶後的查 詢效率比分區後的查詢效率更高。下圖是按照年份分區,再按id進行分桶後的結構:

  建表語句:

  end!

㈦ 有個疑問,比如Mysql資料庫,他存的數據到底放在哪

mysql資料庫會在硬碟上建立相應的各種數據文件,然後會把數據分文別類的放到各個數據文件上。至於文件的位置,當然是在你安裝的硬碟上。
主要分為幾類文件

(1)存放表結構的frm文件:文件名與表名相同,每個表對應一個同名frm文件
(2)根據資料庫管理方式的不同(myisam和innodb兩種方式)設置不同的文件
myiasm:
MYD文件:表數據文件
.MYI文件:索引文件
.log文件:日誌文件
innodb:
InnoDB資料庫文件(即InnoDB文件集):
ibdata1、ibdata2等:系統表空間文件,存儲InnoDB系統信息和用戶資料庫表數據和索引,所有表共用
ibd文件:單表表空間文件,每個表使用一個表空間文件(file per table),存放用戶資料庫表數據和索引
日誌文件: ib_logfile1、ib_logfile2
浙西文件都存在具體的存儲器中,這個存儲器就是硬碟(就算在雲上,其實也是在網路存儲上)。
具體位置跟你安裝的資料庫的位置有關。

閱讀全文

與外部表數據放在哪裡相關的資料

熱點內容
linux映射機制 瀏覽:15
車載地圖打開沒有配置文件 瀏覽:858
5g和數據碼哪個重要 瀏覽:641
藍牙配對成功後如何傳送文件 瀏覽:300
什麼是窗口數據 瀏覽:382
哪個讀書app好一些 瀏覽:527
iOS14屏蔽更新配置文件 瀏覽:792
javafx做界面案例 瀏覽:775
excel如何轉dbase文件 瀏覽:702
手機3d文件打開 瀏覽:225
無印良品書包在哪個APP買 瀏覽:140
大數據建模服務模型 瀏覽:841
復活老照片是什麼app 瀏覽:943
進電商哪些數據分析軟體是免費的 瀏覽:61
oracle做資料庫的程序源碼 瀏覽:201
汽車復合中心編程用什麼軟體好 瀏覽:955
蘋果xr小組件如何添加app 瀏覽:413
mvc配置文件詳解 瀏覽:655
維盟密碼怎麼設置圖解 瀏覽:779
末日類單機游戲安卓 瀏覽:809

友情鏈接