mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-16 19:32:07 +00:00
8.0 KiB
8.0 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
44 | 辞書キーとフィールド |
辞書キーとフィールド
その <structure>
句クエリで使用できる辞書キーとフィールドを説明します。
XMLの説明:
<dictionary>
<structure>
<id>
<name>Id</name>
</id>
<attribute>
<!-- Attribute parameters -->
</attribute>
...
</structure>
</dictionary>
属性は要素に記述されています:
DDLクエリ:
CREATE DICTIONARY dict_name (
Id UInt64,
-- attributes
)
PRIMARY KEY Id
...
属性は、クエリの本文に記述されています:
キー
ClickHouseは次の種類のキーをサポートしています:
- 数値キー。
UInt64
. で定義される。<id>
タグまたは使用PRIMARY KEY
キーワード。 - 複合キー。 異なる型の値のセット。 タグで定義
<key>
またはPRIMARY KEY
キーワード。
Xmlの構造を含むことができま <id>
または <key>
. DDL-クエリには単一を含む必要があります PRIMARY KEY
.
!!! warning "警告" キーを属性として記述することはできません。
数値キー
タイプ: UInt64
.
設定例:
<id>
<name>Id</name>
</id>
設定フィールド:
name
– The name of the column with keys.
DDLクエリの場合:
CREATE DICTIONARY (
Id UInt64,
...
)
PRIMARY KEY Id
...
PRIMARY KEY
– The name of the column with keys.
複合キー
キーはaである場合もあります tuple
フィールドの任意のタイプから。 その レイアウト この場合、 complex_key_hashed
または complex_key_cache
.
!!! tip "ヒント" 複合キーは、単一の要素で構成できます。 これにより、たとえば文字列をキーとして使用することができます。
キー構造は要素に設定されます <key>
. キーフィールドは、辞書と同じ形式で指定されます 属性. 例:
<structure>
<key>
<attribute>
<name>field1</name>
<type>String</type>
</attribute>
<attribute>
<name>field2</name>
<type>UInt32</type>
</attribute>
...
</key>
...
または
CREATE DICTIONARY (
field1 String,
field2 String
...
)
PRIMARY KEY field1, field2
...
クエリに対して dictGet*
関数は、タプルがキーとして渡されます。 例: dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))
.
属性
設定例:
<structure>
...
<attribute>
<name>Name</name>
<type>ClickHouseDataType</type>
<null_value></null_value>
<expression>rand64()</expression>
<hierarchical>true</hierarchical>
<injective>true</injective>
<is_object_id>true</is_object_id>
</attribute>
</structure>
または
CREATE DICTIONARY somename (
Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID
)
設定フィールド:
タグ | 説明 | 必須 |
---|---|---|
name |
列名。 | はい。 |
type |
ClickHouseデータ型。 ClickHouseは、dictionaryから指定されたデータ型に値をキャストしようとします。 例えば、MySQL、フィールドが TEXT , VARCHAR ,または BLOB MySQLソーステーブルでは、次のようにアップロードできます String クリックハウスでNull可能 サポートされていない。 |
はい。 |
null_value |
既存の要素以外の既定値。 この例では、空の文字列です。 使用できません NULL この分野で。 |
はい。 |
expression |
式 そのClickHouseは値に対して実行されます。 式には、リモートSQLデータベースの列名を指定できます。 したがって、リモート列の別名を作成するために使用できます。 デフォルト値:式なし。 |
いいえ。 |
hierarchical |
もし true この属性には、現在のキーの親キーの値が含まれます。 見る 階層辞書.デフォルト値: false . |
いいえ。 |
injective |
このフラグは id -> attribute 画像は injective.もし true 、ClickHouseはの後に自動的に置くことができます GROUP BY 句インジェクションを使用した辞書への要求。 通常、そのような要求の量を大幅に削減します。デフォルト値: false . |
いいえ。 |
is_object_id |
クエリがMongoDBドキュメントに対して実行されるかどうかを示すフラグ ObjectID .デフォルト値: false . |
いいえ。 |