まず、データベース固有の文
データベースを作成します。1.
データベースCREATEインパラに新しいデータベースを作成するためのステートメントを。
データベース名をEXISTS、NOT場合には、データベースを作成します。
ここでは、IF NOT EXISTSは、オプションの句です。私たちは、同じ名前が存在しない場合にこの句を使用する場合は、データベースを既存の場合は、指定された名前のデータベースを作成します。
インパラインパラのデフォルトのユーザーが行う操作は、十分な権限の問題、解決策を報告されます。
ワン:指定したフォルダに付与されたHDFSへのアクセス権
HadoopのFS -chmod -R 777 HDFS://ノード-1:9000 /ユーザ/ハイブ
2:偽HDFS-site.xmlのための権限を設定するhaoop設定ファイル
どちらの方法でも、することができます。
デフォルトでは、いくつかの倉庫のフォルダパスハイブに新しいデータベース名を作成します。
/user/hive/warehouse/ittest.db
データベースを作成するときにも、HDFSパスを指定することができます。パスの注意許可。
HadoopのFS -mkdir -p /入力/インパラ
HadoopのFS -chmod -R 777 /入力/インパラ
外部テーブルT3(ID int型、名前ストリング、年齢INT)行フォーマットフィールドが「\ t」の位置「/入力/インパラ/外部」によって終了区切りを作成します。 |
2、データベースを削除
インパラのDROPデータベースステートメントは、インパラからデータベースを削除します。データベースを削除する前に、すべてがテーブルから削除することをお勧めします。
あなたはカスケード削除を使用する場合は、インパラは、指定されたデータベースのテーブルを削除する前に削除されます。
DROPデータベースのサンプル・カスケード。
第二に、テーブル固有の文
1、作成 TABLE文を
TABLE、CREATE文で、目的のデータベースをインパラに使用されている新しいテーブルを作成します。テーブル名を指定し、その列と列のデータ型を定義する必要があります。
インパラハイブは、SQLタイプ、Java型のサポートに加えて、データ型などをサポートしていました。
database_name.table_nameとを(EXISTSていない場合は、テーブルを作成します COLUMN1 DATA_TYPE、 COLUMN2 DATA_TYPE、 COLUMN3 DATA_TYPE、 ......... columnN DATA_TYPE ); |
CREATE TABLE IFはmy_db.student(名前STRING、年齢INT、接触INT)をEXISTSわけではありません。
ハイブと一致テーブルのデータ・ストレージ・パスのデフォルトの建設。また、テーブルの建設時に場所を通じて注意を払うHDFS権問題への必要性を特定のパスを指定することができます。
2、INSERTのステートメント
:インパラINSERT文には2つの句があるINTOや上書きを。新しいデータレコードに挿入するため、カバーのための既存のレコードを上書きします。
TABLE_NAMEへの挿入(column1の、column2の、COLUMN3、... columnN) 値(値1、値2、値3、...値N)。 TABLE_NAME値(値1、値2、値2)に挿入します。 |
ここでは、COLUMN1、COLUMN2、... columnNは、テーブル内のデータを挿入する列の名前です。値もテーブル値の列の順序と同じ順序を保証するが、列名を指定せずに添加してもよいです。
例えば:
テーブルの従業員(同上INT、名前のSTRING、年齢INT、アドレスSTRING、給与BIGINT)を作成します。
従業員値にインサート(1、 'ラメシュ'、32 'アーメダバード'、20000)。
従業員の値への挿入(2 'Khilan'、25 'デリー'、15000)。
従業員の値への挿入(3 'Kaushikによる'、23 'コタ'、30000)。
従業員の値への挿入(4 'Chaitali'、25 'ムンバイ'、35000)。
従業員の値への挿入(5 'のHardik'、27 'ボパール'、40000);
従業員の値への挿入(6 'コマル'、22 'MP'、32000)。
上書きの間でカバー句オーバーレイテーブルのすべてのレコード。テーブルからレコードが完全に削除カバー。
上書き従業員の値を挿入し(1、 'ラム'、26 'ヴィシャーカパトナム'、37000);
3、SELECT文
インパラは、SELECT文では、1つ以上のデータベーステーブルからデータを抽出するために使用されます。このクエリは、テーブルとしてデータを返します。
4、DESCRIBE文
インパラは、説明文は、テーブルの説明を提供するために使用されます。この文の結果は、このような名前とデータ型の列として、テーブルに関する情報が含まれています。
TABLE_NAMEを説明。
また、あなたはまた、ハイブルックアップテーブルのメタデータ情報のステートメントを使用することができます。
DESCフォーマットさTABLE_NAME。
5、ALTER テーブル
でインパラのALTER TABLE指定したテーブルのメイクの変更のための声明。この文では、我々はテーブル内の既存の列を追加、削除または修正することができ、あなたはそれらの名前を変更することができます。
テーブルの名前を変更します。
ALTER TABLE [old_db_name。] old_table_name RENAME TO
【new_db_name。] new_table_name
表の列に追加します:
ALTER TABLE名ADDのCOLUMNS (col_spec [、col_spec ...])
テーブルから列を削除します。
ALTER TABLE名DROP [COLUMN] COLUMN_NAME
列の名前や種類を変更します。
ALTER TABLE名CHANGE column_nameにNEW_NAME new_type
6、削除、切り捨て テーブル
インパラ ドロップ インパラ既存のテーブルを削除するには、表文を。この文はまた、HDFS内のファイルの削除は、テーブルの基礎となるだろう。
注:テーブルを削除した後、テーブルで利用可能なすべての情報が永久に失われているため、このコマンドを使用するときは注意しなければなりません。
DROPテーブルdatabase_name.table_nameと、
インパラ切り捨ては、 TABLE文は、既存のテーブルからすべてのレコードを削除します。予約テーブル構造。
あなたはまた、完全なリストを削除するには、DROP TABLEコマンドを使用することができますが、それはあなたには、いくつかのデータを保存したい場合は、あなたがこのテーブルを再作成する必要があります、データベースからテーブルの完全な構造を削除します。
TRUNCATE TABLE_NAME;
7、ビュービュー
見るだけインパラは、データベースに格納され、関連する名前を持つクエリ言語ステートメントを。これは、テーブルの形で予め定義されたSQLクエリの組み合わせに基づいています。
テーブルまたは選択した行が含まれている可能性のあるすべての行を表示します。
作成ビューでない場合は、SelectステートメントとしてVIEW_NAMEをEXISTS
ビュービューを作成し、クエリビュービュー
VIEWでない場合は、選択名、従業員からの年齢AS EMPLOYEE_VIEW EXISTS作成します。
変更ビュー
SelectステートメントのためのALTER VIEWのdatabase_name.view_name
[削除]を表示
DROP VIEWのdatabase_name.view_name。
8、注文 by句
インパラBY ORDER一つ以上に従ってデータを昇順または降順ソートにおける句列。デフォルトでは、いくつかのデータベースクエリは、昇順になります。
COL_NAME BY TABLE_NAMEのORDER SELECT * FROM
[ASC | DESC] [NULLS FIRST | NULLS LAST]
データリストは、それぞれの行のキーワードASCまたはDESCを昇順または降順することができます。
我々はNULLS FIRSTを使用する場合は、テーブル内のすべてのNULL値は、トップ行に配置されており、我々はNULLS LASTを使用する場合、配置されている最後の列のNULL値を含みます。
9、グループ by句
インパラBY GROUP SELECT文の句は協働して使用され、同じデータがグループに配置されています。
TABLE_NAMEグループBYのCOL_NAMEからデータを選択します。
10、HAVING句
中インパラ持つ句を使用すると、フィルタ結果が最終的な結果でその条件を示しているグループを指定することができます。
一般的に、group by句と節を有する;それは、GROUP BY節で作成された設定条件に載置されます。
11、オフセット限界、
インパラは制限結果セットに行句の数が必要な数に制限され、すなわち、クエリ結果セットは、より多くの指定された制限のレコードよりも含んでいません。
一般に、ゼロから開始する行の選択クエリを結果セット。使用してオフセット句を、我々は出力を検討する場所を決めることができます。
12、句を持ちます
クエリが複雑すぎる場合は、我々は複雑部分のエイリアスを定義して、クエリに含ま句でそれらインパラを使用することができます。
以下のようにX(1を選択)、Y(2を選択)(X組合yから選択*)を有します。
たとえば、次のようにより古い25人の従業員と顧客のレコードを表示するための句で使用します。
T1と(年齢> 25顧客からの選択*)として、
(年齢> 25従業員から選択*)としてT2
(T2 SELECT * FROM T1組合SELECT * FROM)。
図13に示すように、異なります
インパラDISTINCT演算子は、重複値を排除することによって、一意の値を得るために使用されます。
個別の列を選択... table_nameのから。