딕셔너리 속성
ClickHouse Cloud에서 딕셔너리를 사용하는 경우, 딕셔너리를 생성할 때 DDL 쿼리 옵션을 사용하고 default USER로 딕셔너리를 생성하십시오.
또한 Cloud Compatibility guide에서 지원되는 딕셔너리 소스 목록을 확인하십시오.
structure 절은 쿼리에서 사용할 수 있는 딕셔너리 키와 필드를 정의합니다.
XML 설명:
속성은 다음 요소로 정의됩니다:
<id>— 키 컬럼<attribute>— 데이터 컬럼: 여러 개의 속성을 가질 수 있습니다.
DDL 쿼리:
속성은 쿼리 본문에서 정의합니다:
PRIMARY KEY— 키 컬럼AttrName AttrType— 데이터 컬럼. 여러 개의 속성을 정의할 수 있습니다.
키
ClickHouse는 다음과 같은 종류의 키를 지원합니다:
- 숫자 키(Numeric key).
UInt64.<id>태그에서 정의하거나PRIMARY KEY키워드를 사용하여 정의합니다. - 복합 키(Composite key). 서로 다른 타입 값들로 구성된 Set입니다.
<key>태그에서 정의하거나PRIMARY KEY키워드를 사용하여 정의합니다.
XML 구조에는 <id> 또는 <key> 중 하나만 포함될 수 있습니다. DDL 쿼리에는 하나의 PRIMARY KEY만 포함되어야 합니다.
키를 속성(attribute)으로 정의해서는 안 됩니다.
숫자 키
타입: UInt64.
구성 예시:
구성 필드:
name– 키 컬럼의 이름입니다.
DDL 쿼리의 경우:
PRIMARY KEY– 키가 저장된 컬럼의 이름입니다.
복합 키(Composite Key)
키는 임의 타입의 필드로 구성된 tuple일 수 있습니다. 이 경우 layout은 반드시 complex_key_hashed 또는 complex_key_cache여야 합니다.
복합 키는 하나의 요소만으로도 구성될 수 있습니다. 예를 들어 문자열을 키로 사용할 수 있습니다.
키 구조는 <key> 요소에 설정합니다. 키 필드는 딕셔너리 속성(attributes)과 동일한 형식으로 지정합니다. 예:
또는
dictGet* FUNCTION에 대한 쿼리에서는 키로서 튜플이 전달됩니다. 예를 들어 dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))와 같습니다.
속성
구성 예:
또는
구성 항목:
| Tag | Description | Required |
|---|---|---|
name | 컬럼 이름입니다. | 예 |
type | ClickHouse 데이터 타입: UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64, UUID, Decimal32, Decimal64, Decimal128, Decimal256,Date, Date32, DateTime, DateTime64, String, Array. ClickHouse는 딕셔너리에서 값을 가져와 지정된 데이터 타입으로 형변환하려고 시도합니다. 예를 들어 MySQL의 경우, MySQL 소스 테이블에서 필드는 TEXT, VARCHAR, BLOB일 수 있지만, ClickHouse에서는 String으로 저장될 수 있습니다.널 허용(Nullable)은 현재 Flat, Hashed, ComplexKeyHashed, Direct, ComplexKeyDirect, RangeHashed, Polygon, Cache, ComplexKeyCache, SSDCache, SSDComplexKeyCache 딕셔너리에서 지원됩니다. IPTrie 딕셔너리에서는 Nullable 타입이 지원되지 않습니다. | 예 |
null_value | 존재하지 않는 요소에 대한 기본값입니다. 예제에서는 빈 문자열입니다. NULL 값은 Nullable 타입(위의 타입 설명 행 참조)에 대해서만 사용할 수 있습니다. | 예 |
expression | ClickHouse가 값에 대해 실행하는 식(Expression)입니다. 이 식은 원격 SQL 데이터베이스의 컬럼 이름일 수 있습니다. 이를 사용하여 원격 컬럼의 별칭을 만들 수 있습니다. 기본값: 식이 없습니다. | 아니요 |
hierarchical | true이면, 현재 키의 부모 키 값을 포함하는 속성입니다. 계층형 딕셔너리(Hierarchical Dictionaries)를 참고하십시오.기본값: false입니다. | 아니요 |
injective | id -> attribute 대응이 단사(injective)인지 여부를 나타내는 플래그입니다.true이면, ClickHouse는 단사인 딕셔너리에 대한 요청을 GROUP BY 절 뒤에 자동으로 추가할 수 있습니다. 일반적으로 이러한 요청의 양을 크게 줄여 줍니다.기본값: false입니다. | 아니요 |
is_object_id | 쿼리가 MongoDB 문서에 대해 ObjectID로 실행되는지 여부를 나타내는 플래그입니다.기본값: false입니다. | 아니요 |