ClickHouse/docs/fa/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.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.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 44 کلید فرهنگ لغت و زمینه های

کلید فرهنگ لغت و زمینه های

این <structure> بند توصیف کلید فرهنگ لغت و زمینه های موجود برای نمایش داده شد.

توصیف:

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

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

        ...

    </structure>
</dictionary>

صفات در عناصر شرح داده شده است:

پرسوجو:

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

صفات در بدن پرس و جو توصیف:

کلید

تاتر از انواع زیر از کلید:

  • کلید عددی. UInt64. تعریف شده در <id> برچسب یا استفاده PRIMARY KEY کلمه کلیدی.
  • کلید کامپوزیت. مجموعه ای از مقادیر از انواع مختلف. تعریف شده در برچسب <key> یا PRIMARY KEY کلمه کلیدی.

یک ساختار میلی لیتر می تواند شامل موارد زیر باشد <id> یا <key>. دی ال پرس و جو باید شامل تک PRIMARY KEY.

!!! warning "اخطار" شما باید کلید به عنوان یک ویژگی توصیف نیست.

کلید عددی

نوع: UInt64.

مثال پیکربندی:

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

حوزههای پیکربندی:

  • name The name of the column with keys.

برای & پرسوجو:

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 نوع داده کلیک.
تاتر تلاش می کند به بازیگران ارزش از فرهنگ لغت به نوع داده مشخص شده است. مثلا, برای خروجی زیر, زمینه ممکن است TEXT, VARCHAR یا BLOB در جدول منبع خروجی زیر, اما می تواند به عنوان ارسال String در فاحشه خانه.
Nullable پشتیبانی نمی شود.
بله
null_value مقدار پیش فرض برای یک عنصر غیر موجود.
در مثال این یک رشته خالی است. شما نمی توانید استفاده کنید NULL در این زمینه.
بله
expression عبارت که فاحشه خانه اجرا در ارزش.
بیان می تواند یک نام ستون در پایگاه داده از راه دور گذاشتن. بدین ترتیب, شما می توانید برای ایجاد یک نام مستعار برای ستون از راه دور استفاده.

مقدار پیش فرض: بدون بیان.
نه
hierarchical اگر true, ویژگی شامل ارزش یک کلید پدر و مادر برای کلید فعلی. ببینید لغتنامهها سلسله مراتبی.

مقدار پیشفرض: false.
نه
injective پرچمی که نشان میدهد چه id -> attribute تصویر تزریق.
اگر true, کلیک خانه به طور خودکار می تواند پس از محل GROUP BY بند درخواست به لغت نامه با تزریق. معمولا به طور قابل توجهی میزان چنین درخواست را کاهش می دهد.

مقدار پیشفرض: false.
نه
is_object_id پرچمی که نشان میدهد پرسوجو برای سند مانگودیبی اجرا شده است ObjectID.

مقدار پیشفرض: false.
نه

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

مقاله اصلی