CREATE TABLE
StarRocks で新しいテーブルを作成します。
この操作には、対象データベースに対する CREATE TABLE 権限が必要です。
構文
CREATE [EXTERNAL] [TEMPORARY] TABLE [IF NOT EXISTS] [database.]table_name
(column_definition1[, column_definition2, ...]
[, index_definition1[, index_definition12,]])
[ENGINE = [olap|mysql|elasticsearch|hive|hudi|iceberg|jdbc]]
[key_desc]
[COMMENT "table comment"]
[partition_desc]
[distribution_desc]
[rollup_index]
[ORDER BY (column_name1,...)]
[PROPERTIES ("key"="value", ...)]
キーワード
EXTERNAL
EXTERNAL
キーワードは非推奨です。
Hive、Iceberg、Hudi、JDBC データソースからデータをクエリするには、EXTERNAL
キーワードを使用して外部テーブルを作成するのではなく、external catalogs を使用することをお勧めします。
推奨事項
v3.1 以降、StarRocks は Iceberg カタログで Parquet 形式のテーブルを作成し、INSERT INTO を使用してこれらの Parquet 形式の Iceberg テーブルにデータをシンクすることをサポートしています。
v3.2 以降、StarRocks は Hive カタログで Parquet 形式のテーブルを作成し、INSERT INTO を使用してこれらの Parquet 形式の Hive テーブルにデータをシンクすることをサポートしています。v3.3 以降、StarRocks は Hive カタログで ORC および Textfile 形式のテーブルを作成し、INSERT INTO を使用してこれらの ORC および Textfile 形式の Hive テーブルにデータをシンクすることをサポートしています。
非推奨の EXTERNAL
キーワードを使用したい場合は、EXTERNAL
キーワードの詳細を展開してください。
EXTERNAL
キーワードの詳細
外部データソースをクエリするための外部テーブルを作成するには、CREATE EXTERNAL TABLE
を指定し、ENGINE
を次のいずれかの値に設定します。詳細については、External table を参照してください。
-
MySQL 外部テーブルの場合、次のプロパティを指定します:
PROPERTIES (
"host" = "mysql_server_host",
"port" = "mysql_server_port",
"user" = "your_user_name",
"password" = "your_password",
"database" = "database_name",
"table" = "table_name"
)注意:
MySQL の "table_name" は実際のテーブル名を示す必要があります。対照的に、CREATE TABLE ステートメントの "table_name" は StarRocks 上のこの MySQL テーブルの名前を示します。これらは異なる場合も同じ場合もあります。
StarRocks で MySQL テーブルを作成する目的は、MySQL データベースにアクセスすることです。StarRocks 自体は MySQL データを保持または保存しません。
-
Elasticsearch 外部テーブルの場合、次のプロパティを指定します:
PROPERTIES (
"hosts" = "http://192.168.xx.xx:8200,http://192.168.xx0.xx:8200",
"user" = "root",
"password" = "root",
"index" = "tindex",
"type" = "doc"
)hosts
: Elasticsearch クラスタに接続するために使用される URL。1 つ以上の URL を指定できます。user
: 基本認証が有効な Elasticsearch クラスタにログインするために使用される root ユーザーのアカウント。password
: 上記の root アカウントのパスワード。index
: Elasticsearch クラスタ内の StarRocks テーブルのインデックス。インデックス名は StarRocks テーブル名と同じです。このパラメータを StarRocks テーブルのエイリアスに設定できます。type
: インデックスタイプ。デフォルト値はdoc
です。
-
Hive 外部テーブルの場合、次のプロパティを指定します:
PROPERTIES (
"database" = "hive_db_name",
"table" = "hive_table_name",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
)ここで、database は Hive テーブル内の対応するデータベースの名前です。table は Hive テーブルの名前です。
hive.metastore.uris
はサーバーアドレスです。 -
JDBC 外部テーブルの場合、次のプロパティを指定します:
PROPERTIES (
"resource"="jdbc0",
"table"="dest_tbl"
)resource
は JDBC リソース名で、table
は対象テーブルです。 -
Iceberg 外部テーブルの場合、次のプロパティを指定します:
PROPERTIES (
"resource" = "iceberg0",
"database" = "iceberg",
"table" = "iceberg_table"
)