はじめに
Apache Hiveは、ApacheHadoopでクエリを実行して構造化データを分析するために使用されるデータウェアハウスツールです。 HiveQLと呼ばれるSQLのような言語を使用しています。
この記事では、Hiveでテーブルを作成してデータを読み込む方法を学びます。また、データを表示するための重要なHiveQLコマンドも紹介します。
前提条件
- Linuxを実行しているシステム
- sudoのユーザーアカウント またはルート 特権
- ターミナルウィンドウ/コマンドラインへのアクセス
- 作業中のHadoop インストール
- 作業中のハイブ インストール
Hiveでテーブルを作成してロードする
Hiveのテーブルは、スキーマを使用して特定の識別子でデータを並べ替えるデータのセットです。
Hiveでテーブルを作成するための一般的な構文は次のとおりです。
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
(col_name data_type [COMMENT 'col_comment'],, ...)
[COMMENT 'table_comment']
[ROW FORMAT row_format]
[FIELDS TERMINATED BY char]
[STORED AS file_format];
以下の手順に従って、Hiveにテーブルを作成します。
ステップ1:データベースを作成する
1. create
を実行して、「company」という名前のデータベースを作成します コマンド:
create database company;
端末は、確認メッセージとアクションの実行に必要な時間を出力します。
2.次に、 show
を実行して、データベースが作成されていることを確認します コマンド:
show databases;
3.リストで「会社」データベースを見つけます:
4.次のコマンドを使用して、「会社」データベースを開きます。
use company;
ステップ2:Hiveでテーブルを作成する
「会社」データベースには、最初の作成後にテーブルが含まれていません。データの転送元の.txtファイルと識別子が一致するテーブルを作成しましょう。
1. / hdoopに「employees.txt」ファイルを作成します ディレクトリ。ファイルには、従業員に関するデータが含まれている必要があります:
2.「employees.txt」ファイルのデータを列に配置します。この例の列名は次のとおりです。
- ID
- 名前
- 国
- 部門
- 給与
3.テーブルを作成するときに列名を使用します。次のコマンドを実行してテーブルを作成します。
create table employees (id int, name string, country string, department string, salary int)
4..txtファイルから対応する列にデータを配置する論理スキーマを作成します。 「employees.txt」ファイルでは、データは'-'
で区切られています 。論理スキーマタイプを作成するには:
row format delimited fields terminated by '-';
端末は確認メッセージを出力します:
5. show
を実行して、テーブルが作成されているかどうかを確認します コマンド:
show tables;
ステップ3:ファイルからデータをロードする
テーブルを作成しましたが、 / hdoop にある「employees.txt」ファイルからデータがロードされていないため、テーブルは空です。 ディレクトリ。
1. load
を実行してデータを読み込みます コマンド:
load data inpath '/hdoop/employees.txt' overwrite into table employees;
2. select
を実行して、データがロードされているかどうかを確認します コマンド:
select * from employees;
ターミナルは、 employees.txtからインポートされたデータを印刷します ファイル:
ハイブデータを表示する
テーブルのデータを表示するには、いくつかのオプションがあります。次のオプションを使用すると、大量のデータをより効率的に操作できます。
列の表示
desc
を実行して、テーブルの列を表示します コマンド:
desc employees;
出力には、列の名前とプロパティが表示されます:
選択したデータを表示する
従業員とその出身国を表示するとします。 select
を実行して、データを選択して表示します コマンド:
select name,country from employees;
出力には、従業員とその国のリストが含まれます: