HQLの例を含む上位のHiveコマンド



このブログでは、HQLの例を使用してHiveコマンドについて説明しています。 CREATE、DROP、TRUNCATE、ALTER、SHOW、DESCRIBE、USE、LOAD、INSERT、JOIN、その他多くのHiveコマンド

このブログ投稿では、Hiveの上位コマンドについて例を挙げて説明します。これらのHiveコマンドは、基盤を設定するために非常に重要です。

Edureka 2019 Tech Career Guideがリリースされました!ガイドの最もホットな仕事の役割、正確な学習パス、業界の見通しなど。 ダウンロード 今。

Hiveとは何ですか?

Apache Hiveは、Hadoopで動作するように構築されたデータウェアハウスシステムです。これは、分散ストレージにある大規模なデータセットのクエリと管理に使用されます。 Apache Hadoopのオープンソースプロジェクトになる前は、HiveはFacebookで始まりました。これは、Hadoopのデータに構造を投影し、HiveQL(HQL)と呼ばれるSQLのような言語を使用してそのデータをクエリするメカニズムを提供します。





Hiveのテーブルはリレーショナルデータベースのテーブルに似ているため、Hiveが使用されます。 SQLに精通している場合、それは簡単なことです。多くのユーザーは、Hive-QLを使用してデータを同時にクエリできます。

HQLとは何ですか?

Hiveは、Hive-QL(HQL)と呼ばれる大規模なデータセットをクエリおよび管理するための単純なSQLのようなクエリ言語を定義します。 SQL言語に精通している場合は、簡単に使用できます。 Hiveを使用すると、言語に精通しているプログラマーがカスタムMapReduceフレームワークを記述して、より高度な分析を実行できます。



Hiveの使用:

1. ApacheHive分散ストレージ。

2. Hiveは、簡単なデータ抽出/変換/ロード(ETL)を可能にするツールを提供します

3.さまざまなデータ形式の構造を提供します。



4. Hiveを使用することで、Hadoop分散ファイルシステム(HDFSはに存在する大規模なデータセットのクエリと管理に使用されます)またはApacheHBaseなどの他のデータストレージシステムに保存されているファイルにアクセスできます。

Hiveの制限:

&bull Hiveは、オンライントランザクション処理(OLTP)用に設計されておらず、オンライン分析処理にのみ使用されます。

&bull Hiveはデータの上書きまたは把握をサポートしますが、更新および削除はサポートしません。

&bull Hiveでは、サブクエリはサポートされていません。

PigにもかかわらずHiveが使用されるのはなぜですか?

Pigが利用可能であるにもかかわらず、Hiveが使用される理由は次のとおりです。

  • Hive-QLは宣言型言語ラインSQLであり、PigLatinはデータフロー言語です。
  • Pig:非常に大きなデータセットを探索するためのデータフロー言語と環境。
  • Hive:分散データウェアハウス。

Hiveのコンポーネント:

メタストア:

Hiveは、HiveテーブルのスキーマをHiveメタストアに格納します。メタストアは、ウェアハウス内にあるテーブルとパーティションに関するすべての情報を保持するために使用されます。デフォルトでは、メタストアはHiveサービスと同じプロセスで実行され、デフォルトのメタストアはDerByデータベースです。

SerDe:

Serializer、Deserializerは、レコードの処理方法をハイブするための指示を出します。

Hiveコマンド:

データ定義言語(DDL)

DDLステートメントは、データベース内のテーブルやその他のオブジェクトを構築および変更するために使用されます。

DDLコマンド 関数
CREATE テーブルまたはデータベースの作成に使用されます
公演 データベース、テーブル、プロパティなどを表示するために使用されます
年齢 既存のテーブルに変更を加えるために使用されます
DESCRIBE テーブルの列について説明します
切り捨てる テーブルの行を永続的に切り捨てて削除するために使用されます
削除 テーブルデータを削除しますが、復元できます

コマンドsudohiveを指定してHiveシェルに移動し、コマンドを入力します ‘作成 データベース 名前> ’ Hiveに新しいデータベースを作成します。

Hiveコマンドを使用してHiveデータベースを作成する

Hiveウェアハウス内のデータベースを一覧表示するには、コマンド「 データベースを表示します。

データベースは、Hiveウェアハウスのデフォルトの場所に作成されます。 Clouderaでは、Hiveデータベースは/ user / hive / warehouseに保存されます。

データベースを使用するコマンドは 使用する

copy From Localコマンドを使用して、入力データをローカルからHDFSにコピーします。

ハイブにテーブルを作成すると、ハイブウェアハウスのデフォルトの場所に作成されます。 –「/ user / hive / Warehouse」、テーブルの作成後、HDFSからハイブテーブルにデータを移動できます。

次のコマンドは、「/ user / hive / Warehouse /retail.db」の場所にテーブルを作成します

注意 : Retail.dbは、Hiveウェアハウスで作成されたデータベースです。

説明する テーブルのスキーマに関する情報を提供します。

データ操作言語(DML)

DMLステートメントは、データベース内のデータを取得、保存、変更、削除、挿入、および更新するために使用されます。

例:

LOAD、INSERTステートメント。

構文:

データインパスをテーブル[テーブル名]にロードします

ロード操作は、データを対応するHiveテーブルに移動するために使用されます。キーワードの場合 地元 が指定されている場合、loadコマンドでローカルファイルシステムのパスを指定します。キーワードlocalが指定されていない場合は、ファイルのHDFSパスを使用する必要があります。

LOAD dataLOCALコマンドの例を次に示します。

データをHiveテーブルにロードした後、データ操作ステートメントを適用するか、集計関数でデータを取得できます。

レコード数をカウントする例:

集計関数のカウントは、テーブル内のレコードの総数をカウントするために使用されます。

「createexternal」テーブル:

ザ・ 外部を作成する キーワードはテーブルの作成に使用され、テーブルが作成される場所を提供するため、Hiveはこのテーブルのデフォルトの場所を使用しません。アン 外部 テーブルは、デフォルトのストレージではなく、ストレージのHDFSの場所を指します。

挿入コマンド:

ザ・ インサート コマンドは、データHiveテーブルをロードするために使用されます。挿入は、テーブルまたはパーティションに対して実行できます。

&bull INSERT OVERWRITEは、テーブルまたはパーティション内の既存のデータを上書きするために使用されます。

&bull INSERT INTOは、テーブル内の既存のデータにデータを追加するために使用されます。 (注:INSERT INTO構文はバージョン0.8から機能します)

「PartitionedBy」および「ClusteredBy」コマンドの例

‘によって分割 ‘はテーブルをパーティションに分割するために使用され、‘を使用してバケットに分割できます。 クラスター化 ‘コマンド。

データハイブスローエラーを挿入すると、動的パーティションモードが厳密になり、動的パーティションが有効になりません( ジェフドレスヘッドのウェブサイト )。そのため、Hiveシェルで次のパラメーターを設定する必要があります。

hive.exec.dynamic.partition = trueを設定します

動的パーティションを有効にするには、デフォルトではfalseです

hive.exec.dynamic.partition.mode = nonstrictを設定します

パーティション化はカテゴリごとに行われ、「ClusteredBy」コマンドを使用してバケットに分割できます。

「DropTable」ステートメントは、テーブルのデータとメタデータを削除します。外部テーブルの場合、メタデータのみが削除されます。

「DropTable」ステートメントは、テーブルのデータとメタデータを削除します。外部テーブルの場合、メタデータのみが削除されます。

データローカルインパス「aru.txt」をテーブルtablenameにロードし、Select * from tablenameコマンドを使用してemployee1テーブルを確認します。

Selectを使用してテーブル内のレコード数をカウントするには カウント(*) txnrecordsから

集約:

テーブル名からカウント(DISTINCTカテゴリ)を選択します

このコマンドは、「cate」テーブルのさまざまなカテゴリをカウントします。ここには3つの異なるカテゴリーがあります。

f1がカテゴリのフィールド名である別のテーブルカテゴリがあるとします。

グループ化:

Groupコマンドは、結果セットを1つ以上の列でグループ化するために使用されます。

カテゴリ別のtxtレコードグループからカテゴリ、合計(金額)を選択します

同じカテゴリの量を計算します。

結果は、あるテーブルが別のテーブルに格納されます。

select * fromoldtablenameとしてテーブルnewtablenameを作成します

参加コマンド:

ここでは、名前でもう1つのテーブルが作成されます 「メール」

オペレーションに参加する

結合操作は、それぞれに共通の値を使用して2つのテーブルのフィールドを結合するために実行されます。

xmlとhtmlの違いは何ですか

左外部結合

テーブルAおよびBの左外部結合(または単に左結合)の結果には、結合条件で「右」テーブルに一致するレコードが見つからない場合でも、常に「左」テーブル(A)のすべてのレコードが含まれます。 (B)。

右外部結合

右外部結合(または右結合)は、テーブルの処理が逆になっていることを除いて、左外部結合によく似ています。 「右」テーブル(B)のすべての行は、結合されたテーブルに少なくとも1回表示されます。

完全結合

結合されたテーブルには、両方のテーブルのすべてのレコードが含まれ、いずれかの側で一致が欠落している場合はNULLを入力します。

ハイブを使い終わったら、quitコマンドを使用してハイブシェルを終了できます。

ハイブを終了します

Hiveは、ビッグデータとHadoopと呼ばれる大きなパズルの一部にすぎません。 Hadoopは単なるHive以上のものです。以下をクリックして、Hadoopで習得する必要のある他のスキルを確認してください。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。

関連記事:

ビッグデータトレーニングが組織を変える7つの方法

Hiveデータモデル