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キーワードを使用して外部テーブルを作成する代わりに。
推奨事項
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をこれらのいずれかの値に設定します。詳細については、外部テーブルを参照してください。
-
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クラスターにログインするために使用されるルートユーザーのアカウントです。password: 前述のルートアカウントのパスワードです。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"
)resourceはIcebergリソース名です。databaseはIcebergデータベースです。tableはIcebergテーブルです。 -
Hudi外部テーブルの場合、以下のプロパティを指定します。
PROPERTIES (
"resource" = "hudi0",
"database" = "hudi",
"table" = "hudi_table"
)
TEMPORARY
一時テーブルを作成します。v3.3.1以降、StarRocksはDefault Catalogでの一時テーブル作成をサポートしています。詳細については、以下を参照してください。一時テーブル。
一時テーブルを作成する際は、ENGINE を olap に設定する必要があります。