從零自學Hadoop(24):Impala相關操作上

来源:http://www.cnblogs.com/mephisto/archive/2017/07/31/7260593.html
-Advertisement-
Play Games

上一篇,我們介紹Impala的介紹及安裝。    下麵我們開始繼續進一步的瞭解Impala的相關操作。 ...


  閱讀目錄

本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

     上一篇,我們介紹Impala的介紹及安裝。

   下麵我們開始繼續進一步的瞭解Impala的相關操作。

資料庫相關

一:創建

  在這裡,資料庫就是一個目錄結構,當然對於的元數據還會持久化到關係型資料庫。

create database dbtest;

二:查看

  可以查看當前可用的資料庫。

show databases;

三:刪除

  刪除制定的資料庫,會刪除資料庫中的表,及數據,hdfs文件。資料庫對於的hdfs目錄結構也會被刪除。

drop database dbtest1;

四:切換當前資料庫

  預設的是default資料庫,切換了後,可以直接使用當前資料庫中的表。

use dbtest;

 

表相關

一:創建

create table student
(
id string  ,
name string  ,
sex  string     ,
birthday  timestamp 
);

二:創建分區表

  分區表可以根據存放數據,這樣在分析的時候,可以只使用對應分區的數據,可以大大的降低檢索的數據量,提高分析性能。

create table student_p
(
id string  ,
name string  ,
sex  string     ,
birthday  timestamp 
)
partitioned by (year string,month string,day string);

  這裡定義了year,month,day 這3層分區。

三:查看表明細

  顯示表的元數據,包括列名,類型等等。

desc student;

 

 

 

  formatted參數可以顯示更多信息,顯示格式與hive類似。包括底層詳細信息,創建時間,格式,hdfs文件位置等等。

desc formatted student_p;

四:查看當前資料庫已有的表

show tables;

五:HDFS目錄

  可以看到在dbtest.db的目錄下有兩個我們建好表的目錄。

 六:修改表

  ALTER TABLE 語句用來修改現有表的結構或屬性。在 Impala 里,這是一個邏輯操作,更新了 Impala 和 Hive 共用的 metastore 資料庫中表的元數據; ALTER TABLE 語句不會對實際的數據文件進行重寫、移動等操作。因此,你可能需要相應的物理文件系統操作才能實現移動數據文件到不同的 HDFS 目錄,重寫數據文件來包含其他欄位,或轉換成不同的文件格式。

七:重命名錶

alter table student rename to student1;

  對於內部表,這一操作實際地修改了包含數據文件的 HDFS 目錄名;原始目錄將不再存在。

八:增加列  

alter table student1 add columns (addr string);

九:替換列  

alter table student1 replace columns(id int,name string, sex string,tel int);

  當替換列時,原有列的定義都被廢棄。你可能會在收到一組新的有不同數據類型或不同順序的列的數據文件時使用這一技術(數據文件會被保留,因此當新列與舊列不相容時,需要在執行進一步的查詢前,使用 INSERT OVERWRITE 或 LOAD DATA OVERWRITE 語句替換所有的數據)。

可以看到。我們將原有列的結構,類型做了很大的替換。

十:修改列

   修改列可以改變列的名字和類型

alter table student1 change id idstr string;

十一:刪除列

alter table student1 drop tel;

十二:修改文件格式

alter table student1 set fileformat parquet;

  因為本操作只是修改表的元數據,對現存的數據,你必須使用 Impala 之外的 Hadoop 技術對已有的數據進行轉換。之後再在 Impala 中使用 INSERT 語句創建的數據將使用新的格式。你不能指定文本文件的分隔符;文本文件的分隔符必須是逗號。

十三:增加分區

alter table student_p add partition(year='2017',month='07',day='24');

  可以看到hdfs中student_p的下麵有個3層目錄結構。

重覆上面增加分區的操作,分別添加22,23日的分區。

 

十四:刪除分區

  刪除day=22的分區。

alter table student_p drop partition(year='2017',month='07',day='22');

 可以看到該表只有23,24兩個分區。hdfs對應的目錄會被刪除。所以該分區的實際文件也會被刪除。

十五:查看表的統計狀態

show table stats student_p;

  上述語句中使用到這個,可以看到每個分區的狀態,如果有數據,還會統計行數,文件數,大小等等。

十六:查看表的列統計

show column stats student_p;

  

十七:採集表的統計

compute stats student_p;

  採集相關表和相關列的統計情況。COMPUTE STATS 語句是從底層向上構建,以提高可用性和用戶友好度。你可以運行一個單獨的 Impala COMPUTE STATS 語句來採集包括 table 和 column 的統計信息,而不是為表和列的統計信息分別運行 Hive ANALYZE TABLE 語句。

  COMPUTE STATS 也可以採集 HBase 表的信息。採集的 HBase 表的統計信息與 HDFS-backed 表的有所不同,但當 HBase 表執行連接查詢時,統計信息仍被用於優化。
  COMPUTE STATS執行完後,這些統計信息被存放在 metastore 資料庫中,可以為impala用來優化查詢。

 

 

  

--------------------------------------------------------------------

  到此,本章節的內容講述完畢。

系列索引

  【源】從零自學Hadoop系列索引

 

 

 

 

本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 


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

-Advertisement-
Play Games
更多相關文章
  • //按照id降序 並把name是小黑的排在最後SELECT * from dms_student order by name not like '小黑' desc,id desc; //按照id降序 並把name是小黑的排在最前面 去掉desc即可SELECT * from dms_student ...
  • 轉自:http://www.maomao365.com/?p=4534 一、 parsename函數功能簡介parsename函數的主要功能是:可以快速的使用”.”關鍵字分解字元串,並返回.分解後指定部分parsename 函數語法簡介參數:參數1(待分解字元串): nvarchar(128)位字元 ...
  • 1.Oracle 11g下載 官方網址為:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 官網提供了多種系統下安裝包,不過一般大家使用的多為windows系統(其中要註意電腦系統是3 ...
  • 概述 HDFS快照是文件系統的只讀時間點副本。 可以對文件系統的子樹或整個文件系統進行快照。 快照的一些常見用例是數據備份,防止用戶錯誤和災難恢復。HDFS快照的實現是高效的: 快照創建是即時的:成本是O(1),不包括inode查找時間。 僅當對快照進行修改時才使用附加記憶體:記憶體使用為O(M),其中 ...
  • 參考文檔:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/FileSystemShell.html Hadoop createSnapshot和deleteSnapshot命令,請戳一下鏈接: create ...
  • 前陣子遷移zabbix到tokudb,整理部分操作筆記到這篇博文。 如果轉載,請註明博文來源: www.cnblogs.com/xinysu/ ,版權歸 博客園 蘇家小蘿蔔 所有。望各位支持! 如果轉載,請註明博文來源: www.cnblogs.com/xinysu/ ,版權歸 博客園 蘇家小蘿蔔 ...
  • 2.收縮日誌文件 3.恢複數據庫為完整模式 ...
  • 解決: /etc/my.cnf vim編輯 添加 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...