ClickHouse/docs/fa/sql-reference/functions/ext-dict-functions.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

8.5 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 58 کار با واژهنامهها خارجی

توابع برای کار با لغت نامه های خارجی

برای اطلاعات در مورد اتصال و پیکربندی لغت نامه های خارجی, دیدن واژهنامهها خارجی.

دیکته کردن

بازیابی یک مقدار از یک فرهنگ لغت خارجی.

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

پارامترها

  • dict_name — Name of the dictionary. رشته تحت اللفظی.
  • attr_name — Name of the column of the dictionary. رشته تحت اللفظی.
  • id_expr — Key value. عبارت بازگشت یک UInt64 یا تاپل- نوع ارزش بسته به پیکربندی فرهنگ لغت .
  • default_value_expr — Value returned if the dictionary doesnt contain a row with the id_expr کلید عبارت بازگشت ارزش در نوع داده پیکربندی شده برای attr_name صفت کردن.

مقدار بازگشتی

  • اگر تاتر تجزیه ویژگی موفقیت در نوع داده خصیصه, توابع بازگشت ارزش ویژگی فرهنگ لغت که مربوط به id_expr.

  • اگر هیچ کلید وجود دارد, مربوط به id_expr, در فرهنگ لغت, سپس:

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

کلیک هاوس می اندازد یک استثنا اگر می تواند ارزش ویژگی تجزیه و یا ارزش می کند نوع داده ویژگی مطابقت ندارد.

مثال

ایجاد یک فایل متنی ext-dict-text.csv حاوی موارد زیر است:

1,1
2,2

ستون اول است id ستون دوم c1.

پیکربندی واژهنامه خارجی:

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

انجام پرس و جو:

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 │
└─────┴────────┘

همچنین نگاه کنید

دیکتس

بررسی اینکه یک کلید در حال حاضر در یک فرهنگ لغت است.

dictHas('dict_name', id_expr)

پارامترها

مقدار بازگشتی

  • 0, اگر هیچ کلید وجود دارد.
  • 1, اگر یک کلید وجود دارد.

نوع: UInt8.

حکومت دیکتاتوری

یک مجموعه ای ایجاد می کند که شامل همه والدین یک کلید در فرهنگ لغت سلسله مراتبی.

نحو

dictGetHierarchy('dict_name', key)

پارامترها

مقدار بازگشتی

  • پدر و مادر برای کلید.

نوع: Array(UInt64).

دیکتاتوری

جد یک کلید را از طریق کل زنجیره سلسله مراتبی در فرهنگ لغت بررسی می کند.

dictIsIn('dict_name', child_id_expr, ancestor_id_expr)

پارامترها

مقدار بازگشتی

  • 0 اگر child_id_expr یک کودک نیست ancestor_id_expr.
  • 1 اگر child_id_expr یک کودک است ancestor_id_expr یا اگر child_id_expr یک ancestor_id_expr.

نوع: UInt8.

توابع دیگر

تاتر پشتیبانی از توابع تخصصی است که تبدیل ارزش فرهنگ لغت ویژگی به یک نوع داده خاص بدون در نظر گرفتن پیکربندی فرهنگ لغت.

توابع:

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

همه این توابع OrDefault اصلاح. به عنوان مثال, dictGetDateOrDefault.

نحو:

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

پارامترها

  • dict_name — Name of the dictionary. رشته تحت اللفظی.
  • attr_name — Name of the column of the dictionary. رشته تحت اللفظی.
  • id_expr — Key value. عبارت بازگشت یک UInt64- نوع ارزش.
  • default_value_expr — Value which is returned if the dictionary doesnt contain a row with the id_expr کلید عبارت بازگشت یک مقدار در نوع داده پیکربندی شده برای attr_name صفت کردن.

مقدار بازگشتی

  • اگر تاتر تجزیه ویژگی موفقیت در نوع داده خصیصه, توابع بازگشت ارزش ویژگی فرهنگ لغت که مربوط به id_expr.

  • در صورتی که هیچ درخواست وجود دارد id_expr در فرهنگ لغت و سپس:

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

کلیک هاوس می اندازد یک استثنا اگر می تواند ارزش ویژگی تجزیه و یا ارزش می کند نوع داده ویژگی مطابقت ندارد.

مقاله اصلی