Impala-create-table-statement

提供:Dev Guides
移動先:案内検索

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_dbstudent という名前のテーブルを作成しました。

[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 テーブルを見つけることができます。

My DBデータベースの作成