ClickHouse/docs/ja/sql-reference/statements/insert-into.md

3.9 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 34 INSERT INTO

INSERT

データの追加。

基本的なクエリ形式:

INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...

クエリでは、挿入する列のリストを指定できます [(c1, c2, c3)]. この場合、残りの列は:

  • から計算される値 DEFAULT テーブル定義で指定された式。
  • ゼロと空の文字列 DEFAULT 式は定義されていません。

もし strict_insert_defaults=1,を持たない列 DEFAULT 定義され記載されていることを返します。

データは、任意の場所でINSERTに渡すことができます 形式 ClickHouseがサポートしています。 この形式は、クエリで明示的に指定する必要があります:

INSERT INTO [db.]table [(c1, c2, c3)] FORMAT format_name data_set

For example, the following query format is identical to the basic version of INSERT … VALUES:

INSERT INTO [db.]table [(c1, c2, c3)] FORMAT Values (v11, v12, v13), (v21, v22, v23), ...

ClickHouseは、データの前にスペースと改行がある場合をすべて削除します。 クエリを作成するときは、クエリ演算子の後に新しい行にデータを置くことをお勧めします(データがスペースで始まる場合は重要です)。

例:

INSERT INTO t FORMAT TabSeparated
11  Hello, world!
22  Qwerty

挿入することができます。データから別のクエリのコマンドラインクライアント、HTTPインターフェース。 詳細については “インター”.

制約

テーブルが 制約, their expressions will be checked for each row of inserted data. If any of those constraints is not satisfied — server will raise an exception containing constraint name and expression, the query will be stopped.

の結果を挿入する SELECT

INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...

列は、SELECT句内の位置に従ってマップされます。 ただし、SELECT式とINSERTテーブルの名前は異なる場合があります。 必要に応じて、型鋳造が行われる。

値以外のデータ形式では、次のような式に値を設定できません now(), 1 + 2、というように。 Values形式では式の使用は制限されますが、この場合は非効率的なコードが実行に使用されるため、これは推奨されません。

その他のクエリをデータ部品に対応していない: UPDATE, DELETE, REPLACE, MERGE, UPSERT, INSERT UPDATE. ただし、古いデータを削除するには ALTER TABLE ... DROP PARTITION.

FORMAT 次の場合、クエリの最後に句を指定する必要があります SELECT 句は、表関数を含みます 入力().

パフォーマン

INSERT 入力データを主キーでソートし、パーティションキーでパーティションに分割します。 た場合のデータを挿入し複数の仕切りは一度で大幅に低減できることの INSERT クエリ。 これを避けるには:

  • 一度に100,000行など、かなり大きなバッチでデータを追加します。
  • グループによるデータのパーティション鍵のアップロード前にでClickHouse.

パフォーマンスが低下しない場合:

  • データはリアルタイムで追加されます。
  • アップロードしたデータとは、通常はソートされました。

元の記事