㈠ 一條sql如何使用兩個like查詢兩個欄位
1、假設表名為proct,商品名為name,簡界為remark.則可如下寫:select [name],[remark] from proct name like '%aa%' or remark like '%aa%'.注:上面單引號的aa你表模糊查詢輸入的字元。
2、從(表名)中選擇*,其中(搜索名)如「%%」,ID如「%(簡介)%」
3、使用Like子句。頁首:從[TableName]中選擇*,其中[Name]類似於'%SQL%',[Introction]類似於'%Software%',這意味著[Name]部分包含「SQL」,並且[Introction]該級別包含「軟體」記錄。
4、從用戶名*的序列號(例如'%small%')中,按IDascasc代表降序降序。
(1)hivesqllike擴展閱讀:
模糊搜索有兩個主要定義點。
例如,當查找名稱Smith時,您會發現類似的Smithe,Smythe,Smyth,Smitt等。
由系統的管理界面配置。例如,在將「計算機」和「計算機」配置為名詞之後,搜索「計算機」,還將出現一個包含「計算機」的網頁。在搜索結果中。
在圖像搜索框中輸入本地圖像。
1、如果您的圖片具有有意義的標題,一些「衣服」,那麼搜索結果將顯示相關的文本搜索結果
2、如果您的圖片標題沒有任何提示,則搜索結果僅顯示相關圖片。
3、搜索准確性隨不同圖片的滿意度而變化,主流商業圖片往往越准確
當前,諸如網路,谷歌和其他搜索引擎以及淘寶的平台類似地實現了該應用。
文字模糊搜索
搜索引擎或門戶搜索:在搜索框中輸入文本,然後選擇模糊搜索模式以獲取匹配項。
資料庫搜索:常規模糊查詢語句如下:從WHERE表中的類似條件中選擇SELECT。
在這些條件中,SQL提供了多種匹配模式:
1、%:表示0個或多個字元。可以匹配任何類型和長度的字元,在某些情況下,如果是中文,請使用兩個百分號(%%)。
2、_:表示任意分割字元。匹配拆分的任意字元,通常用於限製表達式的字元長度語句:
3、[]:表示括弧中插入的字元之一(類似於正則表達式)。指定一個字元,字元串或范圍,要求匹配的對象是它們之一。
4、[^]:表示括弧內沒有插入單個字元。它的值與[]相同,但是它要求將對象分配給除指定字元之外的任何其他字元。
5、當查詢包含通配符時
由於使用了通配符,我們可以查詢特殊字元「%」,「_」,「[」語句無法正常實現,並且特殊字元可以由「[]」正常查詢。
在不同的資料庫中,模糊搜索語句將有所不同,並且可以在系統幫助文檔中找到。
㈡ hive sql有沒有控制流程的語法
1. DDL 操作
DDL操作類型
1.2 建表:
建表
•CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異常;用戶可以用 IF NOT EXIST 選項來忽略這個異常
•EXTERNAL 關鍵字可以讓用戶創建一個外部表,在建表的同時指定一個指向實際數據的路徑(LOCATION)
•LIKE 允許用戶復制現有的表結構,但是不復制數據
•COMMENT可以為表與欄位增加描述
•ROW FORMAT
DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
用戶在建表的時候可以自定義 SerDe 或者使用自帶的 SerDe。如果沒有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,將會使用自帶的 SerDe。在建表的時候,用戶還需要為表指定列,用戶在指定表的列的同時也會指定自定義的 SerDe,Hive 通過 SerDe 確定表的具體的列的數據。
•STORED AS
SEQUENCEFILE
| TEXTFILE
| RCFILE
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
如果文件數據是純文本,可以使用 STORED AS TEXTFILE。如果數據需要壓縮,使用 STORED AS SEQUENCE 。
1.3 創建簡單表:
hive> CREATE TABLE pokes (foo INT, bar STRING);
1.4 創建外部表:
創建外部表
1.5 建分區表
分區表
1.6 建Bucket表
創建Bucket表
1.7 創建表並創建索引欄位ds
hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);
1.8 復制一個空表
CREATE TABLE empty_key_value_store
LIKE key_value_store;
例子
例子
導入數據表的數據格式是:欄位之間是tab鍵分割,行之間是斷行。
及要我們的文件內容格式:
100636 100890 c5c86f4cddc15eb7 yyyvybtvt
100612 100865 97cc70d411c18b6f gyvcycy
100078 100087 ecd6026a15ffddf5 qa000100
1.9 顯示所有表:
hive> SHOW TABLES;
1.10 按正條件(正則表達式)顯示表,
hive> SHOW TABLES '.*s';
DDL類型-修改表結構
1.21 表添加一列:
hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);
1.22 添加一列並增加列欄位注釋
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
1.23 更改表名:
hive> ALTER TABLE events RENAME TO 3koobecaf;
1.24 刪除列:
hive> DROP TABLE pokes;
1.25 增加、刪除分區
•增加
ALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ...
partition_spec:
: PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...)
•刪除
ALTER TABLE table_name DROP partition_spec, partition_spec,...
1.26 重命名表
ALTER TABLE table_name RENAME TO new_table_name
1.27 修改列的名字、類型、位置、注釋:
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
這個命令可以允許改變列名、數據類型、注釋、列位置或者它們的任意組合
1.28 表添加一列:
hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);
1.29 添加一列並增加列欄位注釋
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
1.30 增加/更新列
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
• ADD是代表新增一欄位,欄位位置在所有列後面(partition列前)
REPLACE則是表示替換表中所有欄位。
1.31 增加表的元數據信息
ALTER TABLE table_name SET TBLPROPERTIES table_properties table_properties:
:[property_name = property_value…..]
•用戶可以用這個命令向表中增加metadata
1.31改變表文件格式與組織
ALTER TABLE table_name SET FILEFORMAT file_format
ALTER TABLE table_name CLUSTERED BY(userid) SORTED BY(viewTime) INTO num_buckets BUCKETS
這個命令修改了表的物理存儲屬性
1.4 創建/刪除視圖
CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name = property_value, ...)] AS SELECT
•增加視圖
•如果沒有提供表名,視圖列的名字將由定義的SELECT表達式自動生成
•如果修改基本表的屬性,視圖中不會體現,無效查詢將會失敗
•視圖是只讀的,不能用LOAD/INSERT/ALTER
•DROP VIEW view_name
•刪除視圖
1.5 創建資料庫
CREATE DATABASE name
1.6 顯示命令
㈢ hive sql的語法幫助在哪
Hive 是基於Hadoop 構建的一套數據倉庫分析系統,它提供了豐富的SQL查詢方式來分析存儲在Hadoop 分布式文件系統中的數據,可以將結構化的數據文件映射為一張資料庫表,並提供完整的SQL查詢功能,可以將SQL語句轉換為MapRece任務進行運行,通過自己的SQL 去查詢分析需要的內容,這套SQL 簡稱Hive SQL,使不熟悉maprece 的用戶很方便的利用SQL 語言查詢,匯總,分析數據。而maprece開發人員可以把己寫的mapper 和recer 作為插件來支持Hive 做更復雜的數據分析。
它與關系型資料庫的SQL 略有不同,但支持了絕大多數的語句如DDL、DML 以及常見的聚合函數、連接查詢、條件查詢。HIVE不適合用於聯機online)事務處理,也不提供實時查詢功能。它最適合應用在基於大量不可變數據的批處理作業。
HIVE的特點:可伸縮(在Hadoop的集群上動態的添加設備),可擴展,容錯,輸入格式的鬆散耦合。
Hive 的官方文檔中對查詢語言有了很詳細的描述,請參考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的內容大部分翻譯自該頁面,期間加入了一些在使用過程中需要注意到的事項。
1. DDL 操作
DDL
?建表
?刪除表
?修改表結構
?創建/刪除視圖
?創建資料庫
?顯示命令
建表:
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]
?CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異常;用戶可以用 IF NOT EXIST 選項來忽略這個異常
?EXTERNAL 關鍵字可以讓用戶創建一個外部表,在建表的同時指定一個指向實際數據的路徑(LOCATION)
?LIKE 允許用戶復制現有的表結構,但是不復制數據
?COMMENT可以為表與欄位增加描述
?ROW FORMAT
DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
用戶在建表的時候可以自定義 SerDe 或者使用自帶的 SerDe。如果沒有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,將會使用自帶的 SerDe。在建表的時候,用戶還需要為表指定列,用戶在指定表的列的同時也會指定自定義的 SerDe,Hive 通過 SerDe 確定表的具體的列的數據。
?STORED AS
SEQUENCEFILE
| TEXTFILE
| RCFILE
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
如果文件數據是純文本,可以使用 STORED AS TEXTFILE。如果數據需要壓縮,使用 STORED AS SEQUENCE 。
創建簡單表:
hive> CREATE TABLE pokes (foo INT, bar STRING);
創建外部表:
CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User',
country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
STORED AS TEXTFILE
LOCATION '';
建分區表
CREATE TABLE par_table(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(date STRING, pos STRING)
ROW FORMAT DELIMITED 『\t』
FIELDS TERMINATED BY '\n'
STORED AS SEQUENCEFILE;
建Bucket表
CREATE TABLE par_table(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(date STRING, pos STRING)
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED 『\t』
FIELDS TERMINATED BY '\n'
STORED AS SEQUENCEFILE;
創建表並創建索引欄位ds
hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);
復制一個空表
CREATE TABLE empty_key_value_store
LIKE key_value_store;
例子
create table user_info (user_id int, cid string, ckid string, username string)
row format delimited
fields terminated by '\t'
lines terminated by '\n';
導入數據表的數據格式是:欄位之間是tab鍵分割,行之間是斷行。
及要我們的文件內容格式:
100636 100890 c5c86f4cddc15eb7 yyyvybtvt
100612 100865 97cc70d411c18b6f gyvcycy
100078 100087 ecd6026a15ffddf5 qa000100
顯示所有表:
hive> SHOW TABLES;
按正條件(正則表達式)顯示表,
hive> SHOW TABLES '.*s';
修改表結構
?增加分區、刪除分區
?重命名表
?修改列的名字、類型、位置、注釋
?增加/更新列
?增加表的元數據信息
表添加一列 :
hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);
添加一列並增加列欄位注釋
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
更改表名:
hive> ALTER TABLE events RENAME TO 3koobecaf;
刪除列:
hive> DROP TABLE pokes;
增加、刪除分區
?增加
ALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ...
partition_spec:
: PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...)
?刪除
ALTER TABLE table_name DROP partition_spec, partition_spec,...
重命名表
?ALTER TABLE table_name RENAME TO new_table_name
修改列的名字、類型、位置、注釋:
?ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
?這個命令可以允許改變列名、數據類型、注釋、列位置或者它們的任意組合
表添加一列 :
hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);
添加一列並增加列欄位注釋
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
增加/更新列
?ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
? ADD是代表新增一欄位,欄位位置在所有列後面(partition列前)
REPLACE則是表示替換表中所有欄位。
增加表的元數據信息
?ALTER TABLE table_name SET TBLPROPERTIES table_properties table_properties:
:[property_name = property_value…..]
?用戶可以用這個命令向表中增加metadata
改變表文件格式與組織
?ALTER TABLE table_name SET FILEFORMAT file_format
?ALTER TABLE table_name CLUSTERED BY(userid) SORTED BY(viewTime) INTO num_buckets BUCKETS
附上出處鏈接:http://blog.itpub.net/26613085/viewspace-1224043/
㈣ sql like查詢如何不區分大小寫
mysql Like查詢默認是不區分大小寫的:
如:
select*fromtabletwheret.colum1likeconcat('%','a','%');
select*fromtabletwheret.colum1likeconcat('%','A','%');
- 兩個sql查詢結果相同;
select*fromtabletwherebinaryt.colum1likeconcat('%','A','%');
- 建表時,欄位加上標識也可以區分大小寫:
如果必要區分的話可以這樣:
create table t{
codevarchar(10) binary
}
㈤ Hbase能模糊查詢嗎,類似like
本身有scan可以模糊查詢,
也可以關聯hive,然後就可以用sql語句的like了,hive查hbase的數據底層也是通過scan來實現like查詢,但是效率爆低,數據越多時間就越長
㈥ 為什麼使用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這個關鍵字的話,那麼就和默認情況一樣,也就是,如果想刪除資料庫,那麼必須先要刪除掉該資料庫中的所有表。
如果某個資料庫被刪除了,那麼其對應的目錄也同時會被刪除。
㈦ 求助hive中sql語句的問題,from...insert into
ParseException line 3:14 missing EOF at 'from' near ')'
第3行,14字元解析,是因為 from 前面少一個空格嘛?
select sum(b) from (
㈧ hive like 正則 有沒有not like
有的,like其實不是正則,而是通配符,這個通配符可以看一下SQL的標准。例如%代表任意多個字元。
A like '123%'
要是not like使用 not A like '123%'
若是在hive想用正則,請用rlike,不過hive的正則寫法和java一樣,\請使用\\,例如數字\d,在這需要寫成\\d
A rlike '\\d+'
not A rlike '\\d+'
㈨ SQL語句like怎麼使用多個like條件...
方法和詳細的操作步驟如下:
1、第一步,新建測試表,見下圖,轉到下面的步驟。
㈩ Hadoop有哪幾個組成部分-ITJOB
1、Hadoop Common :Hadoop體系最底層的一個模塊,為Hadoop各子項目提供各種工具,如:配置文件和日誌操作等。
2、HDFS:分布式文件系統,提供高吞吐量的應用程序數據訪問,對外部客戶機而言,HDFS就像一個傳統的分級文件系統。可以創建、刪除、移動或重命名文件,等等。但是 HDFS的架構是基於一組特定的節點構建的,這是由它自身的特點決定的。這些節點包括 NameNode(僅一個),它在 HDFS內部提供元數據服務;DataNode,它為 HDFS提供存儲塊。由於僅存在一個 NameNode,因此這是 HDFS的一個缺點(單點失敗)。
存儲在 HDFS中的文件被分成塊,然後將這些塊復制到多個計算機中(DataNode)。這與傳統的 RAID架構大不相同。塊的大小(通常為 64MB)和復制的塊數量在創建文件時由客戶機決定。NameNode可以控制所有文件操作。HDFS內部的所有通信都基於標準的 TCP/IP協議。
3、MapRece :一個分布式海量數據處理的軟體框架集計算集群。
4、Avro :doug cutting主持的RPC項目,主要負責數據的序列化。有點類似Google的protobuf和Facebook的thrift。avro用來做以後hadoop的RPC,使hadoop的RPC模塊通信速度更快、數據結構更緊湊。
5、Hive :類似CloudBase,也是基於hadoop分布式計算平台上的提供data warehouse的sql功能的一套軟體。使得存儲在hadoop裡面的海量數據的匯總,即席查詢簡單化。hive提供了一套QL的查詢語言,以sql為基礎,使用起來很方便。
6、HBase :基於Hadoop Distributed File System,是一個開源的,基於列存儲模型的可擴展的分布式資料庫,支持大型表的存儲結構化數據。
7、Pig :是一個並行計算的高級的數據流語言和執行框架 ,SQL-like語言,是在MapRece上構建的一種高級查詢語言,把一些運算編譯進MapRece模型的Map和Rece中,並且用戶可以定義自己的功能。
8、ZooKeeper :Google的Chubby一個開源的實現。它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的介面和性能高效、功能穩定的系統提供給用戶。
9、Chukwa :一個管理大型分布式系統的數據採集系統由yahoo貢獻。
10、Cassandra :無單點故障的可擴展的多主資料庫。
11、Mahout :一個可擴展的機器學習和數據挖掘庫。