Multi-DB Setting
Cals Platz는 1개의 Application에서 여러 개의 Tenant를 구성하는 구조로 Tenant 기준으로 Service하는 제품이다.
Tenant의 Application 구동 및 화면 로직은 Studio에서 설정하는 Meta 데이터를 기반으로 동작한다. 이 때 Studio에서 설정하는 Meta 데이터 및 Application의 데이터는 보유 방식에 따라 3가지 유형으로 구분된다..
A유형: Studio 에서 등록하는 Configuration 관련 데이터로 Console DB와 Application DB에 동일한 데이터 동시 보유되는 데이터로 실제 Application 기능을 동작하는 기준은 Console DB에 등록된 시스템 Meta 데이터 기준으로 동작하지만, 정보성으로 Application DB에 적재하는 데이터이다.
- A유형 테이블 종류:
qt_account
,qt_comm_code
,qt_sym_str
등 - Application DB 데이터 생성시점: 테넌트 개발자가 Studio환경에서 생성하는 데이터로 App 환경은 Deploy, Sandbox 환경은 Provisioning 후 Deploy 시점, 운영환경은 Provisioning 후 Publish 시점
- A유형 테이블 종류:
B유형: Application 시스템 기능에 의해 생성되는 시스템 데이터로 Application DB에만 존재하는 시스템 데이터
- B유형 테이블 종류:
qt_user
,qt_file_history
,qt_pwp
,qt_pwp_item
등 - Application DB 데이터 생성시점: Web 또는 Mobile 시스템 환경에서 관라지 또는 일반사용자가 환경설정을 하거나 기능을 사용할 때 생성되는 데이터
- qt_key_master: key management에서 application으로 관리하는 유형의 경우로 해당 테이블의 저장 및 관리 장소는 secure schema이다. 따라서 DB 모델 유형에 지정되는 Target DB 인스턴스에 저장은 되나 Schema는 고정된다.
- B유형 테이블 종류:
C유형: Studio에서 설정한 Meta데이터로 저장되는 데이터로 Console DB에만 저장되는 데이터
- C유형 테이블 종류:
qt_menu
,qt_screen
,qt_action
등
- C유형 테이블 종류:
이 중 테넌트 DB Model은 A유형, B유형의 데이터 중 Application DB에 저장되는 데이터의 저장 방식을 의미한다.
Tenant의 Infra 구성에서 DB의 구성은 3가지 Model을 제공하고 있다.
Model | 특징 | 설명 |
---|---|---|
Silo | Multi DB | Tenant별 별도의 Database를 사용하는 방식 |
Bridge | One DB Multi Schema | Tenant 별로 Schema를 지정하여 사용하는 방식으로 동일한 Database를 사용함. |
Pool | One DB (Default) | Tenant의 데이터를 단일 DB내의 Table에서 Tenant Id 기준으로 데이터를 분리하여 제공 |
각 모델 별로 초기 설정의 방식과 개발 도중 Application의 DB 설정을 변경하는 방식을 안내한다.