INSERT
Description
特定のテーブルにデータを挿入するか、特定のテーブルをデータで上書きします。v3.2.0以降、INSERTはリモートストレージ内のファイルにデータを書き込むことをサポートします。INSERT INTO FILES() を使用して、StarRocksからリモートストレージにデータをアンロードできます。
SUBMIT TASK を使用して非同期のINSERTタスクを送信できます。
Syntax
-
データロード:
INSERT { INTO | OVERWRITE } [db_name.]<table_name>
[ PARTITION (<partition_name> [, ...] ) ]
[ TEMPORARY PARTITION (<temporary_partition_name> [, ...] ) ]
[ WITH LABEL <label>]
[ (<column_name>[, ...]) | BY NAME ]
[ PROPERTIES ("key"="value", ...) ]
{ VALUES ( { <expression> | DEFAULT } [, ...] ) | <query> } -
データアンロード:
INSERT INTO FILES()
[ WITH LABEL <label> ]
{ VALUES ( { <expression> | DEFAULT } [, ...] ) | <query> }
Parameters
| Parameter | Description |
|---|---|
| INTO | テーブルにデータを追加します。 |
| OVERWRITE | テーブルをデータで上書きします。 |
| table_name | データをロードしたいテーブルの名前。テーブルが存在するデータベースと共に db_name.table_name として指定できます。 |
| PARTITION | データをロードしたいパーティション。複数のパーティションを指定でき、カンマ (,) で区切る必要があります。宛先テーブルに存在するパーティションに設定する必要があります。このパラメータを指定すると、データは指定されたパーティションにのみ挿入されます。このパラメータを指定しない場合、データはすべてのパーティションに挿入されます。 |
| TEMPORARY PARTITION | データをロードしたいtemporary partition の名前。複数の一時パーティションを指定でき、カンマ (,) で区切る必要があります。 |
| label | データロードトランザクションごとにデータベース内で一意の識別ラベル。指定しない場合、システムが自動的にトランザクションのラベルを生成します。トランザクションのラベルを指定することをお勧めします。そうしないと、接続エラーが発生して結果が返されない場合にトランザクションの状態を確認できません。SHOW LOAD WHERE label="label" ステートメントを使用してトランザクションの状態を確認できます。ラベルの命名規則については、System Limits を参照してください。 |
| column_name | データをロードする宛先カラムの名前。宛先テーブルに存在するカラムとして設定する必要があります。column_name と BY NAME を両方指定することはできません。
v3.3.1以降、主キーテーブルでのINSERT INTOステートメントでカラムリストを指定すると、部分更新が実行されます(以前のバージョンでは完全アップサート)。カラムリストが指定されていない場合、システムは完全アップサートを実行します。 |
| BY NAME | ソースと宛先のカラムを名前で一致させます。column_name と BY NAME を両方指定することはできません。 指定しない場合、宛先カラムは宛先カラム名に関係なく、ソースカラムに順番に1対1でマッピングされます。 |
| PROPERTIES | INSERTジョブのプロパティ。各プロパティはキーと値のペアでなければなりません。サポートされているプロパティについては、PROPERTIES を参照してください。 |
| expression | カラムに値を割り当てる式。 |
| DEFAULT | カラムにデフォルト値を割り当てます。 |
| query | 結果が宛先テーブルにロードされるクエリステートメント。StarRocksがサポートする任意のSQLステートメントを使用できます。 |
| FILES() | テーブル関数 FILES()。この関数を使用して、リモートストレージにデータをアンロードできます。 |