tencent cloud

TDSQL for MySQL

MySQL를 완벽 호환하고, 스플릿 호라이즌(수평분할, 테이블 스플릿)을 지원하는 고성능의 데이터베이스.

소개

분산형 데이터베이스(TDSQL for MySQL, TDSQL)는 텐센트에서 구축한 분산형 데이터베이스입니다. 고가용성, 글로벌 배포 아키텍처, 분산형 횡적 확장, 고성능, 기업 수준급의 보안 등이 특징적입니다. 스마트 DBA, 자동화 운영, 모니터링 알람 등 성능을 제공하여 유저에게 완벽한 분산형의 데이터베이스 솔루션을 제공합니다. 현재 TDSQL는 500여개 정부와 기업, 금융 기구에 데이베이스 퍼블릭 및 프라이빗 클라우드 서비스를 제공하고 있으며 은행, 보험, 증권, 인터넷 금융, 요금, 제3자결제, 사물인터넷, 인터넷 플러스, 공무 등 영역의 클라이언트를 포함합니다. TDSQL는 고퀄리티의 제품과 서비스로 글로벌 및 중국 국내에서 다양한 인증을 받았고, 업계와 클라이언트의 호평을 받았습니다.

특징
오토 스플릿 호라이즌

테이블 생성 시에 shardkey를 설정하면 데이테베이스중 빅 테이블을 자동으로 스플릿 호라이즌(테이블 스플릿) 하며, 시스템은 Hash 방안을 기반으로 입력한 데이터를 균등하게 다양한 물리 샤딩에 배포 및 쿼리도 자동으로 통합하여 리턴합니다. 테이블 스플릿은 비즈니스 시스템에 그대로 노출하며, 비즈니스에서 확인한 내용은 풀 로직의 테이블로, 백엔드의 물리적 아키텍처를 감지할 필요가 없습니다.

MySQL 문구 완벽 호환

TDSQL는 자주 사용하는 MySQL 문구를 호환합니다. 여기에 MySQL 언어 구조, 캐릭터셋과 시간대, 데이터 유형, 상용 함수, 사전 처리 프로토콜, 순서 배열, 연합(JOIN), 인덱스, 파티션, 루틴, 제어 커맨드 등 상용 DDL, DML, DCL과 데이터베이스 액세스 API를 포함합니다.

업계 최고 수준의 분산형 아키텍처

분산형 아키텍처의 특수성을 감안하면 데이터베이스의 고급 기능과 성능은 동시에 만족하기 어렵습니다. 이를 해결하기 위해 TDSQL는 3종 테이블 구축 방안을 제공하며, (분산형) 루틴 특징을 기반으로 하는 전역에서 유일한 숫자 서열을 제공하며 JSON을 지원합니다. 이러한 성능은 분산형의 미흡한 구조를 보완했고, 개발자에게 보다 자유로운 개발 솔루션을 제공합니다.

서버 비점검 탄력적 확장

현재 낱개 샤딩은 스토리지를 최대 6TB 지원합니다. 성능 혹은 용량상 비즈니스의 발전을 지원하기 어려울 경우 콘솔에서 클릭하면 자동으로 업그레이드합니다. 업그레이드 과정에 분산형 시스템 내부의 데이터 이관, 로드 밸런서와 라우팅 변경을 고민할 우려가 없습니다. 업그레이드를 완료하면 액세스하는 IP는 변경되지 않으며, 오직 자동 스위칭 시에만 초급 단위로 플래시합니다. 관련하여 사용자는 재연결 메커니즘을 확보해주시면 됩니다.

강제 동기화 복사

TDSQL는 기본적으로 마스터-슬레이어 아키텍처를 적용하며 99.95%의 가용성을 확보합니다. 데이터 일치성을 위해 시스템은 강제 동기화 복사를 지원하며, 서비스 시스템에 데이터를 입력하면 데이터베이스 마스터-슬레이어 동기화 완료 후 루틴 응용에 응답하므로 마스터와 슬레이브 데이터가 일치하도록 확보합니다. 관련하여 고장으로 데이터가 손실하거나 오류가 생기는 경우가 없습니다. 현재 강제 동기화 복사 성능은 비동기화 복사 수준과 맞물립니다.

고성능

TDSQL는 개발 MySQL 커널을 맞춤제작합니다. 성능은 오픈 소스 MySQL보다 훨씬 뛰어나며, 3종 읽기 쓰기 분리 방안을 지원합니다. 읽기 확장성과 자유로운 개발을 동시에 지원합니다. 풀 스레드 스케줄링 알고리즘을 최적화하여 부하가 심할 경우 성능이 더 뛰어납니다. PCI-E SSD 디스크를 배포하여 SATA 3배 이상에 달하는 IO를 배포하며, 서비스의 성능을 만족합니다.

사용하기 용이한 호스팅 배포

Tencent Cloud TDSQL 콘솔에서 몇번 클릭하면 몇분 내에 바로 생성 가능한 TDSQL 데이터베이스를 작동 및 연결할 수 있습니다. 콘솔은 기본적인 데이터베이스 운영 매뉴얼을 제공하며, 사용자는 데이터베이스를 보다 디테일하게 관리할 수 있습니다. 기본적인 시스템 모니터링 데이터와 성능 분석 데이터를 제공하며, 운행 시에 이상이 존재하는 데이터베이스를 빠르게 검출합니다.

JSON 지원

오리지널 JSON 유형을 지원합니다. JSON값은 스트링 포멧으로 저장하지 않으며, 쾌속 읽기가 가능한 다큐먼트 요소(document elements)의 내부 이진법 포멧을 지원합니다. JSON 칼럼에 JSON 텍스트를 추가하거나 업데이트 시에 자동으로 검증합니다. 사용자는 MySQL 프로토콜을 호환하는 NoSQL 데이터베이스로 TDSQL를 활용할 수 있습니다.

RocksDB 지원

RocksDB는 LSM 트리를 기반으로 하는 스토리지 엔진입니다. 데이터의 압축률은 InnoDB 엔진보다 60% 앞선 상황이며, 압축 후 1000만 행 데이터당 스토리지 공간을 1GB 점용하므로, 데이터베이스 사용 비용을 대폭 줄입니다. 또한 RocksDB의 쓰기 성능도 대폭 업그레이드되어 사물인터넷, 로그 등 “쓰기가 많고 읽기가 적은” 솔루션과 용량을 중요시하는 비즈니스 솔루션에 적용합니다. RocksDB는 현재 오픈 베타 테스트(OBT)중입니다.

기능

MySQL 완벽 호환

고성능

고가용성

기업 수준급 보안

기업 수준급 모니터링

확장성

용이성

MySQL 완벽 호환

대부분의 상용 MySQL 문구 호환

MySQL의 언어 구조, 캐릭터셋과 시간대, 데이터 유형, 상용 함수, 프로토콜 사전 처리, 순서 배열, 연합(join), 스토리지 과정, 인덱스, 파티션, 루틴, 제어 명령 등 자주 사용하는 DDL, DML, DCL과 데이터베이스 액세스 인터페이스를 포함합니다.


(분산형) 업무 지원

2종 제출 방식으로 이체, 이슈, 지불 등 솔루션에서 분산형 루틴을 지원합니다. 통합 노드의 루틴 성능은 낱개 노드의 70%이며, 오픈 리소스 분산형 루틴 XA보다 56% 높습니다. 현재 MySQL 5.7만 해당 기능을 적용할 수 있습니다.


(분산형) JOIN 지원

TDSQL는 멀티 물리 노드 간 JOIN(연합 쿼리), 즉 분산형 JOIN을 지원합니다. 혹 JOIN 관련 테이블에 shardkey와 대응하는 조건이 있을 경우, 테이블 일치성 원칙에 따라 해당 파트의 데이터는 자동으로 같은 물리 노드에 저장됩니다. 이때 싱글 머신의 JOIN에 해당하며 성능이 가장 뛰어납니다. 혹 통합 물리 노드 데이터를 포함하면, proxy는 기타 노드에서 데이터를 읽어온 후 캐시합니다. 네트워크 데이터 전송과 관련되므로 성능이 떨어질 수 있습니다.


JSON 지원

TDSQL는 JSON 포멧 데이터를 저장하며, JSON을 보다 효과적으로 처리하고 에러를 빠르게 검출할 수 있습니다. JSON 포멧을 이용 시에 데이터 일치성을 확보하고, 루틴, JOIN 등 기존 데이터베이스의 고성능을 원하시면, TDSQL는 최적의 선택일 것입니다. TDSQL의 JSON은 MySQL과 Mongodb를 기반으로 하는 사용법과 다소 다를 수 있으므로, 더 알아보시려면 TDSQL, MongoDB의 JSON 성능을 대조하시기 바랍니다.


3종 테이블 구축 전략

테이블 스플릿: 스플릿 호라이즌한 테이블은 일반적으로 2000만 행 이상, 50GB 이상에 달하는 스펙 및 쾌속적으로 증가하는 테이블에 적용합니다.

방송 테이블: 전체 조작은 전체 로직 샤딩에 방송합니다. 이때 샤딩별로 해당 테이블의 전체 데이터를 소유합니다. 테이블을 설정하거나, 잦게 JOIN하는 테이블에 적용됩니다. 해당 유형의 테이블은 업데이트하는 데이터가 적으며, 방송 테이블은 두개 테이블의 연합 쿼리(JOIN), 루틴을 낱개 노드에 적용하므로 성능이 업그레이드 되었습니다.

싱글 테이블: 샤딩이 필요없는 테이블은 일반적으로 데이터량이 작은 라이브러리 테이블에 적용합니다. 싱글 테이블은 샤딩하지 않았으므로 낱개 테이블은 MySQL를 완벽 호환합니다.


전역 유일한 숫자 서열

AUTO_INCREMENT와 유사합니다. 증가 서열은 사용자에게 전역에서 유일한 데이터 ID 서비스를 제공하므로 분산형 환경에서 유일키, 홈 버튼 등 전역에서 데이터의 유일성을 확보합니다.


명령 전달

주석 방식(hint)으로 SQL를 지정 목표 샤딩에 통과 합니다. 성능을 업그레이드하고, 조작하기 편리합니다.


2급 파티션

테이블 스플릿 기반으로 테이블 파티션 스플릿을 지원합니다. 스플릿 호라이즌한 테이블을 기반으로 로직 파티션을 지원하며, 이를 2급 파티션이라고 부릅니다. 2급 파티션은 데이터 분포와 액세스 밸런스를 맞추며, 쿼리 효율을 올려주고, 게임 히스토리 전적, IoT 센서 데이터를 지원하며 주기적으로 히스토리 데이터를 삭제해야 하는 솔루션에 적용합니다.

고성능

읽기/쓰기 분리(슬레이브 읽기 전용)

TDSQL는 기본적으로 읽기와 쓰기를 분리합니다. 마스터-슬레이브 아키텍처 중, 각 슬레이브는 읽기 전용을 지원하며, 혹 멀티 슬레이브가 배포될 경우, 게이트웨이 클로스터(TProxy)는 자동으로 부하가 낮은 슬레이브에 배포되어 대규모 애플리케케이션의 트래픽을 읽어옵니다. 읽기, 쓰기 분리 방안에 계정 읽기 전용, /*slave*/, 읽기 전용 인스턴스 등 3종 방안을 포함합니다.


스레드 풀

TDSQL는 기본적으로 스레드 풀을 지원합니다. 텐센트는 스레드 풀 스케줄링 알고리즘을 최적화 하였고, 기존 시스템이 과부하에 걸릴 경우 쿼리와 업데이트 요청이 온라인 스레드에 불균형하게 배포되는 극단적인 경우를 최적화 하였습니다. 또한 컴퓨팅 리소스를 활용하여 불필요한 스레드 변경을 줄이었고, 요청이 큐에 대기하는 시간을 줄이어 빠르게 처리할 수 있습니다.


고급 하드웨어 사양

TDSQL는 PCI-E SSD를 기반으로 SATA 3배 이상에 달하는 IOPS 스펙을 제공합니다. 강력한 IO 성능은 데이터베이스 액세스를 확보하고, 스토리지 하드웨어는 NvMe 프로토콜을 적용하며, PCI-E 인터페이스 맞춤용의 SSD를 디자인하여 성능 퍼포먼스를 극대화합니다. 낱개 샤딩은 최대 245,509 QPS (초당 액세스 횟수) , 384GB 메모리와 6TB 스토리지 공간을 지원합니다.


성능 동시 연결 선형 추가

분산식 아키텍처는 TDSQL 샤딩이 증가할 때마다, 각 샤딩은 일부분의 분산식 타스크를 처리합니다. 관련하여 사용자의 데이터베이스 성능은 선형 증가와 맞물립니다.


RocksDB 지원

RocksDB는 새롭게 소스를 오픈한 스토리지 엔진입니다. FB를 포함하여 많은 기업에서 RocksDB를 사용합니다. RocksDB는 LSM 트리를 기반으로 하는 스토리지 엔진이므로, 데이터 압축률은 InnoDB 엔진보다 60% 앞선 상황입니다. 즉 InnoDB는 압축하기전에 160GB에 달할 경우, RocksDB를 사용 후 62GB만 소모합니다. 관련하여 1,000행 당 스토리지 공간은 1GB만 소모하므로 데이터베이스 사용 비용을 대폭 줄입니다. 또한 RocksDB의 쓰기 성능도 대폭 업그레이드되어, 동시 발생 솔루션에서 성능은 InnoDB의 5배 이상에 달합니다. RocksDB는 사물인터넷, 로그 등 ‘쓰기가 많고 읽기가 적으며’ 용량을 중요시하는 서비스에 적용합니다.

고가용성

분산식 고가용성

분산식의 시스템 아키텍처는 가용성이 지극히 높아, 낱개 노드에 고장이 생겨도 클러스터의 전체적인 가용성에는 영향을 미치지 않습니다. TDSQL은 분산형의 아키텍처를 기반으로 샤디별로 슬레이스-마스터 리던던시를 설정하여 서비스의 꾸준한 고가용성을 지원합니다.


3종 데이터 복사 방법

TDSQL는 스트롱 동기화(탈동조화 불가), 강제 동기화(탈동조화 가능), 비동기 복사 등 3종 복사 방법을 지원합니다. 텐센트에서 자체 개발한 비동기화 멀티 스레드 강제 동기화 복사 기술을 기반으로 데이터의 강제 동기화 복사 성능을 대폭 업그레이드하였습니다. 강제 동기화 성능과 비동기화 성능은 별반 차이가 없으므로 마스터-슬레이브 노드의 데이터는 일치합니다.


투명 고장 마이그레이션

낱개 샤딩당 및 인프라 물리 장치는 7X24시간 모니터링합니다. 고장 발생 시, 게이트웨이 클로스터(TProxy)는 고장 노드로부터 정상 노드로 변경합니다. 마스터-슬레이브를 스위칭 시에 VIP는 변경하지 않으며, 이는 응용 레이어는 아무런 수정 작업 없이도 핫백업으로 변경함을 의미합니다. 서비스는 이중화 스위칭을 무감지합니다.


노드 고장 자동 복구

샤딩을 적용한 물리 노드 고장에 스케줄링 시스템은 스스로 노드 복구를 재시도합니다. 혹 기존 노드를 복구 불가하다면 30분내에 자동으로 신규 리소스를 신청하며, 백업을 통해 노드를 리빌드(Rebuild)합니다. 노드는 자동으로 클러스터에 추가되며, 샤딩을 오랜 기간 꾸준히 마스터-슬레이브를 지원합니다.


통합 가용 영역 배포 지원

마스터. 슬레이브 머신은 같은 지역내 서로 다른 가용 영역에 위치할 수 있습니다. 텐센트의 직접 연결 네트워크를 통해 실시간 데이터를 복사합니다. 로컬은 마스터, 원격은 슬레이브로 적용하며, 외부에서 해당 데이터를 액세스 시, 로컬 인스턴스를 우선 액세스합니다. 혹 로컬 인스턴스에 고장이 생겼거나 액세스 불가할 경우, 원격 슬레이브 머신을 액세스합니다. 통합 가용 영역 배포 특징은 TDSQL에 멀티 가용 영역 재해 복구 능력을 제공하였고, 마스터-슬레이브 스위칭 과정은 유저에게 공개하며, 낱개 IDC를 배포하는 운영 위험성을 줄입니다.


금융 수준급 2리전 3데이터센터 방안

TDSQL는 1리전 2데이터센터, 2리전 3데이터센터 아키텍처로 배포합니다. 고장 발생 시, 몇분내에 데이터베이스를 복구하여 정상 운행할 수 있습니다.

기업 수준급 보안

국가/국제/업계 기준에 부합합니다

TDSQL는 현재 Tencent Cloud 데이터베이스를 대표해 국가 혹은 국제 인증을 받았습니다. ISO 22301/27001/20000/9001 인증, 신뢰 가능한 클라우드 서비스 인증, 정보 보안 등급 보호(3급 혹은 이상), CSA STAR 인증 및 이외 다수 인증을 받았습니다.

TDSQL의 일부 기능은 GBT 20273-2006 정보 안전 기술 데이터베이스 관리 시스템 보안 기술 기준, JRT 0072-2012 금융업 정보 시스템 정보 안전 등급 보호 테스트 매뉴얼을 참고하여 디자인 되었습니다. 높은 데이터베이스 보안성을 필요로 하는 솔루션에서도 TDSQL를 안심하고 사용할 수 있습니다.


데이터베이스 커널급 보안

SQL 입력, 디렉터리 경로 조작(Path Traversal), 불법 루트, 시스템 테이블 오버라이트 공격, 플러그인 추가 등 보안상 우려사항에 대해 TDSQL는 보안을 대폭 최적화하였습니다. 데이터베이스 클러스터 내부에 내장 데이터베이스 방화벽을 제공했고, OPS와 사용성을 충분히 감안하여 비즈니스 보안 표준을 업그레이드 하였습니다.


Virtual Private Cloud 지원

TDSQL는 VPC에서 데이터베이스 인스턴스를 작동할 수 있습니다. 데이터베이스 인스턴스를 격리하고 업계 표준의 암호화한 IPsec VPN 혹은 직접 연결로 기존 데이터센터에 연결합니다.


데이터베이스 방화벽과 멀티 보안 방어

클라우드 데이터베이스는 기본적으로 각 데이터베이스에 멀티 보안 방어를 제공합니다. 외부 액세스 기능을 제공한 데이터베이스 인스턴스가 DDos 공격을 받으면 각 공력 트래픽을 방어하고, 서비스가 정상 운행되도록 지원합니다. SQL 입력, 무차별 대입 공격 등 데이터베이스를 공격하는 행위를 효과적으로 방어하며, 데이터베이스 공격으로 서비스가 중지하거나 손실하는 경우를 대폭 줄입니다.


디테일한 입상도 권한 제어

화면 슈퍼 관리자 root 계정은 기본적으로 지정되어 있어 보안상 리스크를 줄입니다. 테이블, 함수, 스토리지 프로세스 등 오브젝트 수준급으로 디테일하게 권한을 제어하며, 사용자가 할당한 계정은 권한 허락된 리소스만 액세스할 수 있어 위험을 예측 가능한 범주에로 컨트롤합니다.


물리 독점 방안 지원

퍼블릭 클라우드에서 물리 클러스터(디바이스)에 배포한 전체 리소스 데이터베이스를 독점하므로 사용자는 기타 테넌트와 공유하지 않고 스스로 물리 설비를 독점합니다. 전용 클러스터는 리소스 독점, 물리 보안, 업계 모니터링 등 니즈를 만족하며, 전용 클러스터를 구매하면 Tencent Cloud 콘솔에서 스펙을 사용자 지정으로 다양한 데이터베이스 용례를 생성할 수 있습니다.


신뢰 가능한 스토리지

온라인상 마스터-슬레이브 2종 데이터 스토리지를 제공하므로 온라인 데이터 보안을 지켜줍니다. 매일 자동으로 데이터를 백업하며, 클라우드 데이터베이스는 백업 파일에 따라 3일내 임의 시간에 롤백할 수 있습니다. 매일 콜드 백업한 데이터는 멀티로 백업하며, 비상 사태를 대비하여 데이터를 복구합니다. 데이터 손실 등 우려가 없으므로 데이터를 TDSQL에 안심하고 저장할 수 있습니다.

기업 수준급 모니터링

일상 모니터링 전폭 지원

일상 모니터링은 60초 입상도, 연결 액세스, 데이터베이스 로드 부하, 쿼리 캐시, 스토리지 엔진 등 70여종 중요한 지표를 지원하므로 데이터베이스 운행 상황을 전격 모니터링 합니다. 데이터베이스 핵심 성능 지표 15종은 초급 단위로 실시간 모니터링 하며, 용례 운행 상황을 파악하고 용례 성능 문제를 빠르게 확인할 수 있습니다. 리소스 임계값 알람을 커스텀 하며, 사용자가 DB 운행 과정에 존재하는 문제를 확인하도록 지원합니다. 문제를 OPS 담당자에게 빠르게 피드백 하여 데이터베이스에 존재하는 문제를 빠르게 처리하며, 슬로우 쿼리 분석 리포트와 SQL 풀 운행 리포트를 다운로드할 수 있어 데이터베이스 성능에 영향을 미치는 요소를 확인할 수 있습니다.


커스텀 알람

리소스 임계값 알람을 커스텀할 수 있으며, 사용자는 DB 작동 과정에 존재하는 문제를 확인합니다. 시스템은 OPS 담당자에게 문제를 피드백하며, 데이터베이스 문제를 원활히 해결하도록 지원합니다.


성능 분석 로그

슬로우 쿼리 분석 리포트와 SQL 전체 운행 리포트를 다운로드할 수 있으므로 데이터베이스 성능에 영향을 미치는 요소를 확인할 수 있습니다.

확장성

신축성 확장

현재 낱개 샤딩은 최대 6TB 스토리지를 지원합니다. 성능 혹은 용량상 비즈니스의 발전을 지원하기 어려울 경우 콘솔에서 클릭하면 자동으로 업그레이드합니다. 업그레이드 과정에 분산식 시스템 내부의 데이터 마이그레이션, 로드 밸런서와 라우팅 변경을 고민할 우려가 없습니다. 업그레이드를 완료하면 액세스하는 IP는 변경되지 않으며, 오직 자동 스위칭 시에만 초급 단위로 플래시 합니다. 관련하여 사용자는 재연결 메커니즘을 확보해주시면 됩니다.


리밸런스(Rebalance)

샤딩을 추가하거나 샤딩 스펙을 업그레이드할 경우, 데이터는 자동으로 마이그레이션 하며, 각 노드에 데이터가 균형적으로 배포하도록 지원합니다. 이관 과정에 서비스는 종료하지 않으며, 일부 할당만 초급 단위로 읽기 전용이 적용됩니다. 이로 대규모 서비스 유지 보수 효율을 업그레이드하고, 운영 리스크를 줄입니다.

용이성

대용량 데이터베이스를 관리하기 용이합니다

Tencent Cloud Command Line Interface와 웹 등 2종 방식으로 분산형 데이터베이스를 관리합니다. 해당 2종 방식은 대용량의 데이터베이스 용례 OPS 작업을 줄여줍니다. 웹페이지에서 클릭 시 완료되며, 유지 보수 작업량을 대폭 줄입니다.


멀티 네트워크 액세스

VPC 네트워크와 기본 네트워크를 지원합니다. 외부 네트워크로 데이베이스를 액세스하는 것을 설정할 수 있습니다. 관련 액세스 방법으로 Tencent Cloud, IDC, 프라이빗 클라우드 혹은 기타 클라우드 벤더로부터 클라우드 데이터베이스를 액세스하므로, 다양한 환경에서 데이터베이스를 액세스하는 니즈를 만족합니다.


API 지원

보다 구전한 API 시스템을 제공합니다. API를 활용하여 클라우드 데이터베이스와 내부 모니터링, 운영 시스템을 컨버전스하여 비지니스 니즈를 만족하고, 자동화한 비지니스 OPS 시스템을 지원합니다. API 설명 보기.

기능

대부분의 상용 MySQL 문구 호환

MySQL의 언어 구조, 캐릭터셋과 시간대, 데이터 유형, 상용 함수, 프로토콜 사전 처리, 순서 배열, 연합(join), 스토리지 과정, 인덱스, 파티션, 루틴, 제어 명령 등 자주 사용하는 DDL, DML, DCL과 데이터베이스 액세스 인터페이스를 포함합니다.


(분산형) 업무 지원

2종 제출 방식으로 이체, 이슈, 지불 등 솔루션에서 분산형 루틴을 지원합니다. 통합 노드의 루틴 성능은 낱개 노드의 70%이며, 오픈 리소스 분산형 루틴 XA보다 56% 높습니다. 현재 MySQL 5.7만 해당 기능을 적용할 수 있습니다.


(분산형) JOIN 지원

TDSQL는 멀티 물리 노드 간 JOIN(연합 쿼리), 즉 분산형 JOIN을 지원합니다. 혹 JOIN 관련 테이블에 shardkey와 대응하는 조건이 있을 경우, 테이블 일치성 원칙에 따라 해당 파트의 데이터는 자동으로 같은 물리 노드에 저장됩니다. 이때 싱글 머신의 JOIN에 해당하며 성능이 가장 뛰어납니다. 혹 통합 물리 노드 데이터를 포함하면, proxy는 기타 노드에서 데이터를 읽어온 후 캐시합니다. 네트워크 데이터 전송과 관련되므로 성능이 떨어질 수 있습니다.


JSON 지원

TDSQL는 JSON 포멧 데이터를 저장하며, JSON을 보다 효과적으로 처리하고 에러를 빠르게 검출할 수 있습니다. JSON 포멧을 이용 시에 데이터 일치성을 확보하고, 루틴, JOIN 등 기존 데이터베이스의 고성능을 원하시면, TDSQL는 최적의 선택일 것입니다. TDSQL의 JSON은 MySQL과 Mongodb를 기반으로 하는 사용법과 다소 다를 수 있으므로, 더 알아보시려면 TDSQL, MongoDB의 JSON 성능을 대조하시기 바랍니다.


3종 테이블 구축 전략

테이블 스플릿: 스플릿 호라이즌한 테이블은 일반적으로 2000만 행 이상, 50GB 이상에 달하는 스펙 및 쾌속적으로 증가하는 테이블에 적용합니다.

방송 테이블: 전체 조작은 전체 로직 샤딩에 방송합니다. 이때 샤딩별로 해당 테이블의 전체 데이터를 소유합니다. 테이블을 설정하거나, 잦게 JOIN하는 테이블에 적용됩니다. 해당 유형의 테이블은 업데이트하는 데이터가 적으며, 방송 테이블은 두개 테이블의 연합 쿼리(JOIN), 루틴을 낱개 노드에 적용하므로 성능이 업그레이드 되었습니다.

싱글 테이블: 샤딩이 필요없는 테이블은 일반적으로 데이터량이 작은 라이브러리 테이블에 적용합니다. 싱글 테이블은 샤딩하지 않았으므로 낱개 테이블은 MySQL를 완벽 호환합니다.


전역 유일한 숫자 서열

AUTO_INCREMENT와 유사합니다. 증가 서열은 사용자에게 전역에서 유일한 데이터 ID 서비스를 제공하므로 분산형 환경에서 유일키, 홈 버튼 등 전역에서 데이터의 유일성을 확보합니다.


명령 전달

주석 방식(hint)으로 SQL를 지정 목표 샤딩에 통과 합니다. 성능을 업그레이드하고, 조작하기 편리합니다.


2급 파티션

테이블 스플릿 기반으로 테이블 파티션 스플릿을 지원합니다. 스플릿 호라이즌한 테이블을 기반으로 로직 파티션을 지원하며, 이를 2급 파티션이라고 부릅니다. 2급 파티션은 데이터 분포와 액세스 밸런스를 맞추며, 쿼리 효율을 올려주고, 게임 히스토리 전적, IoT 센서 데이터를 지원하며 주기적으로 히스토리 데이터를 삭제해야 하는 솔루션에 적용합니다.

읽기/쓰기 분리(슬레이브 읽기 전용)

TDSQL는 기본적으로 읽기와 쓰기를 분리합니다. 마스터-슬레이브 아키텍처 중, 각 슬레이브는 읽기 전용을 지원하며, 혹 멀티 슬레이브가 배포될 경우, 게이트웨이 클로스터(TProxy)는 자동으로 부하가 낮은 슬레이브에 배포되어 대규모 애플리케케이션의 트래픽을 읽어옵니다. 읽기, 쓰기 분리 방안에 계정 읽기 전용, /*slave*/, 읽기 전용 인스턴스 등 3종 방안을 포함합니다.


스레드 풀

TDSQL는 기본적으로 스레드 풀을 지원합니다. 텐센트는 스레드 풀 스케줄링 알고리즘을 최적화 하였고, 기존 시스템이 과부하에 걸릴 경우 쿼리와 업데이트 요청이 온라인 스레드에 불균형하게 배포되는 극단적인 경우를 최적화 하였습니다. 또한 컴퓨팅 리소스를 활용하여 불필요한 스레드 변경을 줄이었고, 요청이 큐에 대기하는 시간을 줄이어 빠르게 처리할 수 있습니다.


고급 하드웨어 사양

TDSQL는 PCI-E SSD를 기반으로 SATA 3배 이상에 달하는 IOPS 스펙을 제공합니다. 강력한 IO 성능은 데이터베이스 액세스를 확보하고, 스토리지 하드웨어는 NvMe 프로토콜을 적용하며, PCI-E 인터페이스 맞춤용의 SSD를 디자인하여 성능 퍼포먼스를 극대화합니다. 낱개 샤딩은 최대 245,509 QPS (초당 액세스 횟수) , 384GB 메모리와 6TB 스토리지 공간을 지원합니다.


성능 동시 연결 선형 추가

분산식 아키텍처는 TDSQL 샤딩이 증가할 때마다, 각 샤딩은 일부분의 분산식 타스크를 처리합니다. 관련하여 사용자의 데이터베이스 성능은 선형 증가와 맞물립니다.


RocksDB 지원

RocksDB는 새롭게 소스를 오픈한 스토리지 엔진입니다. FB를 포함하여 많은 기업에서 RocksDB를 사용합니다. RocksDB는 LSM 트리를 기반으로 하는 스토리지 엔진이므로, 데이터 압축률은 InnoDB 엔진보다 60% 앞선 상황입니다. 즉 InnoDB는 압축하기전에 160GB에 달할 경우, RocksDB를 사용 후 62GB만 소모합니다. 관련하여 1,000행 당 스토리지 공간은 1GB만 소모하므로 데이터베이스 사용 비용을 대폭 줄입니다. 또한 RocksDB의 쓰기 성능도 대폭 업그레이드되어, 동시 발생 솔루션에서 성능은 InnoDB의 5배 이상에 달합니다. RocksDB는 사물인터넷, 로그 등 ‘쓰기가 많고 읽기가 적으며’ 용량을 중요시하는 서비스에 적용합니다.

분산식 고가용성

분산식의 시스템 아키텍처는 가용성이 지극히 높아, 낱개 노드에 고장이 생겨도 클러스터의 전체적인 가용성에는 영향을 미치지 않습니다. TDSQL은 분산형의 아키텍처를 기반으로 샤디별로 슬레이스-마스터 리던던시를 설정하여 서비스의 꾸준한 고가용성을 지원합니다.


3종 데이터 복사 방법

TDSQL는 스트롱 동기화(탈동조화 불가), 강제 동기화(탈동조화 가능), 비동기 복사 등 3종 복사 방법을 지원합니다. 텐센트에서 자체 개발한 비동기화 멀티 스레드 강제 동기화 복사 기술을 기반으로 데이터의 강제 동기화 복사 성능을 대폭 업그레이드하였습니다. 강제 동기화 성능과 비동기화 성능은 별반 차이가 없으므로 마스터-슬레이브 노드의 데이터는 일치합니다.


투명 고장 마이그레이션

낱개 샤딩당 및 인프라 물리 장치는 7X24시간 모니터링합니다. 고장 발생 시, 게이트웨이 클로스터(TProxy)는 고장 노드로부터 정상 노드로 변경합니다. 마스터-슬레이브를 스위칭 시에 VIP는 변경하지 않으며, 이는 응용 레이어는 아무런 수정 작업 없이도 핫백업으로 변경함을 의미합니다. 서비스는 이중화 스위칭을 무감지합니다.


노드 고장 자동 복구

샤딩을 적용한 물리 노드 고장에 스케줄링 시스템은 스스로 노드 복구를 재시도합니다. 혹 기존 노드를 복구 불가하다면 30분내에 자동으로 신규 리소스를 신청하며, 백업을 통해 노드를 리빌드(Rebuild)합니다. 노드는 자동으로 클러스터에 추가되며, 샤딩을 오랜 기간 꾸준히 마스터-슬레이브를 지원합니다.


통합 가용 영역 배포 지원

마스터. 슬레이브 머신은 같은 지역내 서로 다른 가용 영역에 위치할 수 있습니다. 텐센트의 직접 연결 네트워크를 통해 실시간 데이터를 복사합니다. 로컬은 마스터, 원격은 슬레이브로 적용하며, 외부에서 해당 데이터를 액세스 시, 로컬 인스턴스를 우선 액세스합니다. 혹 로컬 인스턴스에 고장이 생겼거나 액세스 불가할 경우, 원격 슬레이브 머신을 액세스합니다. 통합 가용 영역 배포 특징은 TDSQL에 멀티 가용 영역 재해 복구 능력을 제공하였고, 마스터-슬레이브 스위칭 과정은 유저에게 공개하며, 낱개 IDC를 배포하는 운영 위험성을 줄입니다.


금융 수준급 2리전 3데이터센터 방안

TDSQL는 1리전 2데이터센터, 2리전 3데이터센터 아키텍처로 배포합니다. 고장 발생 시, 몇분내에 데이터베이스를 복구하여 정상 운행할 수 있습니다.

국가/국제/업계 기준에 부합합니다

TDSQL는 현재 Tencent Cloud 데이터베이스를 대표해 국가 혹은 국제 인증을 받았습니다. ISO 22301/27001/20000/9001 인증, 신뢰 가능한 클라우드 서비스 인증, 정보 보안 등급 보호(3급 혹은 이상), CSA STAR 인증 및 이외 다수 인증을 받았습니다.

TDSQL의 일부 기능은 GBT 20273-2006 정보 안전 기술 데이터베이스 관리 시스템 보안 기술 기준, JRT 0072-2012 금융업 정보 시스템 정보 안전 등급 보호 테스트 매뉴얼을 참고하여 디자인 되었습니다. 높은 데이터베이스 보안성을 필요로 하는 솔루션에서도 TDSQL를 안심하고 사용할 수 있습니다.


데이터베이스 커널급 보안

SQL 입력, 디렉터리 경로 조작(Path Traversal), 불법 루트, 시스템 테이블 오버라이트 공격, 플러그인 추가 등 보안상 우려사항에 대해 TDSQL는 보안을 대폭 최적화하였습니다. 데이터베이스 클러스터 내부에 내장 데이터베이스 방화벽을 제공했고, OPS와 사용성을 충분히 감안하여 비즈니스 보안 표준을 업그레이드 하였습니다.


Virtual Private Cloud 지원

TDSQL는 VPC에서 데이터베이스 인스턴스를 작동할 수 있습니다. 데이터베이스 인스턴스를 격리하고 업계 표준의 암호화한 IPsec VPN 혹은 직접 연결로 기존 데이터센터에 연결합니다.


데이터베이스 방화벽과 멀티 보안 방어

클라우드 데이터베이스는 기본적으로 각 데이터베이스에 멀티 보안 방어를 제공합니다. 외부 액세스 기능을 제공한 데이터베이스 인스턴스가 DDos 공격을 받으면 각 공력 트래픽을 방어하고, 서비스가 정상 운행되도록 지원합니다. SQL 입력, 무차별 대입 공격 등 데이터베이스를 공격하는 행위를 효과적으로 방어하며, 데이터베이스 공격으로 서비스가 중지하거나 손실하는 경우를 대폭 줄입니다.


디테일한 입상도 권한 제어

화면 슈퍼 관리자 root 계정은 기본적으로 지정되어 있어 보안상 리스크를 줄입니다. 테이블, 함수, 스토리지 프로세스 등 오브젝트 수준급으로 디테일하게 권한을 제어하며, 사용자가 할당한 계정은 권한 허락된 리소스만 액세스할 수 있어 위험을 예측 가능한 범주에로 컨트롤합니다.


물리 독점 방안 지원

퍼블릭 클라우드에서 물리 클러스터(디바이스)에 배포한 전체 리소스 데이터베이스를 독점하므로 사용자는 기타 테넌트와 공유하지 않고 스스로 물리 설비를 독점합니다. 전용 클러스터는 리소스 독점, 물리 보안, 업계 모니터링 등 니즈를 만족하며, 전용 클러스터를 구매하면 Tencent Cloud 콘솔에서 스펙을 사용자 지정으로 다양한 데이터베이스 용례를 생성할 수 있습니다.


신뢰 가능한 스토리지

온라인상 마스터-슬레이브 2종 데이터 스토리지를 제공하므로 온라인 데이터 보안을 지켜줍니다. 매일 자동으로 데이터를 백업하며, 클라우드 데이터베이스는 백업 파일에 따라 3일내 임의 시간에 롤백할 수 있습니다. 매일 콜드 백업한 데이터는 멀티로 백업하며, 비상 사태를 대비하여 데이터를 복구합니다. 데이터 손실 등 우려가 없으므로 데이터를 TDSQL에 안심하고 저장할 수 있습니다.

일상 모니터링 전폭 지원

일상 모니터링은 60초 입상도, 연결 액세스, 데이터베이스 로드 부하, 쿼리 캐시, 스토리지 엔진 등 70여종 중요한 지표를 지원하므로 데이터베이스 운행 상황을 전격 모니터링 합니다. 데이터베이스 핵심 성능 지표 15종은 초급 단위로 실시간 모니터링 하며, 용례 운행 상황을 파악하고 용례 성능 문제를 빠르게 확인할 수 있습니다. 리소스 임계값 알람을 커스텀 하며, 사용자가 DB 운행 과정에 존재하는 문제를 확인하도록 지원합니다. 문제를 OPS 담당자에게 빠르게 피드백 하여 데이터베이스에 존재하는 문제를 빠르게 처리하며, 슬로우 쿼리 분석 리포트와 SQL 풀 운행 리포트를 다운로드할 수 있어 데이터베이스 성능에 영향을 미치는 요소를 확인할 수 있습니다.


커스텀 알람

리소스 임계값 알람을 커스텀할 수 있으며, 사용자는 DB 작동 과정에 존재하는 문제를 확인합니다. 시스템은 OPS 담당자에게 문제를 피드백하며, 데이터베이스 문제를 원활히 해결하도록 지원합니다.


성능 분석 로그

슬로우 쿼리 분석 리포트와 SQL 전체 운행 리포트를 다운로드할 수 있으므로 데이터베이스 성능에 영향을 미치는 요소를 확인할 수 있습니다.

신축성 확장

현재 낱개 샤딩은 최대 6TB 스토리지를 지원합니다. 성능 혹은 용량상 비즈니스의 발전을 지원하기 어려울 경우 콘솔에서 클릭하면 자동으로 업그레이드합니다. 업그레이드 과정에 분산식 시스템 내부의 데이터 마이그레이션, 로드 밸런서와 라우팅 변경을 고민할 우려가 없습니다. 업그레이드를 완료하면 액세스하는 IP는 변경되지 않으며, 오직 자동 스위칭 시에만 초급 단위로 플래시 합니다. 관련하여 사용자는 재연결 메커니즘을 확보해주시면 됩니다.


리밸런스(Rebalance)

샤딩을 추가하거나 샤딩 스펙을 업그레이드할 경우, 데이터는 자동으로 마이그레이션 하며, 각 노드에 데이터가 균형적으로 배포하도록 지원합니다. 이관 과정에 서비스는 종료하지 않으며, 일부 할당만 초급 단위로 읽기 전용이 적용됩니다. 이로 대규모 서비스 유지 보수 효율을 업그레이드하고, 운영 리스크를 줄입니다.

대용량 데이터베이스를 관리하기 용이합니다

Tencent Cloud Command Line Interface와 웹 등 2종 방식으로 분산형 데이터베이스를 관리합니다. 해당 2종 방식은 대용량의 데이터베이스 용례 OPS 작업을 줄여줍니다. 웹페이지에서 클릭 시 완료되며, 유지 보수 작업량을 대폭 줄입니다.


멀티 네트워크 액세스

VPC 네트워크와 기본 네트워크를 지원합니다. 외부 네트워크로 데이베이스를 액세스하는 것을 설정할 수 있습니다. 관련 액세스 방법으로 Tencent Cloud, IDC, 프라이빗 클라우드 혹은 기타 클라우드 벤더로부터 클라우드 데이터베이스를 액세스하므로, 다양한 환경에서 데이터베이스를 액세스하는 니즈를 만족합니다.


API 지원

보다 구전한 API 시스템을 제공합니다. API를 활용하여 클라우드 데이터베이스와 내부 모니터링, 운영 시스템을 컨버전스하여 비지니스 니즈를 만족하고, 자동화한 비지니스 OPS 시스템을 지원합니다. API 설명 보기.

가격

TDSQL은 정액제와 종량제 두 가지 과금 방식을 제공합니다. 정액제 과금 방식은 선불이며 월정액/연정액을 선택할 수 있습니다. TDSQL을 구매할 때, 자신의 비즈니스 요구에 따라 몇개월 또는 몇년 요금을 미리 지불해야합니다. 종량제 과금 방식은 후불이며, 업무량이 크게 변동되는 시나리오에 적용됩니다. 비용은 실제 사용량에 따라 산정되며, 미리 지불할 필요가 없습니다. 자세한 정보는 가격 문서를 참조 바랍니다.