remote를 사용하면 분산 테이블을 생성하지 않고도 필요할 때 바로 원격 서버에 액세스할 수 있습니다. 테이블 함수 remoteSecure는 remote와 동일하지만 보안 연결을 사용합니다.
두 함수 모두 SELECT 및 INSERT 쿼리에서 사용할 수 있습니다.
구문
매개변수
| 인수 | 설명 |
|---|---|
addresses_expr | 원격 서버 주소 또는 여러 원격 서버 주소를 생성하는 표현식입니다. 형식: host 또는 host:port.host는 서버 이름이나 IPv4 또는 IPv6 주소로 지정할 수 있습니다. IPv6 주소는 []로 지정해야 합니다.port는 원격 서버의 TCP 포트입니다. 포트를 생략하면 테이블 함수 remote에는 서버 구성 파일의 tcp_port(기본값 9000)를 사용하고, 테이블 함수 remoteSecure에는 tcp_port_secure(기본값 9440)를 사용합니다.IPv6 주소에는 포트 지정이 필요합니다. addresses_expr 매개변수만 지정하면 db와 table에는 기본적으로 system.one이 사용됩니다.유형: String. |
db | DB 이름입니다. 유형: String. |
table | 테이블 이름입니다. 유형: String. |
user | 사용자 이름입니다. 지정하지 않으면 default가 사용됩니다. 유형: String. |
password | 사용자 비밀번호입니다. 지정하지 않으면 빈 비밀번호가 사용됩니다. 유형: String. |
sharding_key | 데이터를 노드 전체에 분산하기 위한 세그먼트 분할 키입니다. 예시: insert into remote('127.0.0.1:9000,127.0.0.2', db, table, 'default', rand()). 유형: UInt32. |
반환 값
사용법
remote 및 remoteSecure는 각 요청마다 연결을 다시 설정하므로, 대신 분산 테이블을 사용하는 것이 좋습니다. 또한 호스트명이 설정되어 있으면 이름 확인(name resolution)이 수행되며, 여러 레플리카로 작업할 때 발생하는 오류는 집계되지 않습니다. 많은 수의 쿼리를 처리할 때는 항상 분산 테이블을 미리 생성하고, remote 테이블 함수는 사용하지 마십시오.
remote 테이블 함수는 다음과 같은 경우에 유용할 수 있습니다.
- 한 시스템에서 다른 시스템으로 데이터를 한 번만 마이그레이션하는 경우
- 데이터 비교, 디버깅, 테스트를 위해 특정 서버에 액세스하는 경우, 즉 임시 연결
- 연구 목적으로 여러 ClickHouse 클러스터 간에 수행하는 쿼리
- 수동으로 수행하는 드문 분산 요청
- 서버 집합을 매번 다시 정의하는 분산 요청
주소
예시
원격 서버에서 데이터 조회:
원격 서버의 테이블에 데이터 삽입:
한 시스템에서 다른 시스템으로 테이블 이전:
imdb이고 테이블은 actors입니다.
원본 ClickHouse 시스템(현재 데이터가 저장된 시스템)에서
-
원본 데이터베이스와 테이블 이름(
imdb.actors)을 확인합니다. - 원본 시스템에서 CREATE TABLE 문을 가져옵니다.
대상 ClickHouse 시스템에서
-
대상 DB를 생성합니다:
-
소스의 CREATE TABLE 문을 사용해 대상 테이블을 생성합니다:
소스 배포로 돌아가기
글로빙
{ } 안의 패턴은 세그먼트 집합을 생성하고 레플리카를 지정하는 데 사용됩니다. { } 쌍이 여러 개 있으면 해당 집합들의 데카르트 곱이 생성됩니다.
다음 패턴을 지원합니다.
{a,b,c}- 대체 문자열a,b,c중 하나를 나타냅니다. 이 패턴은 첫 번째 세그먼트 주소에서는a로 대체되고, 두 번째 세그먼트 주소에서는b로 대체되는 식으로 적용됩니다. 예를 들어example0{1,2}-1은 주소example01-1과example02-1을 생성합니다.{N..M}- 숫자 범위입니다. 이 패턴은N부터M까지(양 끝 포함) 인덱스가 증가하는 세그먼트 주소를 생성합니다. 예를 들어example0{1..2}-1은example01-1과example02-1을 생성합니다.{0n..0m}- 앞에 0이 붙는 숫자 범위입니다. 이 패턴은 인덱스의 선행 0을 유지합니다. 예를 들어example{01..03}-1은example01-1,example02-1,example03-1을 생성합니다.{a|b}-|로 구분된 임의 개수의 변형을 나타냅니다. 이 패턴은 레플리카를 지정합니다. 예를 들어example01-{1|2}는 레플리카example01-1과example01-2를 생성합니다.
remote의 경우 레플리카는 현재 load_balancing 설정에 지정된 순서대로 순회합니다.
생성되는 주소 수는 table_function_remote_max_addresses 설정으로 제한됩니다.