format_schema
format_schema_message_name
format_schema에 정의된 스키마에서 필요한 메시지 이름을 지정합니다.
기존 format_schema 포맷(file_name:message_name)과의 호환성을 유지하기 위해 다음과 같이 동작합니다.
format_schema_message_name을 지정하지 않으면, 메시지 이름은 기존format_schema값의message_name부분에서 추론됩니다.- 기존 포맷을 사용하는 상태에서
format_schema_message_name을 지정하면 오류가 발생합니다.
format_schema_source
format_schema의 소스를 정의합니다.
가능한 값:
- ‘file’ (기본값):
format_schema는format_schemas디렉터리에 있는 스키마 파일의 이름입니다. - ‘string’:
format_schema는 스키마의 리터럴 내용입니다. - ‘query’:
format_schema는 스키마를 가져오기 위한 쿼리입니다.format_schema_source가 ‘query’로 설정되면 다음 조건이 적용됩니다: - 쿼리는 정확히 하나의 값을 반환해야 합니다. 즉, 하나의 String 컬럼만 있는 단일 행이어야 합니다.
- 쿼리 결과는 스키마 내용으로 처리됩니다.
- 이 결과는
format_schemas디렉터리에 로컬로 캐시됩니다. - 다음 명령으로 로컬 캐시를 비울 수 있습니다:
SYSTEM DROP FORMAT SCHEMA CACHE FOR Files. - 한 번 캐시되면 캐시가 명시적으로 삭제될 때까지 동일한 쿼리는 스키마를 다시 가져오기 위해 실행되지 않습니다.
- 로컬 캐시 파일 외에도 Protobuf Message는 메모리에 캐시됩니다. 로컬 캐시 파일을 삭제한 후에도 스키마를 완전히 갱신하려면
SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]를 사용해 인메모리 캐시를 비워야 합니다. SYSTEM DROP FORMAT SCHEMA CACHE쿼리를 실행하면 캐시 파일과 Protobuf Message 스키마의 캐시를 모두 한 번에 비울 수 있습니다.