メインコンテンツまでスキップ
バージョン: Latest-3.4

各テーブルタイプの機能

キーカラムとソートキー

Primary Key tableDuplicate Key tableAggregate tableUnique Key table
キーカラムとUNIQUE制約 主キーにはUNIQUE制約とNOT NULL制約があります。重複キーにはUNIQUE制約がありません。集計キーにはUNIQUE制約があります。ユニークキーにはUNIQUE制約があります。
キーカラムとデータ変更の論理的関係 新しいデータ行の主キー値がテーブル内の既存のデータ行と同じ場合、ユニーク制約違反が発生します。その場合、新しいデータ行が既存のデータ行を置き換えます。
ユニークキーテーブルと比較して、Primary Key tableは強化された基盤ストレージエンジンを持っているため、ユニークキーテーブルを置き換えることができます。
重複キーにはUNIQUE制約がありません。したがって、新しいデータ行の重複キー値がテーブル内の既存のデータ行と同じ場合、新旧のデータ行はテーブル内に保持されます。新しいデータ行の集計キー値がテーブル内の既存のデータ行と同じ場合、新旧のデータ行は集計キーと値カラムの集計関数に基づいて集計されます。新しいデータ行のユニークキー値がテーブル内の既存のデータ行と同じ場合、新しいデータ行が既存のデータ行を置き換えます。
ユニークキーテーブルは、集計関数がreplaceである集計テーブルと見なすことができます。
キーカラムとソートキーの関係v3.0.0以降、ソートキーはPrimary Key tableの主キーから分離されています。v3.3.0以降、Duplicate Key tableはORDER BYを使用してソートキーを指定することをサポートしています。ORDER BYDUPLICATE KEYの両方が使用される場合、ORDER BYが優先されます。v3.3.0以降、ソートキーはAggregate tableの集計キーから分離されています。Aggregate tableはORDER BYを使用してソートキーを指定し、AGGREGATE KEYを使用して集計キーを指定することをサポートしています。ソートキーと集計キーのカラムは同じである必要がありますが、カラムの順序は同じである必要はありません。v3.3.0以降、ソートキーはUnique Key tableのユニークキーから分離されています。Unique Key tableはORDER BYを使用してソートキーを指定し、UNIQUE KEYを使用してユニークキーを指定することをサポートしています。ソートキーとユニークキーのカラムは同じである必要がありますが、カラムの順序は同じである必要はありません。
キーカラムとソートキーがサポートするデータタイプ 数値(整数とBOOLEANを含む)、文字列、日付(DATEとDATETIME)。数値(整数、BOOLEAN、DECIMALを含む)、文字列、日付(DATEとDATETIME)。
キーカラムとパーティション/バケットカラムの関係 パーティションカラムとバケットカラムは主キーに含まれている必要があります。なしパーティションカラムとバケットカラムは集計キーに含まれている必要があります。パーティションカラムとバケットカラムはユニークキーに含まれている必要があります。

キーおよび値カラムのデータタイプ

キーのカラムは、数値(整数、BOOLEAN、DECIMALを含む)、文字列、日付(DATEとDATETIME)をサポートしています。

注記

Primary Key tableのキーカラムはDECIMALデータタイプをサポートしていません。

一方、値カラムは基本的なデータタイプをサポートしており、数値、文字列、日付(DATEとDATETIME)を含みます。BITMAP、HLL、および半構造化タイプのサポートは、異なるテーブルタイプの値カラムによって異なります。詳細は以下の通りです:

Primary Key tableDuplicate Key tableAggregate tableUnique Key table
BITMAPサポートされていますサポートされていませんサポートされています。集計関数はbitmap_union、replace、またはreplace_if_not_nullでなければなりません。サポートされています
HLLサポートされていますサポートされていませんサポートされています。集計関数はhll_union、replace、またはreplace_if_not_nullでなければなりません。サポートされています
PERCENTILEサポートされていますサポートされていませんサポートされています。集計関数はpercentile_union、replace、またはreplace_if_not_nullでなければなりません。サポートされています
半構造化データタイプ:JSON/ARRAY/MAP/STRUCTサポートされていますサポートされていますサポートされています。集計関数はreplaceまたはreplace_if_not_nullでなければなりません。サポートされています

データ変更

Primary Key TableDuplicate Key tableAggregate tableUnique Key table
データロードによるINSERT サポートされています。ロードジョブで__op=0を設定してINSERTを実現
内部実装では、StarRocksはINSERTとUPDATE操作の両方をUPSERT操作と見なします。
サポートされていますサポートされています(同じ集計キー値を持つデータ行は集計されます。)サポートされています(同じユニークキー値を持つデータ行は更新されます。)
データロードによるUPDATE サポートされていませんサポートされています(これは集計関数としてreplaceを使用することで実現できます。)サポートされています(ユニークキーテーブル自体はreplace集計関数を使用する集計テーブルと見なすことができます。)
データロードによるDELETE サポートされています。ロードジョブで__op=1を設定してDELETEを実現サポートされていません
ロードされるデータカラム値の整合性 デフォルトでは、すべてのカラム値をロードする必要があります。ただし、部分カラム更新(partial_update)が有効になっている場合、またはカラムにデフォルト値がある場合、すべてのカラム値をロードする必要はありません。デフォルトでは、すべてのカラム値をロードする必要があります。ただし、カラムにデフォルト値がある場合、すべてのカラム値をロードする必要はありません。デフォルトでは、すべてのカラム値をロードする必要があります。ただし、集計テーブルは値カラムの集計関数をREPLACE_IF_NOT_NULLとして指定することで部分カラム更新を実現できます。詳細はaggr_typeを参照してください。また、カラムにデフォルト値がある場合、すべてのカラム値をロードする必要はありません。デフォルトでは、すべてのカラム値をロードする必要があります。ただし、カラムにデフォルト値がある場合、すべてのカラム値をロードする必要はありません。
DML INSERTサポートされています
DML UPDATE
  • キーカラムをフィルター条件として使用: サポートされています
  • 値カラムをフィルター条件として使用: サポートされています
サポートされていません
DML DELETE
  • キーカラムをフィルター条件として使用: サポートされています
  • 値カラムをフィルター条件として使用: サポートされています
  • キーカラムをフィルター条件として使用: サポートされています
  • 値カラムをフィルター条件として使用: サポートされています
注意: キーまたは値カラム自体に基づく単純なフィルター条件(=、<、>など)のみがサポートされています。関数やサブクエリなどの複雑なフィルター条件はサポートされていません。
  • キーカラムをフィルター条件として使用: サポートされています。注意: キーカラム自体に基づく単純なフィルター条件(=、<、>など)のみがサポートされています。関数やサブクエリなどの複雑なフィルター条件はサポートされていません。
  • 値カラムをフィルター条件として使用: サポートされていません。

他の機能との互換性

Primary Key tableDuplicate Key tableAggregate tableUnique Key table
ビットマップインデックス/ブルームフィルターインデックスキーカラムにインデックスを構築サポートされています
値カラムにインデックスを構築サポートされていますサポートされていますサポートされていませんサポートされていません
パーティション/バケット式に基づくパーティション化/リストパーティション化サポートされています
ランダムバケット法サポートされていませんv3.1以降でサポートされていますサポートされていませんサポートされていません
マテリアライズドビュー非同期マテリアライズドビューサポートされています
同期マテリアライズドビューサポートされていませんサポートされていますサポートされていますサポートされています
その他の機能CTASサポートされていますサポートされていますサポートされていませんサポートされていません
バックアップとリストアv2.5以降でサポートされていますサポートされています