操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    對每一個在數據挖掘行業工作的人,在工作中都會時刻面對海量的數據,此時 EXCEL 處理數據的時候就會有一定的困難。此時就需要工程師使用 HIVE 語言去操作數據庫。本文從一個初學者的角度來簡要介紹一下 HIVE 和基本的使用場景,作為初學者,在整理的過程中難免會出現錯誤,希望大家多多指教。

    HIVE 介紹

    (1)hive 是基于 的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的 sql 查詢功能,可以將 sql 語句轉換為 任務進行運行。其優點是學習成本低,可以通過類 SQL 語句快速實現簡單的 統計,不必開發專門的 應用,十分適合數據倉庫的統計分析。

    (2)Hive 是建立在 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 開發者的開發自定義的 和 來處理內建的 和 無法完成的復雜的分析工作。

    使用 hive 的命令行接口,感覺很像操作關系數據庫,但是 hive 和關系數據庫還是有很大的不同,下面我就比較下 hive 與關系數據庫的區別,具體如下:

    Hive 和關系數據庫存儲文件的系統不同,Hive 使用的是 的 HDFS( 的分布式文件系統),關系數據庫則是服務器本地的文件系統;

    hive 使用的計算模型是 ,而關系數據庫則是自己設計的計算模型;

    關系數據庫都是為實時查詢的業務進行設計的,而 Hive 則是為海量數據做數據挖掘設計的,實時性很差;實時性的區別導致 Hive 的應用場景和關系數據庫有很大的不同;

    Hive 很容易擴展自己的存儲能力和計算能力,這個是繼承 的,而關系數據庫在這個方面要比數據庫差很多。

    以上都是從宏觀的角度比較 Hive 和關系數據庫的區別,下面介紹一下在實際工作中遇到的一些常用語句和方法。

    HIVE 基礎hive 常用命令

    假設有數據庫 ,里面有表格

    show ; //列出數據庫

    desc ; // 展示數據庫 的信息

    use ; // 使用某個數據庫 \

    set hive.cli.print..db=true; 顯示列頭

    set hive.cli.print..db=false; 關閉列頭

    show ; // 展示這個數據庫里面的所有表格

    show in ; // 展示數據庫 里面的所有表格

    show like '*ctr*'; // 模糊查找

    show table ; // 獲得表格 的建表語句,其中包括表格的字段,HDFS 的 等信息

    desc ; // 展示表格 的字段以及字段類型

    desc ; // 詳細描述表格 ,包括表格的結構,所在的 ,owner,,表格的類型 ( Table or Table),存儲信息等

    內部表與外部表

    hive 用中間表_hive 用中間表_hive 怎么select中間行

    hive 的表格分兩種,一種是 (內部表),另一種是 (外部表)。hive 創建表格時,默認創建的是 tablehive 用中間表,這種表會把數據移動到自己的數據倉庫目錄下;另外一種是 ,它關聯的數據不是 hive 維護的,也不在 hive 的數據倉庫內。

    創建內部表格和外部表格:

    table test(name );

    table test(name ); 創建外部表格需要加上;

    修改表屬性:

    alter table test set (‘’=’TRUE’); 內部表轉外部表

    alter table test set (‘’=’FALSE’); 外部表轉內部表

    歸納一下Hive中表與外部表的區別:

    1. 在導入數據到外部表,數據并沒有移動到自己的數據倉庫目錄下(如果指定了的話),也就是說外部表中的數據并不是由它自己來管理的!而內部表則不一樣;

    2. 在刪除內部表的時候,Hive 將會把屬于表的元數據和數據全部刪掉;而刪除外部表的時候,Hive 僅僅刪除外部表的元數據,數據是不會刪除的!換言之hive 用中間表,內部表 DROP 時會刪除 HDFS 上的數據;外部表 DROP 時不會刪除 HDFS 上的數據。

    3. 在創建內部表或外部表時加上 的效果是一樣的,只不過表目錄的位置不同而已,加上 用法也一樣,只不過表目錄下會有分區目錄而已,load data local 直接把本地文件系統的數據上傳到 hdfs 上,有 上傳到 指定的位置上,沒有的話上傳到 hive 默認配置的數據倉庫中。

    4. 使用場景:內部表:HIVE 中間表,結果表,一般不需要從外部(如本地文件,HDFS 上 load 數據)的情況;外部表:源表,需要定期將外部數據映射到表格中。

    創建表格

    table test1 like test; 只是復制了表的結構,并沒有復制內容;

    table test2 as name from test; 從其他表格查詢,再創建表格;

    創建表的語法選項特別多,這里只列出常用的選項。

    其他請參見Hive官方文檔:

    +DDL#-

    舉一個例子來說吧:建立一張表

    TABLE (

    id INT,

    ip ‘訪問者IP’,

    hive 用中間表_hive 怎么select中間行_hive 用中間表

    (5,1),

    (6,5)

    ) ‘’

    BY (day )

    ROW

    BY ‘,’

    AS

    ‘hdfs://cdh5/tmp//’;

    (1)關鍵字 :表示該表為外部表,如果不指定關鍵字,則表示內部表

    (2)關鍵字 :為表和列添加注釋

    (3)關鍵字 BY:表示該表為分區表,分區字段為day,類型為

    (4)關鍵字 ROW :指定表的分隔符,通常后面要與以下關鍵字連用:

    BY ‘,’ //指定每行中字段分隔符為逗號

    LINES BY ‘\n’ //指定行分隔符

    ITEMS BY ‘,’ //指定集合中元素之間的分隔符

    MAP KEYS BY ‘:’ //指定數據中 Map 類型的 Key 與 Value 之間的分隔符

    (5)關鍵字 AS:指定表在 HDFS 上的文件存儲格式,可選的文件存儲格式有:

    //文本,默認值

    // 二進制序列文件

    //列式存儲格式文件 Hive0.6 以后開始支持

    ORC //列式存儲格式文件,比 有更高的壓縮比和讀寫效率,Hive0.11以后開始支持

    //列出存儲格式文件,Hive0.13以后開始支持

    hive 用中間表_hive 用中間表_hive 怎么select中間行

    (6)關鍵詞 :指定表在HDFS上的存儲位置。

    注:hive 建表的時候默認的分隔符是’\001’,如果建表的時候沒有指定分隔符,load文件的時候的分隔符是’\001’。如果需要在建表的時候指定分隔符,需要如下操作:

    table pokes(foo int,bar )

    row by ‘\t’ lines by ‘\n’ as ;

    load data local ‘/root/pokes.txt’ into table pokes;

    修改表格

    alter table add ( ‘上報日期時間’) //為表格增加列

    alter table test to test2; //修改表名

    alter table test add (day=); //增加分區

    alter table test drop (day=); //刪除分區

    alter table test (day=) to (day=); //修改分區

    load data local ‘///’ into table test; // 從文件加載數據:覆蓋原來數據

    load data local ‘///’ into table test; // 從文件加載數據:添加數據

    ‘tmp/’ a.* from test a; // 導出數據到文件

    查詢和分析數據

    dfs-ls/user/hive//.db/ // 查看 hdfs 文件信息

    .cli.print.=true; 顯示列名稱

    .cli.print.=false; 不顯示列名稱

    (i)基礎操作

    假設表格 的格式是:owner (), key (), value (int), day ();

    * from ; // 查找數據

    * from limit 10; // 查找10行數據

    hive 用中間表_hive 用中間表_hive 怎么select中間行

    * from =; //查詢 day= 的數據

    * where day >= and day= 并且 day=2.3.0 : yarn -kill $

    獲取所有運行的 jobId: yarn -list

    FS Shell

    調用文件系統 (FS)Shell 命令應使用bin/ fs 的形式。所有的的 FS shell 命令使用 URI路徑作為參數。URI 格式是

    :///path。

    對HDFS文件系統, 是hdfs,對本地文件系統, 是file。其中 和 參數都是可選的,如果未加指定,就會使用配置中指定的默認 。一個 HDFS 文件或目錄比如//child可以表示成

    hdfs://://child,

    或者更簡單的

    //child

    (假設你配置文件中的默認值是:)。大多數 FS Shell 命令的行為和對應的 Unix Shell 命令類似,不同之處會在下面介紹各命令使用詳情時指出。出錯信息會輸出到,其他信息輸出到。

    fs 最常用的命令:

    fs -ls //查看HDFS目錄下的文件和子目錄

    fs -mkdir //在HDFS上創建文件夾

    fs -rm //刪除HDFS上的文件

    fs -rmr //刪除HDFS上的文件夾

    fs -put //將本地文件copy到HDFS上

    fs -get //復制HDFS文件到本地

    fs -cat //查看HDFS上某文件的內容

    fs 查看目錄下文件夾或者文件的大小:

    //單位Byte:

    fs -du / | sort -n

    hive 用中間表_hive 用中間表_hive 怎么select中間行

    //單位MB:

    fs -du / | awk -F ‘ ‘ ‘{ “%.2fMB\t\t%s\n”, $1/1024/1024,$2}’ | sort -n

    //單位GB,大于1G:

    fs -du / | awk -F ‘ ‘ ‘{num=$1/1024/1024/1024; if(num>1){ “%.2fGB\t\t%s\n”, num, $2} }’ | sort -n

    sort -n 表示按照文件大小,從小到大排列順序。

    fs -du-

    使用 -h 顯示 hdfs 對應路徑下每個文件夾和文件的大小,文件的大小用方便閱讀的形式表示,例如用64M代替

    其余FS Shell命令:

    fs -cat //將路徑指定的文件內容輸出到

    fs -tail //將文件尾部1k字節的內容輸出到

    fs -stat //返回指定路徑的統計信息

    fs -du //返回目錄中所有文件的大小,或者只指定一個文件時,顯示該文件的大小

    詳細可見:

    概述

    (分布式拷貝)是用于大規模集群內部和集群之間拷貝的工具。 它使用Map/ 實現文件分發,錯誤處理和恢復,以及報告生成。它把文件和目錄的列表作為 map 任務的輸入,每個任務會完成源列表中部分文件的拷貝。由于使用了 Map/ 方法,這個工具在語義和執行上都會有特殊的地方。這篇文檔會為常用 操作提供指南并闡述它的工作模型。

    詳細可見:

    推薦教材:

    《SQL基礎教程》,作者 【日】MICK 著,孫淼,羅勇 譯

    《HIVE編程指南》, , Dean ,Jason 著,曹坤 譯

    最后附上一張圖表:HIVE 學習路線圖

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有