hive 標準hql建表語法格式

来源:https://www.cnblogs.com/feiquan/archive/2019/08/07/11315530.html
-Advertisement-
Play Games

一.標準hql建表語法格式1.官方標準語法:(hql不區分大小寫,下麵[]里的屬性是可選屬性) 具體參考官網界面:HIVE官網建表說明文檔 二.標準建表語法各項參數說明1.CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異常;用戶可以用 IF NOT EXISTS 選 ...


一.標準hql建表語法格式
1.官方標準語法:(hql不區分大小寫,下麵[]里的屬性是可選屬性)

具體參考官網界面:HIVE官網建表說明文檔

  CREATE [EXTERNAL] TABLE [IF NOT EXISTS]     table_name      
  [(col_name   data_type   [COMMENT col_comment], ...)]  
  [COMMENT   table_comment]   
  [PARTITIONED BY(col_name data_type [COMMENT col_comment], ...)]
  [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]  


二.標準建表語法各項參數說明
1.CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異常;用戶可以用 IF NOT EXISTS 選項來忽略這個異常,一般也可以不加這個IF NOT EXISTS語句,最多拋出錯誤。

2.EXTERNAL關鍵字可以讓用戶創建一個外部表,預設是內部表,外部表在建表的必須同時指定一個指向實際數據的路徑(LOCATION),Hive 創建內部表時,會將數據移動到數據倉庫指向的路徑;若創建外部表,僅記錄數據所在的路徑,不對數據的位置做任何改變。在刪除表的時候,內部表的元數據和數據會被一起刪除,而外部表只刪除元數據,不刪除數據。

3.COMMENT 後面跟的字元串是給表欄位或者表內容添加註釋說明的,雖然它對於表之間的計算沒有影響,但是為了後期的維護,所以實際開發都是必須要加COMMENT的。

4. PARTITIONED BY其實是給表做分區,決定了表是否是分區表。Hive中所謂分區表就是將表裡新增加一個欄位,就是分區的名字,這樣你在操作表中的數據時,可以按分區欄位進行過濾。具體分區解釋後面博客有說明。

5.[ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ] 這裡指定表存儲中各列的劃分格式,預設是\001,這裡指定的是逗號分隔符,還可以指定其他列的分隔符,看實際需求

6.STORED AS   SEQUENCEFILE|TEXTFILE|RCFILE如果文件數據是純文本,可以使用 STORED AS TEXTFILE。如果數據需要壓縮,使用 STORED AS SEQUENCEFILE。這裡主要牽涉到hive存儲的三種文件格式,具體區別參考後續博客。

7.CLUSTERED BY對於每一個表(table)或者分區, Hive可以進一步組織成桶,也就是說桶是更為細粒度的數據範圍劃分。Hive也針對某一列進行桶的組織。Hive採用對列值哈希,然後除以桶的個數求餘的方式決定該條記錄存放在哪個桶當中

8.LOCATION 其實是定義hive表的數據在hdfs上的存儲路徑,一般管理表(內部表不不要自定義),但是如果定義的是外部表,則需要直接指定一個路徑。實際上不指定也沒事,會使用預設路徑


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前筆者常常接觸的資料庫是關係型資料庫,其中MySQL接觸居多。近年來NoSQL興起,各種新型資料庫不斷誕生,redis就是NoSQL中的一種熱門資料庫。 註:此類文章僅僅作為筆者的學習和閱讀積累,若有出錯之處,敬請諒解。 一、redis的數據類型 對於redis資料庫的介紹,這裡就不說了,大家可自 ...
  • 問題: 今天一同事請教博主,他拼接了一個語句,select表格形式數據,然後使用@@rowcount獲取到行數。 但他又有這樣特別的需求:想只獲取行數而不返回表格數據結果,因為是while迴圈,不想返回那麼多次表格到客戶端,而且後面又想復用這個返回表格形式數據的腳本字元串,不想在這個腳本字元串上改成 ...
  • 一、MySQL基操 •MySQL啟動 註意:MySQL不能直接通過 mysql.exe 命令啟動 MySQL客戶端訪問服務端需要尋找匹配:連接認證 連接:IP和埠確定,如果是本地都可以忽略 -h 主機地址 >> -hlocalhost(可以是IP) -P 埠 >> -P3306 認證:通過用戶名 ...
  • 過程:封裝了若幹條語句,調用時,這些封裝體執行 函數:是一個由返回值的’過程‘ 過程是沒有返回值的函數 我們把若幹條sql封裝起來,起個名字 過程 把此過程存儲在資料庫中 存儲過程 存儲過程的額創建語法: create procedure procedureName() begin sql語句; e ...
  • 請耐心看完,特別是這兒學的亂的 一點點看底面的代碼分析你一定會懂的 rownum:是偽號的意思,Oracle專有,不屬於任何表,但是任何表都可以使用! 作用:用以給查詢出來的所有元組加上行號 規則:1,預設是從1開始,依次遞增。 2,不能去點rownum 3,rownum寫在哪個select中,這個 ...
  • 資料庫系統原理(一) 資料庫系統概述 1. 資料庫基本概念 什麼是數據? 數據(Data) 是描述事物的符號記錄,是指利用物理符號記錄下的、可以鑒別的信息 數據是信息存在的一種形式,只有通過解釋或處理的數據才能成為有用的信息 數據要按照一定的數據模型組織、描述和存儲,具有較小的冗餘度、較高的數據獨立 ...
  • 1.https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html 在此頁面下載安裝JDK12,版本可能有更新 2.https://www.elastic.co/cn/downloads/pa ...
  • 清理歸檔日誌 ogg使用需要開啟歸檔日誌,歸檔日誌會隨著時間的推移逐漸增多,占滿空間,導致應用無法正常運行。 如果歸檔日誌滿了會報錯 檢查flash recovery area的使用情況 解決辦法:使用rman ,採用定時任務,定時清理。 定時任務腳本: OracleArchLogClear.bat ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...