> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# String 키와 값으로 ClickHouse 딕셔너리 만드는 방법

> MergeTree 테이블을 소스로 사용해 String 키와 값으로 ClickHouse 딕셔너리를 생성하는 방법을 설정 및 사용 예시와 함께 알아봅니다.

<div id="question">
  ## 질문
</div>

String 키와 String 값을 사용하는 MergeTree 테이블을 소스로 ClickHouse 딕셔너리를 생성하는 방법

<div id="answer">
  ## 답변
</div>

* 딕셔너리용 소스 테이블 생성

```
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](https://clickhouse.com/docs/sql-reference/functions/ext-dict-functions)
