TiDB 소개

TiDB(/’taɪdiːbi:/, “Ti” 는 Titanium을 나타냄)는 하이브리드 트랜잭션 및 분석 처리(HTAP) 워크로드를 지원하는 오픈 소스 NewSQL 데이터베이스이다. 이는 MySQL과 호환되며 수평 확장성, 강력한 일관성 및 고가용성을 제공한다. TiDB의 목표는 OLTP(온라인 트랜잭션 처리), OLAP(온라인 분석 처리) 및 HTAP 서비스를 다루는 원스톱 데이터베이스 솔루션을 사용자에게 제공하는 것이다. TiDB는 고가용성과 대규모 데이터의 강력한 일관성을 요구하는 다양한 사용 사례에 적합하다.

주요 기능

  • 수평으로 스케일-아웃하거나 간단한 스케일-인

    컴퓨팅을 스토리지와 분리하는 TiDB 아키텍처 설계를 통해 필요에 따라 컴퓨팅 또는 스토리지 용량을 온라인으로 개별적으로 스케일 아웃하거나 스케일 아웃할 수 있다. 스케일링 프로세스는 애플리케이션 운영 및 유지보수 직원에게 투명한다.

  • 금융 등급의 고가용성

    데이터는 여러 복제본에 저장된다. 데이터 복제본은 Multi-Raft 프로토콜을 사용하여 트랜잭션 로그를 검색한다. 트랜잭션은 데이터가 대부분의 복제본에 성공적으로 기록된 경우에만 커밋할 수 있다. 이렇게 하면 소수의 복제본이 다운될 때 강력한 일관성과 가용성을 보장할 수 있다. 다양한 재해 저항 수준의 요구 사항을 충족하기 위해 필요에 따라 지리적 위치와 복제본 수를 구성할 수 있다.

  • 실시간 HTAP

    TiDB는 두 개의 스토리지 엔진을 제공한다. TiKV는 행 기반 스토리지 엔진이고 TiFlash는 열 기반 스토리지 엔진이다. TiFlash는 Multi-Raft Learner 프로토콜을 사용하여 TiKV의 데이터를 실시간으로 복제하여 TiKV 행기반 스토리지 엔진과 TiFlash 열기반 스토리지 엔진 간의 데이터 일관성을 보장한다. TiKV 및 TiFlash는 HTAP 리소스 격리 문제를 해결하기 위해 필요에 따라 다른 시스템에 배포할 수 있다.

  • 클라우드 네이티브 분산 데이터베이스

    TiDB는 클라우드용으로 설계된 분산 데이터베이스로 클라우드 플랫폼에 유연한 확장성, 안정성 및 보안을 제공한다. 사용자는 변화하는 워크로드 요구 사항에 맞게 TiDB를 유연하게 확장할 수 있다. TiDB를 사용하면 각 데이터에 최소 3개의 복제본이 있으며 데이터 센터 전체를 중지할 수 있도록 서로 다른 클라우드 가용성 영역에서 예약할 수 있다. TiDB Operator 는 Kubernetes에서 TiDB 관리를 지원하고 TiDB 클러스터 작업과 관련된 작업을 자동화한다. 이를 통해 관리되는 Kubernetes를 제공하는 클라우드에 TiDB를 쉽게 배포할 수 있다. 완전 관리형 TiDB 서비스인 TiDB Cloud 는 클라우드에서 TiDB 의 힘을 발휘하는 가장 쉽고 경제적이며 탄력적인 방법이며 몇 번의 클릭만으로 TiDB 클러스터를 배포하고 실행할 수 있다.

  • MySQL 5.7 프로토콜 및 MySQL 에코시스템과 호환 가능

    TiDB는 MySQL 5.7 프로토콜, MySQL의 일반적인 기능 및 MySQL 에코시스템과 호환된다. 응용 프로그램을 TiDB로 마이그레이션하기 위해 종종 한 줄의 코드를 변경할 필요가 없으며 소량의 코드를 변경하기 만하면 된다. 또한 TiDB는 애플리케이션 데이터를 TiDB로 쉽게 마이그레이션하는데 도움이 되는 일련의 데이터 마이그레이션 도구를 제공한다.

사용 사례

  • 데이터 일관성, 신뢰성, 가용성, 확장성 및 내결함성에 대한 높은 요구사항이 있는 금융 산업 시나리오

    많은 사람들이 알고 있듯이 금융 업계는 데이터의 일관성, 신뢰성, 가용성, 확장성(Scalability) 및 내결함성에 대한 높은 요구 사항을 가지고 있다. 기존 솔루션은 동일한 도시의 두개의 데이터 센터에서 서비스를 제공하고, 다른 도시의 세 번째 데이터 센터는 데이터 재해 복구를 제공하지만 서비스는 제공하지 않는다. 이 솔루션에는 리소스 사용률이 낮고 유지 보수 비용이 높다는 단점이 있으며, RTO(Recovery Time Objective, 목표 복구 시간)와 RPO(Recovery Point Objective, 목표 복구 시점)가 기대에 부응하지 못하고 있다. TiDB는 여러 복제본과 Multi-Raft 프로토콜을 사용하여 다른 데이터 센터, 랙 및 장비에 데이터를 스케줄링한다. 일부 장비에 장애가 발생하면 시스템이 자동으로 전환하여 시스템의 RTO ≤ 30초 및 RPO = 0이 되도록 한다.

  • 스토리지 용량, 확장성 및 동시성에 대한 요구 사항이 높은 대량의 데이터와 동시성이 높은 시나리오

    애플리케이션이 빠르게 성장함에 따라 데이터가 급증한다. 기존의 독립형(Standalone) 데이터베이스에서는 데이터 용량 요구 사항을 충족할 수 없다. 해결책은 샤딩 미들웨어 또는 NewSQL 데이터베이스(예: TiDB)를 사용하는 것이다. 후자는 비용 효율적이다. TiDB는 별도의 컴퓨팅 및 스토리지 아키텍처를 사용하므로 컴퓨팅 또는 스토리지 용량을 개별적으로 스케일-아웃하거나 스케일-인 할 수 있다. 컴퓨팅 레이어는 최대 512개의 노드를 지원하며, 각 노드는 최대 1,000개의 동시 실행을 지원하며 최대 클러스터 용량은 PB(페타바이트) 수준이다.

  • 실시간 HTAP 시나리오

    5G, 사물 인터넷, 인공 지능의 급속한 성장과 함께, 기업에 의해 생성 된 데이터는 엄청나게 증가하고 수백 TB (테라바이트) 또는 PB 수준의 규모에 도달했다. 기존 솔루션은 OLTP 데이터베이스를 사용하여 온라인 트랜잭션 응용 프로그램을 처리하고, ETL(추출, 변환, 로드) 도구를 사용하여 데이터 분석을 위해 데이터를 OLAP 데이터베이스로 복제하는 것이다. 이 솔루션에는 스토리지 비용이 높고 실시간 성능이 낮을 수 있는 몇 가지 단점이 있다. TiDB는 v4.0에서 TiFlash 컬럼 스토리지 엔진을 도입한다. 이는 TiKV 행 기반 스토리지 엔진과 결합하여 TiDB를 진정한 HTAP 데이터베이스로 구축한다. 소량의 추가 스토리지 비용으로 온라인 트랜잭션 처리와 실시간 데이터 분석을 모두 동일한 시스템에서 처리할 수 있으므로 비용을 크게 절약할 수 있다.

  • 데이터 집계 및 2차 처리 시나리오

    대부분의 기업 애플리케이션 데이터는 다양한 시스템에 분산되어 있다. 애플리케이션이 성장함에 따라 의사 결정 리더는 회사 전체의 비즈니스 상태를 이해하고 시간 내에 의사 결정을 내려야 한다. 이럴 때 회사는 분산된 데이터를 동일한 시스템에 집계하고 2차 처리를 수행하여 T+0 또는 T+1 보고서를 생성해야 한다. 기존의 솔루션은 ETL과 Hadoop을 사용하는 것이지만 Hadoop 시스템은 복잡하며 운영 및 유지 보수 및 스토리지 비용이 높다. Hadoop과 비교하면 TiDB는 훨씬 간단하다. TiDB에서 제공하는 ETL 또는 데이터 마이그레이션 도구를 사용하여 데이터를 TiDB로 복제할 수 있다. 보고서는 SQL 문을 사용하여 직접 생성할 수 있다.