TiDB - TiDB

TiDB
Desarrollador (es) PingCAP Inc.
Versión inicial 15 de octubre de 2017 ; hace 3 años  ( 15/10/2017 )
Lanzamiento estable
5.0.0  Edita esto en Wikidata / 7 de abril de 2021 ; Hace 41 dias  ( 7 de abril de 2021 )
Repositorio Edita esto en Wikidata
Escrito en Ir (TiDB), óxido (TiKV)
Disponible en Inglés, chino
Tipo NewSQL
Licencia Apache 2.0
Sitio web pingcap .com / en /  Edita esto en Wikidata

TiDB (/ 'taɪdiːbi: /, "Ti" significa Titanium) es una base de datos NewSQL de código abierto que admite cargas de trabajo de procesamiento analítico y transaccional híbrido ( HTAP ). Es compatible con MySQL y puede proporcionar escalabilidad horizontal, gran consistencia y alta disponibilidad. Está desarrollado y respaldado principalmente por PingCAP , Inc. y tiene licencia de Apache 2.0. TiDB se inspiró en el diseño inicial de los documentos Spanner y F1 de Google.

TiDB fue reconocido por InfoWorld 2018 Bossie Award como uno de los mejores software de código abierto para almacenamiento y análisis de datos.

Historia

Historia de la Compañía

PingCAP Inc., una empresa de software fundada en abril de 2015, comenzó a desarrollar TiDB después de su fundación. La empresa es el desarrollador, mantenedor y controlador principal de TiDB y sus comunidades de código abierto asociadas. PingCAP es una empresa respaldada por empresas de riesgo; anunció su financiación de la ronda Serie C de 50 millones de dólares en septiembre de 2018.

Historial de versiones

Consulte todas las notas de la versión de TiDB .

Principales características

Escalabilidad horizontal

TiDB puede ampliar tanto el procesamiento de SQL como la capacidad de almacenamiento agregando nuevos nodos. Esto hace que el escalado de la capacidad de la infraestructura sea más fácil y flexible en comparación con las bases de datos relacionales tradicionales que solo escalan verticalmente.

Compatibilidad con MySQL

TiDB actúa como si fuera un servidor MySQL 5.7 para aplicaciones. Un usuario puede seguir utilizando todas las bibliotecas cliente de MySQL existentes. Debido a que la capa de procesamiento SQL de TiDB está construida desde cero, no una bifurcación de MySQL, su compatibilidad no es del 100% y existen diferencias de comportamiento conocidas entre MySQL y TiDB.

Transacciones distribuidas con fuerte consistencia

TiDB fragmenta internamente una tabla en pequeños fragmentos basados ​​en rangos que se denominan "Regiones". Cada región tiene un tamaño predeterminado de aproximadamente 100 MB, y TiDB utiliza internamente un compromiso de dos fases para garantizar que las regiones se mantengan de una manera transaccionalmente coherente.

Nativo de la nube

TiDB está diseñado para funcionar en la nube para hacer que la implementación, el aprovisionamiento, las operaciones y el mantenimiento sean flexibles. La capa de almacenamiento de TiDB, llamada TiKV, se convirtió en un proyecto miembro de Cloud Native Computing Foundation (CNCF) en agosto de 2018, como un proyecto de nivel Sandbox, y se convirtió en un proyecto alojado a nivel de incubación en mayo de 2019. TiKV se graduó de CNCF en septiembre de 2020. La arquitectura de la plataforma TiDB también permite escalar el procesamiento y el almacenamiento de SQL de forma independiente.

HTAP en tiempo real

TiDB puede admitir cargas de trabajo de procesamiento de transacciones en línea ( OLTP ) y procesamiento analítico en línea ( OLAP ). TiDB tiene dos motores de almacenamiento: TiKV, un almacén de filas y TiFlash, un almacén de columnas. Los datos se pueden replicar de TiKV a TiFlash en tiempo real para garantizar que TiFlash procese los datos más recientes.

Alta disponibilidad

TiDB utiliza el algoritmo de consenso de Raft para garantizar que los datos estén altamente disponibles y se replican de forma segura en todo el almacenamiento en los grupos de Raft. En caso de falla, un grupo de balsa elegirá automáticamente un nuevo líder para el miembro fallado y auto-reparará el clúster de TiDB sin ninguna intervención manual requerida. Las operaciones de falla y autocuración son transparentes para las aplicaciones.

Métodos de implementación

Kubernetes con operador

TiDB se puede implementar en un entorno de nube habilitado para Kubernetes utilizando TiDB Operator. Un operador es un método para empaquetar, implementar y administrar una aplicación de Kubernetes. Está diseñado para ejecutar cargas de trabajo con estado y fue introducido por primera vez por CoreOS en 2016. TiDB operador fue desarrollado originalmente por PingCAP y abierto de fuentes en agosto de 2018. TiDB de mando sirve para desplegar TiDB en un ordenador portátil, Google Cloud Platform Google 's Kubernetes Engine y Elastic Container Service de Amazon Web Services para Kubernetes.

TiUP

TiDB 4.0 presenta TiUP , una herramienta de operación y mantenimiento de clústeres. Ayuda a los usuarios a instalar y configurar rápidamente un clúster de TiDB con unos pocos comandos.

TiDB Ansible

TiDB se puede implementar con Ansible mediante el uso de un libro de jugadas de TiDB Ansible (no recomendado).

Estibador

Docker se puede usar para implementar TiDB en un entorno en contenedores en múltiples nodos y múltiples máquinas, y Docker Compose se puede usar para implementar TiDB con un solo comando con fines de prueba.

Herramientas

TiDB tiene una serie de herramientas de código abierto creadas a su alrededor para ayudar con la replicación y migración de datos para los usuarios existentes de MySQL y MariaDB .

Migración de datos TiDB (DM)

La migración de datos TiDB (DM) es adecuada para replicar datos de tablas MySQL o MariaDB ya fragmentadas en TiDB. Un caso de uso común de DM es conectar tablas MySQL o MariaDB a TiDB, tratar a TiDB casi como un esclavo y luego ejecutar directamente cargas de trabajo analíticas en este clúster de TiDB casi en tiempo real.

Copia de seguridad de restauracion

Backup & Restore (BR) es una herramienta distribuida de copia de seguridad y restauración para datos de clúster TiDB. Ofrece altas velocidades de copia de seguridad y restauración para clústeres TiDB a gran escala.

Bola de masa hervida

Dumpling es una herramienta de exportación de datos que exporta datos almacenados en TiDB o MySQL. Permite a los usuarios realizar copias de seguridad lógicas completas o volcados completos desde TiDB o MySQL.

Rayo TiDB

TiDB Lightning es una herramienta que admite la importación completa de alta velocidad de un gran volcado de MySQL en un nuevo clúster de TiDB, lo que proporciona una experiencia de importación más rápida que la ejecución de cada declaración SQL. Esta herramienta se utiliza para completar rápidamente un clúster de TiDB inicialmente vacío con muchos datos, con el fin de acelerar las pruebas o la migración de producción. La mejora de la velocidad de importación se logra al analizar las declaraciones SQL en pares clave-valor, luego generar directamente archivos de tabla de cadenas ordenadas (SST) en RocksDB .

Binlog TiDB

TiDB Binlog es una herramienta que se utiliza para recopilar los cambios lógicos realizados en un clúster de TiDB. Se utiliza para proporcionar copia de seguridad y replicación incrementales, ya sea entre dos clústeres de TiDB o desde un clúster de TiDB a otra plataforma descendente.

Es similar en funcionalidad a la replicación primaria-secundaria de MySQL. La principal diferencia es que, dado que TiDB es una base de datos distribuida, el binlog generado por cada instancia de TiDB debe fusionarse y clasificarse de acuerdo con el momento de la confirmación de la transacción antes de consumirse en sentido descendente.

Estudios de caso

Actualmente, TiDB es utilizado por casi 1,000 empresas, incluidas PayPay , Shopee , BookMyShow , Xiaomi , Zhihu , Meituan-Dianping , iQiyi , Zhuan Zhuan , Mobike , Yiguo.com , VNG , JD Cloud and AI , NetEase Games y Yuanfudao.com .

Referencias