1.HiveQL概要
ハイブは、データウェアハウス解析システムである我々は以前の話を聞いた、MapReduceのプロセスを完了するために、主にSQLクエリです
HiveQLエッセンスでSQLのようなものです。問い合わせへのハイブの内容分析によってメイクにHiveSQLの必要性は、MapReduceのユーザーに精通していないにも簡単に、クエリにSQLを使用して集計し、データを分析することができます。
2.HiveQLとハイブ機能
SQLリレーショナルデータベース(1)はわずかに異なっているが、このようなDDL、DMLおよび共通集合関数として文の大多数のサポートは、クエリ、クエリ条件に参加します。
ハイブがオンラインには適していません(2)、リアルタイム問合せ機能を提供していません。
それは不変のデータに基づいてバッチジョブの数が多いでの使用に最適です。HiveQLが更新をサポートしていませんので、インデックス作成と業務、及びそのサブクエリをサポートし、業務への参加は非常に限られている、それが基礎となるのHadoopプラットフォームその決定に依存しているため、その機能のいくつかは、SQLが一致しないということです。しません
(3)ハイブスケーラブルな、動的デバイス、スケーラブルでフォールトトレランス機能を追加サポートHadoopクラスタ
次に、一般的な操作の簡単な紹介:
第二に、テーブルと削除テーブルを作成
テーブルを作成します。1.
-
CREATE
[①
TEMPORARY
] [②
EXTERNAL
]
表には
、[③
IF
NOT
EXISTS
] [データベース名] TABLE_NAME
-
[(COL_NAMEのDATA_TYPE)⑨ COMMENTの col_comment]、... [constraint_sepecification]
-
[ HOWの table_comment]
-
[④PARTITIONED BY(COL_NAMEのDATA_TYPE) COMMENT col_comment]、...)]
-
[⑤CLUSTERED BY(col_name1、col_name2、...)[⑩SORTED BY(COL_NAME [ ASC | DESC ]、...)] INTO num_bucketsバケット]
-
[斜めBY(COL_NAME、COL_NAME、...)]
-
ON
((col_value、col_value、...)、(col_value、col_value、...)、...)
-
[ STORED ASディレクトリを]
-
[
-
[⑥ ROWのFORMATの ROW_FORMAT]
-
[⑦ STORED AS FILE_FORMAT]
-
| STORED BY '' [ WITH SERDEPROPERTIES(...)]
-
]
-
[LOCATIONのhdfs_path]
-
......(より多くのパラメータは、公式ドキュメントに記載されています)
-
-
CREATE
[
TEMPORARY
] [
EXTERNAL
]
TABLE
[
IF
NOT
EXISTS
] [データベース名] TABLE_NAME
-
⑧ LIKE existing_table_or_view_name
-
[LOCATIONのhdfs_path]
次のキーワードを説明しています
①TEMPORARY
一時テーブルを作成し、一時テーブルは、現在のセッション後に有効になり、テーブルは自動的にセッションの終了後に削除されます。
注:DOESがパーティションフィールドをサポートしてインデックスを作成しません。
②EXTERNAL
外部表、開発パス(LOCATION)テーブルの同じ時間構造における実際のデータへのポインタを作成し、外部表を作成し、データではなく、変更を行うためのデータの場所へのパスのみを記録します。あなたがテーブルを削除すると、メタデータのみ外部表ではなく、削除データを削除します。
hdfs_nameでLOCATIONを使用
③IFはEXISTS、NOT
指定された名前を持つテーブルを作成します。同じテーブル名が既に存在する場合は、例外がスローされ、ユーザーはこの例外を無視するIFはNOT EXISTオプションを使用することができます。
④PARTITIONEDBY
テーブルは、ディレクトリの存在下で別々に各パーティションを1つ以上のパーティションを有していてもよいです。
⑤CLUSTEREDBY
点バレル、二つの理由点バレルは、第1、第2、より効率的なサンプリングで、より効率的なクエリです。
物理的には、各バケットは、パーティションテーブルまたはファイルであり、各ファイルは、マップリデュースのタブの出力パーティションに対応します。
⑥ROWのFORMAT
データのロード、支柱分離時に作成されたテーブルを設定するために使用されています。
⑦STOREDAS
[FILE_FORMATとして格納]
使用される
(持つ前のセクションで述べた)ハイブに格納されているファイル形式を指定します
。典型的には、[行フォーマット]を結合用います。
⑧LIKE
既存のテーブルへの援助、
空のテーブルを作成します
。
⑨COMMENT
効果のコメントへの声明
⑩SORTEDBY
指定は、どの列に従ってソート。
CATS
人から選択*としてテーブルPERSON2を作成します。
表を作成している間にデータを挿入し、新しいテーブルを生成します。
2. [削除]テーブル
(1)削除テーブル
[DROPテーブルTABLE_NAME]
定義や関連テーブルの削除予定リスト(ルールインデックス、およそ、トリガ、主キー、など)を含みます。テーブルが削除されると明らかに、テーブルには、データのすべての行が一緒に削除されますが含まれています。
(2)トランケートテーブル
[TRUNCATEのテーブルtable_name]
TRUNCATEコマンドは、単にテーブル内のデータ行をすべて削除されます。構造及びインデックステーブルの全てが存在し続けて、カラム上のルールに結合し、デフォルト値は、結合制約が継続し、トリガがアクティブなままです。あなたは、(上記のように)テーブルを削除するコマンドを入力するまで。
第三には、テーブルを変更します
1.テーブルの名前を変更します
new_table_name TO ALTER TABLE table_nameの名前の変更。
属性テーブルを変更します。2.
ALTER TABLE table_nameのSETはtable_propertiesをTBLPROPERTIES。
表まさにSedeの表変更、編集テーブルserdeカラム分離、およびその他の変更に関する注記
3.パーティションテーブルを変更します。
(1)新しいパーティション
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION 指定分区 [LOCATION ‘location1’];
(パーティションテーブルに指定された)(2)の名前を変更パーティションALERT表
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION 指定分区 [LOCATION ‘location1’];
(3)自動回復パーティション(自動パーティションは、ディレクトリ構造に従って分割されたシステム)MSCK
MSCK REPAIR TABLE table_name;
(4)パーティションを削除
ALTER TABLE table_name DROP [IF EXISTS] PARTITION 指定分区(例:(y='WT0228',m='201501'));
4. [変更列名変更COLNAME
-
ALTER
TABLEを
table_nameの[
PARTITION
partition_spec]
CHANGE
[
COLUMN
] col_oldname col_newname col_type
-
[ HOW col_col_comment]。
5. [追加]列または列置換
-
ALTER
TABLE
TABLE_NAME TABLE_NAME
-
ADD
|
REPLACE
COLUMNS
(COL_NAMEのDATA_TYPEを、......)
第四に、ビュー
1.Hiveビュー機能:
(1)のみ論理ビューではなく、マテリアライズド・ビュー(すなわち物理テーブル自体が格納されているビュー・データをマテリア)
(2)のみ、クエリビュー、/挿入/更新/削除データをロードすることはできません
ビューの作成時には(3)、単にクエリビューのメタデータを保存するために、ビューは、それらの対応するサブクエリを実行し始めました。
ビューの2.動作
(1)を作成
-
CREATE
VIEWを
[
IF
NOT
EXISTS
] [DB_NAMEを。]
-
AS
SELECT
...。
(2)変更
ALTER VIEW [db_name.] view_name SET TBLPROPERTIES table_properties;
(3)削除
DROP VIEW [IF NOT EXISTS] [db_name.] view_name;
V.インデックス
(1)を作成
-
CREATE
INDEX
index_nameのを
-
ON
TABLEの
base_table_name
-
AS
INDEX_TYPE;
(2)削除
DROP INDEX [IF EXISTS] index_name ON table_name;
(3)変更
ALTER INDEX index_name ON table_name [PARTITION partition_spec] REBUILD;
第六に、表示情報
1.リストのすべてのライブラリ
SHOWデータベース。
2.次の表は、すべてのライブラリ
データベース名のSHOW TABLES;
3.リストのすべてのビュー
SHOWビュー[IN /データベース名FROM]
パーティション表4.一覧
SHOWパーティションTABLE_NAME;
表示インデックス
SHOW(INDEX | INDEXES)[| DB_NAME(IN FROM)] table_with_index ON。
6.すべての列情報の表示リスト
SHOWのCOLUMNS(FROM | IN)TABLE_NAME [(FROM | IN)DB_NAME];
7.表示機能(カスタム関数)情報
SHOW機能 "*。";
表示ロックテーブル(テーブルに追加は、読み取りおよび書き込みアクセス)情報
SHOW LOCKS <テーブル名>
七つのユーザー定義関数UFD
3ハイブUDFがあります。
1.UDF:
、単一のデータラインに動作する1つに変換します
2.UDAF:
集約関数は、いくつかの出力関数を生成し、入力データを複数受け付け
UDAFのカスタム実装は、UDAFクラスの継承を実現しています。
ハイブサーバーに追加のjarパッケージには、関数を作成します
3.UDTF:
関数を使用して複数の行にデータの行