Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

كيفية إنشاء قاموس في ClickHouse بمفاتيح وقيم String

السؤال

كيفية إنشاء قاموس في ClickHouse باستخدام مفاتيح من النوع String وقيم من النوع String من جدول MergeTree كمصدر

الإجابة

  • أنشئ جدول المصدر للقاموس
CREATE TABLE db1.table1_dict_source
(
  id UInt32,
  email String,
  name String
)
ENGINE = MergeTree()
ORDER BY id;
  • إدراج الصفوف
INSERT INTO db1.table1_dict_source
(id, email, name)
VALUES
(1, 'me@domain.com', 'me'),
(2, 'you@domain.com', 'you');
  • إنشاء قاموس يكون فيه كلٌّ من المفتاح والقيمة من النوع String
CREATE DICTIONARY db1.table1_dict
(
    email String,
    name String
)
PRIMARY KEY email
SOURCE(
CLICKHOUSE(
TABLE 'table1_dict_source'
USER 'default'
PASSWORD 'ClickHouse123!'))
LAYOUT(COMPLEX_KEY_HASHED())
LIFETIME(MIN 0 MAX 1000);
  • اختبر القاموس
clickhouse-cloud :) SELECT * from db1.table1_dict;

SELECT *
FROM db1.table1_dict

Query id: 098396ce-11dd-4c71-a0e1-40723dd67ddc

┌─email──────────┬─name─┐
│ me@domain.com  │ me   │
│ you@domain.com │ you  │
└────────────────┴──────┘

2 rows in set. Elapsed: 0.001 sec. 

يمكنك أيضًا استخدام الدالة dictGet لاسترداد قيم منه، مثل:

SELECT dictGet('db1.table1_dict', 'name', 'me@domain.com');

الاستجابة:

┌─dictGet('db1.table1_dict', 'name', 'me@domain.com')─┐
│ me                                                  │
└─────────────────────────────────────────────────────┘

لمزيد من التفاصيل - https://clickhouse.com/docs/sql-reference/functions/ext-dict-functions

Navigation