ClickHouse/docs/tr/sql_reference/functions/ext_dict_functions.md
2020-04-15 16:56:49 +03:00

7.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true e8cd92bba3 58 Harici Sözlüklerle çalışma

Harici Sözlüklerle Çalışmak İçin İşlevler

Dış sözlükleri bağlama ve yapılandırma hakkında bilgi için bkz. Dış söz dictionarieslükler.

dictGet

Harici bir sözlükten bir değer alır.

dictGet('dict_name', 'attr_name', id_expr)
dictGetOrDefault('dict_name', 'attr_name', id_expr, default_value_expr)

Parametre

  • dict_name — Name of the dictionary. String lit literal.
  • attr_name — Name of the column of the dictionary. String lit literal.
  • id_expr — Key value. İfade dönen bir Uİnt64 veya Demet- sözlük yapılandırmasına bağlı olarak değer yazın.
  • default_value_expr — Value returned if the dictionary doesn't contain a row with the id_expr anahtar. İfade veri türü için yapılandırılmış değeri döndürme attr_name öznitelik.

Döndürülen değer

  • ClickHouse özniteliği başarıyla ayrıştırırsa öznitelik veri türü, fonksiyonlar karşılık gelen sözlük özniteliğinin değerini döndürür id_expr.

  • Anahtar yoksa, karşılık gelen id_expr, söz thelükte, sonra:

    - `dictGet` returns the content of the `<null_value>` element specified for the attribute in the dictionary configuration.
    - `dictGetOrDefault` returns the value passed as the `default_value_expr` parameter.
    

Clickhouse, özniteliğin değerini ayrıştıramazsa veya değer öznitelik veri türüyle eşleşmiyorsa bir özel durum atar.

Örnek

Metin dosyası oluşturma ext-dict-text.csv aşağıdakileri içeren:

1,1
2,2

İlk sütun id ikinci sütun c1.

Dış sözlüğü yapılandırma:

<yandex>
    <dictionary>
        <name>ext-dict-test</name>
        <source>
            <file>
                <path>/path-to/ext-dict-test.csv</path>
                <format>CSV</format>
            </file>
        </source>
        <layout>
            <flat />
        </layout>
        <structure>
            <id>
                <name>id</name>
            </id>
            <attribute>
                <name>c1</name>
                <type>UInt32</type>
                <null_value></null_value>
            </attribute>
        </structure>
        <lifetime>0</lifetime>
    </dictionary>
</yandex>

Sorguyu gerçekleştir:

SELECT
    dictGetOrDefault('ext-dict-test', 'c1', number + 1, toUInt32(number * 10)) AS val,
    toTypeName(val) AS type
FROM system.numbers
LIMIT 3
┌─val─┬─type───┐
│   1 │ UInt32 │
│   2 │ UInt32 │
│  20 │ UInt32 │
└─────┴────────┘

Ayrıca Bakınız

dictHas

Bir anahtar sözlükte mevcut olup olmadığını denetler.

dictHas('dict_name', id_expr)

Parametre

Döndürülen değer

  • 0, anahtar yoksa.
  • 1, bir anahtar varsa.

Tür: UInt8.

dictGetHierarchy

Bir anahtarın tüm ebeveynlerini içeren bir dizi oluşturur. hiyerarş dictionaryik sözlük.

Sözdizimi

dictGetHierarchy('dict_name', key)

Parametre

Döndürülen değer

  • Anahtar için ebeveynler.

Tür: Dizi (Uİnt64).

dictİsİn

Sözlükteki tüm hiyerarşik zincir boyunca bir anahtarın atasını kontrol eder.

dictIsIn('dict_name', child_id_expr, ancestor_id_expr)

Parametre

  • dict_name — Name of the dictionary. String lit literal.
  • child_id_expr — Key to be checked. İfade dönen bir Uİnt64- tip değeri.
  • ancestor_id_expr — Alleged ancestor of the child_id_expr anahtar. İfade dönen bir Uİnt64- tip değeri.

Döndürülen değer

  • 0, eğer child_id_expr bir çocuk değil mi ancestor_id_expr.
  • 1, Eğer child_id_expr bir çocuk ancestor_id_expr veya eğer child_id_expr is an ancestor_id_expr.

Tür: UInt8.

Diğer Fonksiyonlar

ClickHouse sözlük yapılandırma ne olursa olsun belirli bir veri türü için sözlük öznitelik değerlerini dönüştürmek özel işlevleri destekler.

İşlevler:

  • dictGetInt8, dictGetInt16, dictGetInt32, dictGetInt64
  • dictGetUInt8, dictGetUInt16, dictGetUInt32, dictGetUInt64
  • dictGetFloat32, dictGetFloat64
  • dictGetDate
  • dictGetDateTime
  • dictGetUUID
  • dictGetString

Tüm bu işlevler OrDefault değişiklik. Mesela, dictGetDateOrDefault.

Sözdizimi:

dictGet[Type]('dict_name', 'attr_name', id_expr)
dictGet[Type]OrDefault('dict_name', 'attr_name', id_expr, default_value_expr)

Parametre

  • dict_name — Name of the dictionary. String lit literal.
  • attr_name — Name of the column of the dictionary. String lit literal.
  • id_expr — Key value. İfade dönen bir Uİnt64- tip değeri.
  • default_value_expr — Value which is returned if the dictionary doesn't contain a row with the id_expr anahtar. İfade veri türü için yapılandırılmış bir değer döndürme attr_name öznitelik.

Döndürülen değer

  • ClickHouse özniteliği başarıyla ayrıştırırsa öznitelik veri türü, fonksiyonlar karşılık gelen sözlük özniteliğinin değerini döndürür id_expr.

  • İsten nomiyorsa id_expr söz thelükte o zaman:

    - `dictGet[Type]` returns the content of the `<null_value>` element specified for the attribute in the dictionary configuration.
    - `dictGet[Type]OrDefault` returns the value passed as the `default_value_expr` parameter.
    

Clickhouse, özniteliğin değerini ayrıştıramazsa veya değer öznitelik veri türüyle eşleşmiyorsa bir özel durum atar.

Orijinal makale