Inter-DB Join, Distributed query
셀렉트에서는 1개의 디비 연결마다 데이터베이스 이름을 지정하여 이용하도록 귄장하고 있습니다.
같은 서버, 여러개 디비 이용하기
여러개 디비(database name)을 동시에 이용하려면 리소스 설정시 database:
빈칸으로 추가후 아래와 같이 [데이터베이스명].[테이블명] 으로 쿼리하면 됩니다.
다른 서버, 여러개 디비 이용하기
셀렉트에서는 per-table replication을 비공개 베타 오픈예정입니다.
- 테이블단위로 복제를 지원합니다.
- One-way 단방향 복제를 지원합니다.
- JSON 으로 표현 가능한 데이터타입을 지원합니다.
- binlog 옵션을 꺼도 작동합니다.
- 변경분 체크가 가능한 쿼리가 필요하며 첫 동기화 이후부터는 DB 자원소모가 적습니다.
- 중간 저장을 하지 않습니다.
- 별도의 Kafka, ETL을 구축하지 않아도 됩니다.
Pros
- 분산 데이터 환경에서도 1개처럼 쉬운 쿼리
- 분석 상황에 맞는 인덱스 적용 가능
- 스토리지 I/O 한계와 네트워크 대역폭을 극복 가능
Cons
- 데이터 복제로 인해 스토리지 저장 비용이 발생
- 대상 테이블 스키마를 직접 관리
준비 사항
- 셀렉트 클라우드에서 리소스 추가
- 리소스에서 'Replication Table' 추가하기
- SELECT 쿼리작성
- Primary Key, Updated Field 지정 (high-water mark)
- INSERT 쿼리작성 (같은 리소스 또는 다른 리소스 가능)
실행 후 1만건 당 30초의 동기화 시간이 소요됩니다.
(2022.03) MySQL, pgSQL, SQL Server 테스트 중입니다.
팀 당 x1개 parallelism을 지원합니다. (100 records/sec)
중간 저장 옵션을 켜는 경우 Replay, 2PC, N:M 가능합니다.