메인 콘텐츠로 건너뛰기
이름이 지정된 컬렉션은 외부 소스와의 통합을 구성할 때 사용할 key-value 쌍 모음을 저장하는 방법을 제공합니다. 이름이 지정된 컬렉션은 딕셔너리, 테이블, 테이블 함수, 객체 스토리지와 함께 사용할 수 있습니다. 이름이 지정된 컬렉션은 DDL 또는 설정 파일에서 구성할 수 있으며, ClickHouse가 시작될 때 적용됩니다. 이를 통해 객체를 더 쉽게 생성할 수 있고, 관리자 권한이 없는 사용자에게 자격 증명을 숨길 수 있습니다. 이름이 지정된 컬렉션의 키는 해당 함수, 테이블 엔진, 데이터베이스 등의 매개변수 이름과 일치해야 합니다. 아래 예시에서는 각 유형별 매개변수 목록으로 연결되는 링크를 제공합니다. 이름이 지정된 컬렉션에 설정된 매개변수는 SQL에서 재정의할 수 있으며, 이는 아래 예시에서 확인할 수 있습니다. 이 기능은 [NOT] OVERRIDABLE 키워드와 XML 속성 및/또는 구성 옵션 allow_named_collection_override_by_default를 사용해 제한할 수 있습니다.
재정의가 허용되면 관리자 권한이 없는 사용자도 숨기려는 자격 증명을 알아낼 수 있습니다. 이러한 목적으로 이름이 지정된 컬렉션을 사용한다면, allow_named_collection_override_by_default를 비활성화해야 합니다 (기본적으로 활성화되어 있습니다).

system 데이터베이스에 이름이 지정된 컬렉션 저장하기

DDL 예시

위 예시에서는 다음과 같습니다:
  • key_1은 항상 재정의할 수 있습니다.
  • key_2는 절대 재정의할 수 없습니다.
  • urlallow_named_collection_override_by_default 값에 따라 재정의할 수도 있고 할 수 없을 수도 있습니다.

DDL로 이름이 지정된 컬렉션을 생성하기 위한 권한

DDL로 이름이 지정된 컬렉션을 관리하려면 사용자에게 named_collection_control 권한이 있어야 합니다. 이 권한은 /etc/clickhouse-server/users.d/에 파일을 추가하여 부여할 수 있습니다. 다음 예시에서는 사용자 defaultaccess_managementnamed_collection_control 권한을 모두 부여합니다:
/etc/clickhouse-server/users.d/user_default.xml
위 예시에서 password_sha256_hex 값은 비밀번호의 SHA256 해시를 16진수로 표현한 값입니다. 사용자 default에 대한 이 구성에는 replace=true 속성이 있습니다. 기본 구성에 일반 텍스트 password가 설정되어 있으므로, 하나의 사용자에 대해 일반 텍스트 비밀번호와 sha256 hex 비밀번호를 동시에 설정할 수는 없습니다.

이름이 지정된 컬렉션용 저장소

이름이 지정된 컬렉션은 로컬 디스크 또는 ZooKeeper/Keeper에 저장할 수 있습니다. 기본적으로는 로컬 저장소가 사용됩니다. 또한 디스크 암호화에서 사용하는 것과 동일한 알고리즘으로 암호화해 저장할 수도 있으며, 기본값으로는 aes_128_ctr이 사용됩니다. 이름이 지정된 컬렉션 저장소를 구성하려면 type을 지정해야 합니다. 이 값으로는 local 또는 keeper/zookeeper를 사용할 수 있습니다. 암호화된 저장소의 경우 local_encrypted 또는 keeper_encrypted/zookeeper_encrypted를 사용할 수 있습니다. ZooKeeper/Keeper를 사용하려면 설정 파일의 named_collections_storage 섹션에 path(이름이 지정된 컬렉션이 저장될 ZooKeeper/Keeper 내 경로)도 설정해야 합니다. 다음 예시에서는 암호화와 ZooKeeper/Keeper를 사용합니다:
선택 사항인 구성 매개변수 update_timeout_ms의 기본값은 5000입니다.

설정 파일에 이름이 지정된 컬렉션 저장

XML 예시

/etc/clickhouse-server/config.d/named_collections.xml
위 예시에서:
  • key_1은 항상 재정의할 수 있습니다.
  • key_2는 절대 재정의할 수 없습니다.
  • urlallow_named_collection_override_by_default 값에 따라 재정의할 수도 있고 재정의할 수 없을 수도 있습니다.

이름이 지정된 컬렉션 수정하기

DDL 쿼리로 생성한 이름이 지정된 컬렉션은 DDL을 사용해 변경하거나 삭제할 수 있습니다. XML 파일로 생성한 이름이 지정된 컬렉션은 해당 XML을 수정하거나 삭제하여 관리할 수 있습니다.

DDL 이름이 지정된 컬렉션 수정

컬렉션 collection2key1key3 키를 변경하거나 추가합니다 (이 경우 해당 키의 overridable 플래그 값은 변경되지 않습니다):
key1 키를 변경하거나 추가하고, 항상 재정의할 수 있도록 설정합니다:
collection2에서 key2 키를 제거합니다:
collection2 컬렉션에서 키 key1을 변경하거나 추가하고, 키 key3를 삭제합니다:
overridable 플래그의 기본 설정을 적용하려면 해당 키를 제거한 후 다시 추가해야 합니다.

DDL 이름이 지정된 컬렉션 collection2를 삭제합니다:

S3 액세스용 이름이 지정된 컬렉션

매개변수 설명은 s3 테이블 함수를 참고하십시오.

DDL 예시

XML 예시

s3() 함수 및 S3 Table용 이름이 지정된 컬렉션 예시

아래 두 예시에서는 동일한 이름이 지정된 컬렉션 s3_mydata를 사용합니다:

s3() 함수

위 예시의 s3() 함수에서 첫 번째 인수는 컬렉션 이름인 s3_mydata입니다. 이름이 지정된 컬렉션을 사용하지 않으면 액세스 키 ID, secret, 포맷, URL을 s3() 함수를 호출할 때마다 모두 전달해야 합니다.

S3 테이블

MySQL 데이터베이스 액세스를 위한 이름이 지정된 컬렉션

매개변수에 대한 설명은 mysql을 참조하십시오.

DDL 예시

XML 예시

mysql() 함수, MySQL 테이블, MySQL 데이터베이스 및 딕셔너리의 이름이 지정된 컬렉션 예시

다음 4개의 예시에서는 동일한 이름이 지정된 컬렉션 mymysql을 사용합니다:

mysql() 함수

이름이 지정된 컬렉션에는 table 매개변수가 지정되어 있지 않으므로, 함수 호출에서 table = 'test'로 지정합니다.

MySQL 테이블

DDL은 connection_pool_size에 대한 이름이 지정된 컬렉션 설정을 덮어씁니다.

MySQL 데이터베이스

MySQL 딕셔너리

PostgreSQL 데이터베이스에 액세스하기 위한 이름이 지정된 컬렉션

매개변수에 대한 설명은 postgresql을 참조하십시오. 또한 다음과 같은 별칭이 있습니다:
  • usernameuser의 별칭입니다
  • dbdatabase의 별칭입니다.
컬렉션에서는 host:port 대신 addresses_expr 매개변수를 사용합니다. host, hostname, port와 같은 다른 선택적 매개변수도 있으므로 이 매개변수는 선택 사항입니다. 다음 의사 코드는 우선순위를 설명합니다:
생성 예시:
구성 예시:

postgresql 함수에서 이름이 지정된 컬렉션을 사용하는 예시

PostgreSQL 엔진을 사용하는 데이터베이스에서 이름이 지정된 컬렉션을 사용하는 예시

PostgreSQL은 테이블을 생성할 때 명명된 컬렉션의 데이터를 복사합니다. 이후 컬렉션이 변경되어도 기존 테이블에는 영향을 미치지 않습니다.

PostgreSQL 엔진을 사용하는 데이터베이스에서 이름이 지정된 컬렉션을 사용하는 예시

POSTGRESQL 소스를 사용하는 딕셔너리에서 이름이 지정된 컬렉션을 사용하는 예시

원격 ClickHouse 데이터베이스에 접속하기 위한 이름이 지정된 컬렉션

매개변수 설명은 remote에서 확인하십시오. 구성 예시는 다음과 같습니다:
remoteSecure를 사용하므로 연결에는 secure가 필요하지 않지만, 딕셔너리에는 사용할 수 있습니다.

remote/remoteSecure 함수에서 이름이 지정된 컬렉션을 사용하는 예시

소스로 ClickHouse를 사용하는 딕셔너리에서 이름이 지정된 컬렉션을 사용하는 예시

Kafka에 액세스하기 위한 이름이 지정된 컬렉션

매개변수 설명은 Kafka를 참조하십시오.

DDL 예시

XML 예시

Kafka 테이블에서 이름이 지정된 컬렉션 사용 예시

다음 두 예시에서는 동일한 이름이 지정된 컬렉션 my_kafka_cluster를 사용합니다.

백업용 이름이 지정된 컬렉션

매개변수 설명은 Backup 및 복원을 참조하십시오.

DDL 예시

XML 예시

MongoDB 테이블 및 딕셔너리 액세스를 위한 이름이 지정된 컬렉션

매개변수에 대한 설명은 mongodb를 참조하십시오.

DDL 예시

XML 예시

MongoDB 테이블

DDL은 옵션에 대한 이름이 지정된 컬렉션 설정을 덮어씁니다.

MongoDB 딕셔너리

이름이 지정된 컬렉션에서는 컬렉션 이름으로 my_collection을 지정합니다. 함수 호출에서는 다른 컬렉션을 선택하기 위해 collection = 'my_dict'로 이를 덮어씁니다.
마지막 수정일 2026년 6월 12일