Impala-create-table-statement
Impala-テーブルステートメントの作成
*CREATE TABLE* ステートメントは、Impalaの必要なデータベースに新しいテーブルを作成するために使用されます。 基本的なテーブルを作成するには、テーブルに名前を付け、その列と各列のデータ型を定義する必要があります。
構文
以下は、 CREATE TABLE ステートメントの構文です。 ここで、 IF NOT EXISTS はオプションの句です。 この句を使用すると、指定された名前のテーブルが作成されますが、指定されたデータベースに同じ名前のテーブルが存在しない場合のみです。
create table IF NOT EXISTS database_name.table_name (
column1 data_type,
column2 data_type,
column3 data_type,
………
columnN data_type
);
CREATE TABLEは、データベースシステムに新しいテーブルを作成するよう指示するキーワードです。 テーブルの一意の名前または識別子は、CREATE TABLEステートメントの後に続きます。 オプションで、 table_name とともに database_name を指定できます。
例
次に、テーブル作成ステートメントの例を示します。 この例では、データベース my_db に student という名前のテーブルを作成しました。
[quickstart.cloudera:21000] > CREATE TABLE IF NOT EXISTS my_db.student
(name STRING, age INT, contact INT );
上記のステートメントを実行すると、指定した名前のテーブルが作成され、次の出力が表示されます。
Query: create table student (name STRING, age INT, phone INT)
Fetched 0 row(s) in 0.48s
検証
*show Tables* クエリは、Impalaの現在のデータベース内のテーブルのリストを提供します。 したがって、 *Show Tables* ステートメントを使用して、テーブルが作成されているかどうかを確認できます。
まず、以下に示すように、必要なテーブルが存在するデータベースにコンテキストを切り替える必要があります。
[quickstart.cloudera:21000] > use my_db;
Query: use my_db
その後、 show tables クエリを使用してテーブルのリストを取得すると、以下に示すように、 student という名前のテーブルを確認できます。
[quickstart.cloudera:21000] > show tables;
Query: show tables
+-----------+
| name |
+-----------+
| student |
+-----------+
Fetched 1 row(s) in 0.10s
HDFSパス
HDFSファイルシステムでデータベースを作成するには、以下に示すようにデータベースを作成する場所を指定する必要があります。
CREATE DATABASE IF NOT EXISTS database_name LOCATION hdfs_path;
Hue Browserを使用したデータベースの作成
impala Queryエディターを開き、その中に CREATE Table ステートメントを入力します。 次のスクリーンショットに示すように、実行ボタンをクリックします。
クエリを実行した後、カーソルをドロップダウンメニューの上部にそっと移動すると、更新記号が表示されます。 更新記号をクリックすると、データベースのリストが更新され、最近行われた変更がデータベースに適用されます。
検証
エディターの左側の見出し DATABASE の下にある*ドロップダウン*をクリックします。 そこでデータベースのリストを見ることができます。 以下に示すように、データベース my_db を選択します。
データベース my_db を選択すると、以下に示すように、その中のテーブルのリストを見ることができます。 以下に示すように、新しく作成された student テーブルを見つけることができます。