[NOT] OVERRIDABLE 키워드와 XML 속성
및/또는 구성 옵션 allow_named_collection_override_by_default를 사용해 제한할 수 있습니다.
system 데이터베이스에 이름이 지정된 컬렉션 저장하기
DDL 예시
key_1은 항상 재정의할 수 있습니다.key_2는 절대 재정의할 수 없습니다.url은allow_named_collection_override_by_default값에 따라 재정의할 수도 있고 할 수 없을 수도 있습니다.
DDL로 이름이 지정된 컬렉션을 생성하기 위한 권한
named_collection_control 권한이 있어야 합니다. 이 권한은 /etc/clickhouse-server/users.d/에 파일을 추가하여 부여할 수 있습니다. 다음 예시에서는 사용자 default에 access_management와 named_collection_control 권한을 모두 부여합니다:
/etc/clickhouse-server/users.d/user_default.xml
이름이 지정된 컬렉션용 저장소
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는 절대 재정의할 수 없습니다.url은allow_named_collection_override_by_default값에 따라 재정의할 수도 있고 재정의할 수 없을 수도 있습니다.
이름이 지정된 컬렉션 수정하기
DDL 이름이 지정된 컬렉션 수정
collection2의 key1 및 key3 키를 변경하거나 추가합니다
(이 경우 해당 키의 overridable 플래그 값은 변경되지 않습니다):
key1 키를 변경하거나 추가하고, 항상 재정의할 수 있도록 설정합니다:
collection2에서 key2 키를 제거합니다:
collection2 컬렉션에서 키 key1을 변경하거나 추가하고, 키 key3를 삭제합니다:
overridable 플래그의 기본 설정을 적용하려면
해당 키를 제거한 후 다시 추가해야 합니다.
DDL 이름이 지정된 컬렉션 collection2를 삭제합니다:
S3 액세스용 이름이 지정된 컬렉션
DDL 예시
XML 예시
s3() 함수 및 S3 Table용 이름이 지정된 컬렉션 예시
s3_mydata를 사용합니다:
s3() 함수
S3 테이블
MySQL 데이터베이스 액세스를 위한 이름이 지정된 컬렉션
DDL 예시
XML 예시
mysql() 함수, MySQL 테이블, MySQL 데이터베이스 및 딕셔너리의 이름이 지정된 컬렉션 예시
mymysql을 사용합니다:
mysql() 함수
이름이 지정된 컬렉션에는
table 매개변수가 지정되어 있지 않으므로, 함수 호출에서 table = 'test'로 지정합니다.MySQL 테이블
DDL은 connection_pool_size에 대한 이름이 지정된 컬렉션 설정을 덮어씁니다.
MySQL 데이터베이스
MySQL 딕셔너리
PostgreSQL 데이터베이스에 액세스하기 위한 이름이 지정된 컬렉션
username은user의 별칭입니다db는database의 별칭입니다.
host:port 대신 addresses_expr 매개변수를 사용합니다. host, hostname, port와 같은 다른 선택적 매개변수도 있으므로 이 매개변수는 선택 사항입니다. 다음 의사 코드는 우선순위를 설명합니다:
postgresql 함수에서 이름이 지정된 컬렉션을 사용하는 예시
PostgreSQL 엔진을 사용하는 데이터베이스에서 이름이 지정된 컬렉션을 사용하는 예시
PostgreSQL은 테이블을 생성할 때 명명된 컬렉션의 데이터를 복사합니다. 이후 컬렉션이 변경되어도 기존 테이블에는 영향을 미치지 않습니다.
PostgreSQL 엔진을 사용하는 데이터베이스에서 이름이 지정된 컬렉션을 사용하는 예시
POSTGRESQL 소스를 사용하는 딕셔너리에서 이름이 지정된 컬렉션을 사용하는 예시
원격 ClickHouse 데이터베이스에 접속하기 위한 이름이 지정된 컬렉션
remoteSecure를 사용하므로 연결에는 secure가 필요하지 않지만, 딕셔너리에는 사용할 수 있습니다.
remote/remoteSecure 함수에서 이름이 지정된 컬렉션을 사용하는 예시
소스로 ClickHouse를 사용하는 딕셔너리에서 이름이 지정된 컬렉션을 사용하는 예시
Kafka에 액세스하기 위한 이름이 지정된 컬렉션
DDL 예시
XML 예시
Kafka 테이블에서 이름이 지정된 컬렉션 사용 예시
my_kafka_cluster를 사용합니다.
백업용 이름이 지정된 컬렉션
DDL 예시
XML 예시
MongoDB 테이블 및 딕셔너리 액세스를 위한 이름이 지정된 컬렉션
DDL 예시
XML 예시
MongoDB 테이블
DDL은 옵션에 대한 이름이 지정된 컬렉션 설정을 덮어씁니다.
MongoDB 딕셔너리
이름이 지정된 컬렉션에서는 컬렉션 이름으로
my_collection을 지정합니다. 함수 호출에서는 다른 컬렉션을 선택하기 위해 collection = 'my_dict'로 이를 덮어씁니다.