ClickHouse/docs/tr/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

7.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 44 Sözlük anahtarı ve alanları

Sözlük anahtarı ve alanları

Bu <structure> yan tümcesi sözlük anahtarı ve sorgular için kullanılabilir alanlarııklar.

XML açıklaması:

<dictionary>
    <structure>
        <id>
            <name>Id</name>
        </id>

        <attribute>
            <!-- Attribute parameters -->
        </attribute>

        ...

    </structure>
</dictionary>

Nitelikler elemanlarda açıklanmıştır:

DDL sorgusu:

CREATE DICTIONARY dict_name (
    Id UInt64,
    -- attributes
)
PRIMARY KEY Id
...

Öznitelikler sorgu gövdesinde açıklanmıştır:

Anahtar

ClickHouse aşağıdaki anahtar türlerini destekler:

  • Sayısal tuş. UInt64. Tanımlanan <id> etiket veya kullanma PRIMARY KEY kelime.
  • Kompozit anahtar. Farklı türde değerler kümesi. Etiket definedinde tanımlı <key> veya PRIMARY KEY kelime.

Bir xml yapısı şunları içerebilir <id> veya <key>. DDL sorgusu tek içermelidir PRIMARY KEY.

!!! warning "Uyarıcı" Anahtarı bir öznitelik olarak tanımlamamalısınız.

Sayısal Tuş

Tür: UInt64.

Yapılandırma örneği:

<id>
    <name>Id</name>
</id>

Yapılandırma alanları:

  • name The name of the column with keys.

DDL sorgusu için:

CREATE DICTIONARY (
    Id UInt64,
    ...
)
PRIMARY KEY Id
...
  • PRIMARY KEY The name of the column with keys.

Kompozit Anahtar

Anahtar bir olabilir tuple her türlü alandan. Bu düzen bu durumda olmalıdır complex_key_hashed veya complex_key_cache.

!!! tip "Uç" Bileşik bir anahtar tek bir elemandan oluşabilir. Bu, örneğin bir dizeyi anahtar olarak kullanmayı mümkün kılar.

Anahtar yapısı eleman ayarlanır <key>. Anahtar alanlar sözlük ile aynı biçimde belirtilir öznitelik. Örnek:

<structure>
    <key>
        <attribute>
            <name>field1</name>
            <type>String</type>
        </attribute>
        <attribute>
            <name>field2</name>
            <type>UInt32</type>
        </attribute>
        ...
    </key>
...

veya

CREATE DICTIONARY (
    field1 String,
    field2 String
    ...
)
PRIMARY KEY field1, field2
...

Bir sorgu için dictGet* fonksiyon, bir tuple anahtar olarak geçirilir. Örnek: dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2)).

Öznitelik

Yapılandırma örneği:

<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>

veya

CREATE DICTIONARY somename (
    Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID
)

Yapılandırma alanları:

Etiket ıklama Gerekli
name Sütun adı. Evet
type ClickHouse veri türü.
ClickHouse, sözlükten belirtilen veri türüne değer atmaya çalışır. Örneğin, MySQL için alan olabilir TEXT, VARCHAR, veya BLOB MySQL kaynak tablosunda, ancak şu şekilde yüklenebilir String Clickhouse'da.
Nullable desteklenmiyor.
Evet
null_value Varolan olmayan bir öğe için varsayılan değer.
Örnekte, boş bir dizedir. Kullanamazsınız NULL bu alanda.
Evet
expression İfade bu ClickHouse değeri yürütür.
İfade, uzak SQL veritabanında bir sütun adı olabilir. Bu nedenle, uzak sütun için bir diğer ad oluşturmak için kullanabilirsiniz.

Varsayılan değer: ifade yok.
Hayır
hierarchical Eğer true, öznitelik, geçerli anahtar için bir üst anahtarın değerini içerir. Görmek Hiyerarşik Sözlükler.

Varsayılan değer: false.
Hayır
injective Olup olmadığını gösteren bayrak id -> attribute ima isge is enjektif.
Eğer true, ClickHouse sonra otomatik olarak yerleştirebilirsiniz GROUP BY fık .ra ile ilgili istek dictionariesleriniz Genellikle bu tür taleplerin miktarını önemli ölçüde azaltır.

Varsayılan değer: false.
Hayır
is_object_id Bir MongoDB belgesi için sorgunun yürütülüp yürütülmediğini gösteren bayrak ObjectID.

Varsayılan değer: false.
Hayır

Ayrıca Bakınız

Orijinal makale