mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-16 13:30:50 +00:00
d91c97d15d
* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
8.3 KiB
8.3 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
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-クエリにsingleを含める必要があります PRIMARY KEY
.
!!! warning "警告" Keyを属性として記述することはできません。
数値キー
タイプ: 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.
複合キー
キーは次のようになります 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 クリックハウスで。Nullable サポートされていない。 |
はい。 |
null_value |
既存の要素以外の要素のデフォルト値。 この例では、空の文字列です。 使用できません NULL この分野で。 |
はい。 |
expression |
式 そのClickHouseはその値を実行します。 この式には、リモートsqlデータベースの列名を指定できます。 したがって、これを使用して、リモート列の別名を作成できます。 デフォルト値:式なし。 |
いいえ。 |
hierarchical |
もし true 、属性は、現在のキーの親キーの値が含まれています。 見る 階層辞書.デフォルト値: false . |
いいえ。 |
injective |
このフラグは、 id -> attribute 画像は 射影.もし true 、ClickHouseはの後に自動的に置くことができます GROUP BY 句注入を伴う辞書への要求。 通常、そのような要求の量が大幅に削減されます。デフォルト値: false . |
いいえ。 |
is_object_id |
MongoDBドキュメントに対してクエリが実行されるかどうかを示すフラグ ObjectID .デフォルト値: false . |
いいえ。 |