當前位置:首頁 » 數據倉庫 » hive使用資料庫use
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hive使用資料庫use

發布時間: 2023-05-23 21:08:18

A. 在hive資料庫中怎麼查看錶結構

查看錶結構信息如下

1、descformattedtable_name;

2、desctable_name。

B. spark、hive、impala、hdfs的常用命令

對spark、hive、impala、hdfs的常用命令作了如下總結,歡迎大家補充! 1. Spark的使用: 以通過SecureCRT訪問IP地址:10.10.234.198 為例進行說明: 先輸入:ll //查詢集群是否裝有spark >su - mr >/home/mr/spark/bin/beeline -u "jdbc:hive2:/bigdata198:18000/" -n mr -p "" >.show databases; //顯示其中資料庫,例如 >use bigmax; //使用資料庫bigmax >show tables; //查詢目錄中所有的表 >desc formatted TableName; //顯示表的詳細信息,包括分區、欄位、地址等信息 >desc TableName; //顯示表中的欄位和分區信息 >select count(*) from TableName; //顯示表中數據數量,可以用來判斷表是否為空 >drop table TableName; //刪除表的信息 >drop bigmax //刪除資料庫bigmax >describe database zxvmax //查詢資料庫zxvmax信息 創建一個表 第一步: >create external table if not exists lte_Amaze //創建一個叫lte_Amaze的表 ( //括弧中每一行為表中的各個欄位的名稱和其所屬的數據類型,並用空格隔開 DateTime String, MilliSec int, Network int, eNodeBID int, CID int, IMSI String, DataType int, AoA int, ServerRsrp int, ServerRsrq int, TA int, Cqi0 Tinyint, Cqi1 Tinyint //注意,最後一個欄位結束後,沒有逗號 ) partitioned by (p_date string, p_hour INT) //以p_date和p_hour作為分區 row format delimited fields terminated by ',' /*/*表中行結構是以逗號作為分隔符,與上邊的表中欄位以逗號結尾相一致*/ stored as textfile; //以文本格式進行保存 第二步:添加分區,指定分區的位置 >alter table lte_Amaze add partition (p_date='2015-01-27',p_hour=0) location'/lte/nds/mr/lte_nds_cdt_uedetail/p_date=2015-01-27/p_hour=0'; //添加lte_Amaze表中分區信息,進行賦值。 //並制定分區對應目錄/lte/nds/mr下表lte_nds_cdt_uedetail中對應分區信息 第三步:察看添加的結果 >show partitions lte_Amaze; //顯示表的分區信息 2. hdfs使用: #su - hdfs //切換到hdfs用戶下 、 #hadoop fs –ls ///查看進程 # cd /hdfs/bin //進入hdfs安裝bin目錄 >hadoop fs -ls /umtsd/cdt/ //查詢/umtsd/cdt/文件目錄 >hadoop fs -mkdir /umtsd/test //在/umtsd目錄下創建test目錄 >hadoop fs -put /home/data/u1002.csv /impala/data/u5002 //將home/data/u1002.csv這個文件put到hdfs文件目錄上。put到hdfs上的數據文件以逗號「,」分隔符文件(csv),數據不論類型,直接是數據,沒有雙引號和單引號 >hadoop fs -rm /umtsd/test/test.txt //刪除umtsd/test目錄下的test.txt文件 >hadoop fs -cat /umtsd/test/test.txt //查看umtsd/test目錄下的test.txt文件內容3hive操作使用: #su - mr //切換到mr用戶下 #hive //進入hive查詢操作界面 hive>show tables; //查詢當前創建的所有表 hive>show databases; //查詢當前創建的資料庫 hive>describe table_name; {或者desc table_name}//查看錶的欄位的定義和分區信息,有明確區分(impala下該命令把分區信息以欄位的形式顯示出來,不怎麼好區分) hive> show partitions table_name; //查看錶對應數據現有的分區信息,impala下沒有該命令 hive> quit;//退出hive操作界面 hive>desc formatted table_name; 查看錶結構,分隔符等信息 hive> alter table ceshi change id id int; 修改表的列數據類型 //將id數據類型修改為int 注意是兩個id hive> SHOW TABLES '.*s'; 按正條件(正則表達式)顯示表, [mr@aico ~]$ exit; 退出mr用戶操作界面,到[root@aico]界面impala操作使用: #su - mr //切換到mr用戶下 #cd impala/bin //進入impala安裝bin目錄 #/impala/bin> impala-shell.sh -i 10.10.234.166/localhost //進入impala查詢操作界面 [10.10.234.166:21000] >show databases; //查詢當前創建的資料庫 [10.10.234.166:21000] >use database_name; //選擇使用資料庫,默認情況下是使用default資料庫 [10.10.234.166:21000] > show tables; //查詢當前資料庫下創建的所有表 [10.10.234.166:21000] >describe table_name; //查看錶的欄位的定義,包括分區信息,沒有明確區分 [10.10.234.166:21000] > describe formatted table_name; //查看錶對應格式化信息,包括分區,所屬資料庫,創建用戶,創建時間等詳細信息。 [10.10.234.166:21000] >refresh table_name; //刷新一下,保證元數據是最新的 [10.10.234.166:21000] > alter TABLE U107 ADD PARTITION(reportDate="2013-09-27",rncid=487)LOCATION '/umts/cdt/ MREMITABLE/20130927/rncid=487' //添加分區信息,具體的表和數據的對應關系 [10.10.234.166:21000] > alter TABLE U100 drop PARTITION(reportDate="2013-09-25",rncid=487); //刪除現有的分區,數據與表的關聯 [10.10.234.166:21000] >quit; //退出impala操作界面[mr@aicod bin]$ impala-shell; 得到welcome impala的信息,進入impala 查詢操作界面 [aicod:21000] > 按兩次tab鍵,查看可以用的命令 alter describe help profile shell values connect drop history quit show version create exit insert select unset with desc explain load set use

C. 如何基於hive建立數據倉庫

-創建資料庫

create database if not exists sopdm

comment 『this is test database』

with (『creator』=』gxw』,』date』=』2014-11-12』)--資料庫鍵值對屬性信息

location 『/my/preferred/directory』;

--查看資料庫的描述信廳豎老息和文件目錄位置路徑信纖謹息

describe database sopdm;

--查看資料庫的描述扮升信息和文件目錄位置路徑信息(加上資料庫鍵值對的屬性信息)

describe database extended sopdm;

D. 怎樣查看hive建的外部表的資料庫

1
進入HIVE之前要把HADOOP給啟動起來,因為HIVE是基於HADOOP的。所有的MR計算都是在HADOOP上面進行的。
2
在命令行中輸入:hive。這個時候就可以順利的進入HIVE了。當然了,如果你想直接執行HQL腳本文件可以這樣:hive
-f
xxxxx.hql。
3
進入hive之後一一般默認的資料庫都是default。如果你切換資料庫的話所建的表都會是在default資料庫裡面。
4
創建資料庫的語法是:create
database
database_name;非常簡單的,其實hive跟mysql的語法還是比較相似的。為什麼呢?請繼續往下
5
切換資料庫的時候可以輸入:use
database_name;
查看所有資料庫的時候可以輸入:show
databases;
查看所有表的時候可以輸入:show
tables
6
看錶結構的時候可以輸入:describe
tab_name;

E. sql中use hive有什麼意思

USE 將資料庫上下文更改為指定資料庫。
語法
USE { database }
參數 database資料庫名
是用戶上下文要切換到的資料庫的名稱。資料庫名稱必須符合標識符的規則。

通俗說就是:下面要使用hive資料庫。

F. hadoop hive 使用什麼資料庫

hive支持多種資料庫存放元數據derby|mysql|postgres|oracle,默認使用derby資料庫。

G. 為什麼使用HiveHive提供了什麼Hive支持哪些用戶

為什麼使用Hive?
為什麼使用Hive?那麼,在哪裡使用Hive呢?在載入了60億行(經度、維度、時間、數據值、高度)數據集到MySQL後,系統崩潰了,並經歷過數據丟失。這可能部分是因為我們最初的策略是將所有的數據都存儲到單一的一張表中了。後來,我們調整了策略通過數據集和參數進行分表,這有所幫助但也因此引入了額外的消耗,而這並非是我們願意接受的。
相反,我們決定嘗試使用Apache Hive技術。我們安裝了Hive 0.5 + 20,使用CDHv3和Apache Hadoop(0 20 2 + 320)。CDHv3還包含有許多其他相關工具,包括Sqoop和Hue這些在我們的架構中都標識出來了,如圖23-3底部所示。
我們使用Apache Sqoop轉儲數據到Hive中,然後通過寫一個Apache OODT包裝器,來使Hive按照空間/時間約束查詢數據,然後將結果提供給RCMET和其他用戶(圖23-2中間部分顯示)。RCMES集群的完整的架構如圖23- 3所示。我們有5台機器,包括圖中所示的一個主/從配置,通過一個運行GigE的私人網進行連接。

Hive提供了什麼
Photobucket公司使用Hive的主要目標是為業務功能、系統性能和用戶行為提供答案。為了滿足這些需求,我們每晚都要通過Flume從數百台伺服器上的MySQL資料庫中轉儲來自Web伺服器和自定義格式日誌TB級別的數據。這些數據有助於支持整個公司許多組織,比如行政管理、廣告、客戶支持、產品開發和操作,等等。對於歷史數據,我們保持所有MySQL在每月的第一天創建的所有的數據作為分區數據並保留30天以上的日誌文件。Photobucket使用一個定製的ETL框架來將MySQL資料庫中數據遷移到Hive中。使用Flume將日誌文件數據寫入到HDFS中並按照預定的Hive流程進行處理。

Hive支持的用戶有哪些
行政管理依賴於使用Hadoop提供一般業務健康狀況的報告。Hive允許我們解析結構化資料庫數據和非結構化的點擊流數據,以及業務所涉及的數據格式進行讀取。
廣告業務使用Hive篩選歷史數據來對廣告目標進行預測和定義配額。產品開發無疑是該組織中產生最大數量的特定的查詢的用戶了。對於任何用戶群,時間間隔變化或隨時間而變化。Hive是很重要的,因為它允許我們通過對在當前和歷史數據中運行A / B測試來判斷在一個快速變化的用戶環境中新產品的相關特性。
在Photobucket公司中,為我們的用戶提供一流的系統是最重要的目標。從操作的角度來看,Hive被用來匯總生成跨多個維度的數據。在公司里知道最流行的媒體、用戶、參考域是非常重要的。控制費用對於任何組織都是重要的。一個用戶可以快速消耗大量的系統資源,並顯著增加每月的支出。Hive可以用於識別和分析出這樣的惡意用戶,以確定哪些是符合我們的服務條款,而哪些是不符合的。也可以使用Hive對一些操作運行A / B測試來定義新的硬體需求和生成ROI計算。Hive將用戶從底層MapRece代碼解放出來的能力意味著可以在幾個小時或幾天內就可以獲得答案,而不是之前的數周。

Hive中的資料庫

Hive中資料庫的概念本質上僅僅是表的一個目錄或者命名空間。然而,對於具有很多組和用戶的大集群來說,這是非常有用的,因為這樣可以避免表命名沖突。通常會使用資料庫來將生產表組織成邏輯組。
如果用戶沒有顯式指定資料庫,那麼將會使用默認的資料庫default。
下面這個例子就展示了如何創建一個資料庫:
hive> CREATE DATABASE financials;

如果資料庫financials已經存在的話,那麼將會拋出一個錯誤信息。使用如下語句可以避免在這種情況下拋出錯誤信息:
hive> CREATE DATABASE IF NOT EXISTS financials;

雖然通常情況下用戶還是期望在同名資料庫已經存在的情況下能夠拋出警告信息的,但是IF NOT EXISTS這個子句對於那些在繼續執行之前需要根據需要實時創建資料庫的情況來說是非常有用的。
在所有的資料庫相關的命令中,都可以使用SCHEMA這個關鍵字來替代關鍵字TABLE。
隨時可以通過如下命令方式查看Hive中所包含的資料庫:
hive> SHOW DATABASES;
default
financials

hive> CREATE DATABASE human_resources;

hive> SHOW DATABASES;
default
financials
human_resources

如果資料庫非常多的話,那麼可以使用正則表達式匹配來篩選出需要的資料庫名,正則表達式這個概念,將會在第6.2.3節「Like和RLike」介紹。下面這個例子展示的是列舉出所有以字母h開頭,以其他字元結尾(即.*部分含義)的資料庫名:
hive> SHOW DATABASES LIKE 'h.*';
human_resources
hive> ...

Hive會為每個資料庫創建一個目錄。資料庫中的表將會以這個資料庫目錄的子目錄形式存儲。有一個例外就是default資料庫中的表,因為這個資料庫本身沒有自己的目錄。
資料庫所在的目錄位於屬性hive.metastore.warehouse.dir所指定的頂層目錄之後,這個配置項我們已經在前面的第2.5.1節「本地模式配置」和第2.5.2節「分布式模式和偽分布式模式配置」中進行了介紹。假設用戶使用的是這個配置項默認的配置,也就是/user/hive/warehouse,那麼當我們創建資料庫financials時,Hive將會對應地創建一個目錄/user/hive/warehouse/financials.db。這里請注意,資料庫的文件目錄名是以.db結尾的。
用戶可以通過如下的命令來修改這個默認的位置:
hive> CREATE DATABASE financials
> LOCATION '/my/preferred/directory';

用戶也可以為這個資料庫增加一個描述信息,這樣通過DESCRIBE DATABASE <database> 命令就可以查看到該信息。
hive> CREATE DATABASE financials
> COMMENT 'Holds all financial tables';

hive> DESCRIBE DATABASE financials;
financials Holds all financial tables
hdfs://master-server/user/hive/warehouse/financials.db

從上面的例子中,我們可以注意到,DESCRIEB DATABASE語句也會顯示出這個資料庫所在的文件目錄位置路徑。在這個例子中,URI格式是hdfs。如果安裝的是MapR,那麼這里就應該是maprfs。對於亞馬遜彈性MapRece(EMR)集群,這里應該是hdfs,但是用戶可以設置hive.metastore.warehouse.dir為亞馬遜S3特定的格式(例如,屬性值設置為s3n://bucketname...)。用戶可以使用s3作為模式,但是如果使用新版的規則s3n會更好。
前面DESCRIBE DATABASE語句的輸出中,我們使用了master-server來代表URI許可權,也就是說應該是由文件系統的「主節點」(例如,HDFS中運行NameNode服務的那台伺服器)的伺服器名加上一個可選的埠號構成的(例如,伺服器名:埠號這樣的格式)。如果用戶執行的是偽分布式模式,那麼主節點伺服器名稱就應該是localhost。對於本地模式,這個路徑應該是一個本地路徑,例如file:///user/hive/warehouse/financials.db。
如果這部分信息省略了,那麼Hive將會使用Hadoop配置文件中的配置項fs.default.name作為master-server所對應的伺服器名和埠號,這個配置文件可以在$HADOOP_HOME/conf這個目錄下找到。
需要明確的是,hdfs:///user/hive/warehouse/financials.db和hdfs://master-server/user/hive/
warehouse/financials.db是等價的,其中master-server是主節點的DNS名和可選的埠號。
為了保持完整性,當用戶指定一個相對路徑(例如,some/relative/path)時,對於HDFS和Hive,都會將這個相對路徑放到分布式文件系統的指定根目錄下(例如,hdfs:///user/<user-name>)。然而,如果用戶是在本地模式下執行的話,那麼當前的本地工作目錄將是some/relative/path的父目錄。
為了腳本的可移植性,通常會省略掉那個伺服器和埠號信息,而只有在涉及到另一個分布式文件系統實例(包括S3存儲)的時候才會指明該信息。
此外,用戶還可以為資料庫增加一些和其相關的鍵-值對屬性信息,盡管目前僅有的功能就是提供了一種可以通過DESCRIBE DATABASE EXTENDED <database>語句顯示出這些信息的方式:
hive> CREATE DATABASE financials
> WITH DBPROPERTIES ('creator' = 'Mark Moneybags', 'date' = '2012-01-02');

hive> DESCRIBE DATABASE financials;
financials hdfs://master-server/user/hive/warehouse/financials.db

hive> DESCRIBE DATABASE EXTENDED financials;
financials hdfs://master-server/user/hive/warehouse/financials.db
{date=2012-01-02, creator=Mark Moneybags);

USE命令用於將某個資料庫設置為用戶當前的工作資料庫,和在文件系統中切換工作目錄是一個概念:
hive> USE financials;

現在,使用像SHOW TABLES這樣的命令就會顯示當前這個資料庫下所有的表。
不幸的是,並沒有一個命令可以讓用戶查看當前所在的是哪個資料庫!幸運的是,在Hive中是可以重復使用USE…命令的,這是因為在Hive中並沒有嵌套資料庫的概念。
可以回想下,在第2.7.2節「變數和屬性」中提到過,可以通過設置一個屬性值來在提示符裡面顯示當前所在的資料庫(Hive v0.8.0版本以及之後的版本才支持此功能):
hive> set hive.cli.print.current.db=true;

hive (financials)> USE default;

hive (default)> set hive.cli.print.current.db=false;

hive> ...

最後,用戶可以刪除資料庫:
hive> DROP DATABASE IF EXISTS financials;

IF EXISTS子句是可選的,如果加了這個子句,就可以避免因資料庫finanacials不存在而拋出警告信息。
默認情況下,Hive是不允許用戶刪除一個包含有表的資料庫的。用戶要麼先刪除資料庫中的表,然後再刪除資料庫;要麼在刪除命令的最後面加上關鍵字CASCADE,這樣可以使Hive自行先刪除資料庫中的表:
hive> DROP DATABASE IF EXISTS financials CASCADE;

如果使用的是RESTRICT這個關鍵字而不是CASCADE這個關鍵字的話,那麼就和默認情況一樣,也就是,如果想刪除資料庫,那麼必須先要刪除掉該資料庫中的所有表。
如果某個資料庫被刪除了,那麼其對應的目錄也同時會被刪除。

H. hive中怎麼把文本插入表中

1. hive如何通過insert語句將數據插入表中
從文件載入數據進表(OVERWRITE覆蓋,追加不需要OVERWRITE關鍵字)

LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config;

--從查詢語句給table插入數據

INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select *

from stage.s_h02_click_log where dt='2014-01-22' limit 100;
2. 如何將excel中的數據導入hive倉庫中
將存放在excel表中的數據如何導入到hive中,首先前提是excel表中數據類型以及長度要和hive倉庫中表的欄位屬性一致,否則會報異常。其次因為建表的時候,已經定義了表的分割符號(row format delimited fields terminated by ','),所以不能直接將excel表格中數據導入的hive倉庫中。處理方式如下:

先將excel表中數據另存轉化為data.csv格式,轉化為.csv格式的文件默認就是用「,」進行分割的,可以用notepad++打開data.csv格式查看。然後再講數據導入到hive倉庫中即可。但是執行如下導入語句時,發現報錯,顯示Wrong file format。

檢查以後發現,因為在創建表格時,使用的是RCFILE存儲格式

STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'

OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'

而導入到是TextFile文件格式,所以報錯,解決辦法建表的格式默認使用讓皮TextFile格式即可。

如何將文件轉化為rcfile文件格式:

(1)hive 中直接 通過textfile表進行insert轉換,比如通過如下將textfile數據導入到rcfile中。

insert overwrite table _RCTable partition(dt='2013-09-30') select p_id,tm,idate,phone from tmp_testp where dt='2013-09-30';

(2)使用maprece將普通的文件壓縮成RCFile,並且再讀取RCFile文件。
3. 如何把hive導旁宴出到本地的表導入mysql中
MySQL命令行導出資料庫:

1,進入MySQL目錄下的bin文件夾:cd MySQL中到bin文件夾的目錄

如我輸入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin

(或者直接將windows的環境變數path中添加該目錄)

2,導出資料庫:mysqlmp -u 用戶名 -p 資料庫名 >; 導出的文件名

如我輸入的命令行:mysqlmp -u root -p news > news.sql (輸入後會讓你輸入進入MySQL的密碼)

(如果導出單張表的話在資料庫名後面輸入表名即可)

3、會看到文件news.sql自動生成到bin文件下

命令行導入資料庫:

1,將要導入的.sql文件移至bin文件下,這樣的路徑比較方便

2,同上面導出的第1步

3,進入MySQL:mysql -u 用戶名 -p

如我輸入的命令行:mysql -u root -p (輸入同樣後會讓你輸入MySQL的密碼)

4,在MySQL-Front中新建你要建的資料庫,這時是空資料庫,如新建一個名為news的目標資料庫

5,輸入:mysql>use 目標資料庫名

如我輸入的命令行:mysql>坦啟差use news;

6,導入文件:mysql>source 導入的文件名;

如我輸入的命令行:mysql>source news.sql;
4. Hive幾種數據導入方式和動態分區,多表插入
常用的的有三種:1.從本地文件系統中導入數據到Hive表;2.從HDFS上導入數據到Hive表;3.在創建表的時候通過從別的表中查詢出相應的記錄並插入到所創建的表中。

Hive配置:HDFS中Hive數據文件存放目錄(啟動hive後HDFS自動創建):HDFS: /usr/hive/warehousehadoop fs -mkdir /usr/hive/warehouse 命令創立本地數據存放目錄:本地:/home/santiago/data/hive一.從本地文件系統中導入數據到Hive表1.在hive中建表hive> show databases;OKdefaultTime taken: 1.706 seconds, Fetched: 1 row(s)hive> create table guo_test(Name string,String string)> row format delimited> fields terminated by ','> stored as textfile;hive> show tables;OKguo_testTime taken: 0.024 seconds, Fetched: 1 row(s)1234567891011122.在本地文件建立同類型數據表santi@hdp:~/data/hive$ lshive_test.txtsanti@hdp:~/data/hive$ cat hive_test.txtsanti,you are a zhazha.12343.導入數據並測試hive>load data local inpath '/home/santi/data/hive/hive_test.txt' into table guo_test;hive> select * from guo_test;hive>dfs -ls /usr/hive/warehouse/guo_test;#hadoop fs -ls /usr/hive/warehouseFound 1 itemsdrwxrwxr-x - santiago supergroup 0 2017-01-14 21:13/usr/hive/warehouse/guo_test12345678發現hive-site,xml設置的HDFS文件存儲位置中多了guo_test這個文件夾#hadoop fs -ls /usr/hive/warehouse/guo_testFound 1 items-rwxrwxr-x 1 santiago supergroup 24 2017-01-14 21:13/usr/hive/warehouse/guo_test/hive_test.txthive> select * from guo_test;OKsanti you are a zhazha.12345678在該文件夾中找到了所寫入hive數據倉庫的文件。[注]本地數據寫入成功,但是從本地將數據導入到Hive表的過程中,其實是先將數據臨時復制到HDFS的一個目錄下(典型的情況是復制到上傳用戶的HDFS home目錄下,比如/home/santi/),然後再將數據從臨時目錄下移動到對應的Hive表的數據目錄裡面(臨時目錄不保留數據)。

二.從HDFS文件系統中導入數據到Hive表1.在HDFS文件系統上建立數據文件hdfs上沒有vim命令,則需要將本地數據文件手動傳入到HDFS上/data/hive# vim data_HDtoHive/data/hive# cat data_HDtoHivedata from, HDFS to Hive #hadoop fs -put /home/santi/data/hive/data_HDtoHive /usr/data/input數據傳入# hadoop fs -ls /usr/data/input123452導入數據hive> load data inpath '/usr/data/input/data_HDtoHive' into table guo_test;hive> select * from guo_test;OKdata from HDFS to Hivesanti you are a zhazha.Time taken: 0.172 seconds, Fetched: 2 row(s)123456數據寫入成功數據存hive配置的數據存儲位置中。[注]從本地導入數據語句為hive>load data local inpath '/home/santi/data/hive/hive_test.txt' into table guo_test;從HDFS中導入數據的語句為hive> load data inpath '/usr/data/input/data_HDtoHive' into table guo_test;差距在local這個命令這里。

而從HDFS系統上導入到Hive表的時候,數據轉移。HDFS系統上查找不到相關文件。

三.從HIVE表選取數據插入新的HIVE表命令為create table 表名 as selecr xxx from 表名。hive> create table hivedata_test1> as> select name> from guo_test;hive> select * from hivedata_test1;OKdata fromsantiTime taken: 0.116 seconds, Fetched: 2 row(s)123456789[注]hive是分區表有稍微區別在Hive中,表的每一個分區對應表下的相應目錄,所有分區的數據都是存儲在對應的目錄中。

比表有a和b兩個分區,則對應a=xxx,b=xx對應表的目錄為/user/hive/warehouse/a=xxxuser/hive/warehouse/b=xx,所有屬於這個分區的數據都存放在這個目錄中。hive> create table hivedata_test2(> Name string)> partitioned by> (String string)> ROW FORMAT DELIMITED> FIELDS TERMINATED BY ','> STORED AS TEXTFILE;hive> insert into table hivedata_test2> partition(String='best')> select Name> from guo_test;hive> select * from hivedata_test2;OKdata from bestsanti bestTime taken: 1.549 seconds, Fetched: 2 row(s)# hadoop fs -ls /usr/hive/warehouse/hivedata_test2Found 1 itemsdrwxrwxr-x -santiago supergroup 0 2017-02-14 17:40/usr/hive/warehouse/hivedata_test2/string=best。
5. hive 怎麼添加 表注釋語法
要添加註釋,只需要用單引號'作為注釋文字的開頭。注釋符告訴Visual Basic,忽略這個符號後面的內容,這些內容就是代碼段中的注釋部分,在代碼編輯器中以綠色字元顯示。

注釋可以和語句在同一行,寫在語句的後面,也可占據一整行。

例如:

'在文本框中放歡迎詞。

Private Sub mand1_Click()

Text1. Text="Hello." '把文本框Text1的屬性設置為Hello。

End Sub

注意,不能在同一行上把注釋接在續行符後面。

I. 如何把hive導出到本地的表導入mysql中

MySQL命令行導出資料庫:
1,進入MySQL目錄下的bin文件夾:cd MySQL中到bin文件夾的目錄
如我輸入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin
(或者直接將windows的環境變數path中添加該目錄)

2,導出資料庫:mysqlmp -u 用戶名 -p 資料庫名 > 導出彎燃的文件名
如我輸入的命令行:mysqlmp -u root -p news > news.sql (輸入後會讓你輸入進入MySQL的密碼埋姿虛)
(如果導出單張表的話在資料庫名後面輸入表名即可)

3、會看到文件news.sql自動生成到bin文件下
命令行導入資料庫:

1,將要導入的.sql文件移至bin文件下,這樣的路徑比較方便
2,同上面導出的第1步
3,進入MySQL:mysql -u 用戶名 -p
如我輸入的命令行:mysql -u root -p (輸入同樣後會讓你輸入MySQL的密碼)
4,在MySQL-Front中新建你要建的資料庫,這時是空資料庫,如新建一個名為news的目標資料庫
5,輸入:mysql>use 目標資料庫名
如我輸入的命令冊伏行:mysql>use news;
6,導入文件:mysql>source 導入的文件名;
如我輸入的命令行:mysql>source news.sql;

J. Hive 資料庫表的基本操作,必須掌握的基本功

說明:hive 的表存放位置模式是由 hive-site.xml 當中的一個屬性指定的,默認是存放在該配置文件設置的路徑下,也可在創建資料庫時單獨指定存儲路徑。

資料庫有一些描述性的屬性信息,可以在創建時添加:

查看資料庫的鍵值對信息

修改資料庫的鍵值對信息

與mysql查詢語句是一樣的語法

刪除一個空資料庫,如果資料庫下面有數據表,那麼就會報錯

強制刪除資料庫,包含資料庫下面的表一起刪除(請謹慎操作)


[]里的屬性為可選屬性,不是必須的,但是如果有可選屬性,會使 sql 語句的易讀性更好,更標准與規范。

例如:[comment '欄位注釋信息'][comment '表的描述信息']等,[external]屬性除外


1. CREATE TABLE
創建一個指定名字的表,如果相同名字的表已存在,則拋出異常提示:表已存在,使用時可以使用IF NOT EXISTS語句來忽略這個異常。

如果創建的表名已存在,則不會再創建,也不會拋出異常提示:表已存在。否則則自動創建該表。


2. EXTERNAL
顧名思義是外部的意思,此關鍵字在建表語句中讓使用者可以創建一個外部表,如果不加該關鍵字,則默認創建內部表。

外部表在創建時必須同時指定一個指向實際數據的路徑(LOCATION),Hive在創建內部表時,會將數據移動到數據倉庫指向的路徑;

若創建外部表,僅記錄數據所在的路徑,不對數據的位置作任何改變。

內部表在刪除後,其元數據和數據都會被一起刪除。
外部表在刪除後,只刪除其元數據,數據不會被刪除。


3. COMMENT
用於給表的各個欄位或整張表的內容作解釋說明的,便於他人理解其含義。


4. PARTITIONED BY
區分表是否是分區表的關鍵欄位,依據具體欄位名和類型來決定表的分區欄位。


5. CLUSTERED BY
依據column_name對表進行分桶,在 Hive 中對於每一張表或分區,Hive 可以通過分桶的方式將數據以更細粒度進行數據范圍劃分。Hive採用對列值哈希,然後除以桶的個數求余的方式決定該條記錄存放在哪個桶當中。


6. SORTED BY
指定表數據的排序欄位和排序規則,是正序還是倒序排列。


7. ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
指定表存儲中列的分隔符,這里指定的是' ',也可以是其他分隔符。


8. STORED AS SEQUENCEFILE|TEXTFILE|RCFILE
指定表的存儲格式,如果文件數據是純文本格式,可以使用STORED AS TEXTFILE,如果數據需要壓縮,則可以使用STORED AS SEQUENCEFILE。


9. LOCATION
指定 Hive 表在 hdfs 里的存儲路徑,一般內部表(Managed Table)不需要自定義,使用配置文件中設置的路徑即可。
如果創建的是一張外部表,則需要單獨指定一個路徑。


1. 使用create table語句創建表
例子:


2. 使用create table ... as select...語句創建表
例子:

使用 create table ... as select ...語句來創建新表sub_student,此時sub_student 表的結構及表數據與 t_student 表一模一樣, 相當於直接將 t_student 的表結構和表數據復制一份到 sub_student 表。


注意:
(1). select 中選取的列名(如果是 * 則表示選取所有列名)會作為新表 sub_student 的列名。

(2). 該種創建表的方式會改變表的屬性以及結構,例如不能是外部表,只能是內部表,也不支持分區、分桶。

如果as select後的表是分區表,並且使用select *,則分區欄位在新表裡只是作為欄位存在,而不是作為分區欄位存在。

在使用該種方式創建時,create 與 table 之間不能加 external 關鍵字,即不能通過該種方式創建外部目標表,默認只支持創建內部目標表。

(3). 該種創建表的方式所創建的目標表存儲格式會變成默認的格式textfile。


3.使用like語句創建表
例子:


注意:
(1). 只是將 t_student 的表結構復制給 sub1_student 表。

(2). 並不復制 t_student 表的數據給 sub1_student 表。

(3). 目標表可以創建為外部表,即: