Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2025-05-22 GMT+08:00

Qué es HTAP of Standard Edition

Hybrid Transactional and Analytical Processing (HTAP) es una arquitectura de datos que gestiona cargas de trabajo de procesamiento transaccional en línea (OLTP) y de procesamiento analítico en línea (OLAP).

Utiliza el motor de almacenamiento basado en columnas y datos múltiples de instrucción única (SIMD) para la computación en paralelo. En escenarios de análisis de datos masivos, el análisis HTAP proporcionado por TaurusDB lo libera de tener que mantener la extracción de datos y los enlaces de sincronización de forma independiente. Reduce los costos de gestión de datos y proporciona un análisis de datos simple y eficiente en tiempo real.

HTAP de Standard Edition se desarrolla sobre la base del StarRocks de código abierto.

Arquitectura del producto

Las instancias de HTAP se despliegan en ECS y utilizan SSD extremos o discos de E/S ultraalta.

Puede habilitar binlog para la instancia de TaurusDB para sincronizar datos y operaciones con instancias de HTAP. Las operaciones sincronizadas incluyen la inserción de tablas, la eliminación de tablas y el cambio de estructuras de tablas. Después de sincronizar los datos con una instancia de HTAP, puede acceder a la instancia de HTAP con su dirección IP privada para el análisis de datos.

Una instancia HTAP de la edición estándar proporciona nodos frontend (FE) y backend (BE). Los nodos FE gestionan metadatos, gestionan conexiones de clientes y planifican y programan consultas. Cada nodo FE almacena y mantiene una copia de respaldo de metadatos completo en la memoria para garantizar la uniformidad de los datos entre los nodos FE. Los nodos BE se utilizan para el almacenamiento de datos y el cómputo SQL.

Figura 1 Arquitectura del producto

Existen tres roles para los nodos FE.

Figura 2 Roles de nodo FE

  • Los nodos de fe-leader leen y escriben metadatos. Los nodos fe-follower y fe-observer solo pueden leer metadatos y enrutamiento escribir solicitudes de metadatos a los nodos fe-leader. Los nodos de fe-leader actualizan los metadatos y sincronizan los cambios de metadatos con los nodos de fe-follower y fe-observer.
  • Los nodos fe-follower solo pueden leer metadatos.
  • Los nodos fe-observer sincronizan y reproducen los registros de los nodos fe-leader para actualizar los metadatos. Los nodos fe-observer se utilizan para aumentar la simultaneidad de consultas de un clúster.

Características principales

  • Arquitectura de procesamiento paralelo masivo (MPP)

    Se utilizan varios nodos para ejecutar consultas en paralelo.

  • Alto rendimiento

    Soporta motores vectorizados y optimizadores CBO y destaca en consultas para tablas grandes y amplias y operaciones de unión de múltiples tablas.

  • SQL estándar

    Las sentencias de consulta cumplen con el estándar SQL-92.

  • Compresión de datos para almacenamiento

    El almacenamiento basado en columnas y la compresión de datos reducen en gran medida los costos de almacenamiento para cualquier conjunto de condiciones.

  • Agregación de múltiples fuentes de datos

    Los datos de varias bases de datos de TaurusDB se pueden sincronizar con una instancia HTAP determinada.

Restricciones

HTAP de Standard Edition solo está disponible en las siguientes regiones:

  • AP-Singapore
  • AF-Johannesburg

Facturación

Para obtener más información, véase Conceptos facturados de instancia de HTAP.

Precauciones

  • Cuando se consultan datos en una instancia de HTAP, la comparación de cadenas de caracteres y los nombres de bases de datos, tablas, vistas, usuarios y roles distinguen entre mayúsculas y minúsculas, pero los nombres de columnas y particiones no distinguen entre mayúsculas y minúsculas.
  • Una tabla de claves duplicadas se utiliza cuando las tablas sin claves principales de una instancia de TaurusDB se sincronizan con una instancia de HTAP.
  • Algunas sentencias DDL ejecutadas en instancias de TaurusDB no se pueden sincronizar con instancias de HTAP, lo que puede causar errores de sincronización o incoherencias de datos.

    Las sentencias DDL que se pueden sincronizar y no se pueden sincronizar son las siguientes:

    • Sentencias DDL que se pueden sincronizar
      Tabla 1 Sentencias DDL que se pueden sincronizar

      Nombre de DDL

      Ejemplo de SQL

      Creación de una tabla

      CREATE TABLE tbl_name (c_id int not null, c_d_id integer not null, primary key (c_id));

      Borrar una tabla

      DROP TABLE tbl_name;

      Cambiar el nombre de una tabla

      RENAME TABLE tbl_name to new_tbl_name;

      ALTER TABLE tbl_name RENAME TO new_tbl_name;

      Borrar datos de tabla

      TRUNCATE TABLE tbl_name;

      Alterar comentarios de tabla

      ALTER TABLE tbl_name COMMENT='test';

      Agregar una columna (columna de clave no principal)

      ALTER TABLE tbl_name ADD c_varchar varchar(2000) AFTER c_tinytext;

      Eliminar una columna (columna de clave no principal)

      ALTER TABLE tbl_name DROP c_vchar;

      Cambiar el tipo y la secuencia de una columna (columna de clave no principal)

      ALTER TABLE tbl_name CHANGE c_vchar c_vchar varchar(2000) default 'test' AFTER c_tinytext;

      ATENCIÓN:

      El nombre de la columna y el valor predeterminado no se pueden cambiar.

      ALTER TABLE tbl_name MODIFY c_vchar varchar(2100) default 'test' AFTER c_tinytext;

      ATENCIÓN:

      El valor predeterminado no se puede cambiar.

      Creación de una consulta

      CREATE VIEW view_name as select * from tbl_name;

      Borrar una vista

      DROP VIEW view_name;

      Alterar una vista

      ALTER VIEW view_name AS select * from tbl_name;

    • Sentencias DDL que no se pueden sincronizar

      Después de una tarea de sincronización de base de datos, solo se pueden sincronizar tablas y datos. No se pueden sincronizar las operaciones de bases de datos, funciones, procedimientos almacenados, activadores, particiones (operaciones DELETE), claves principales (operaciones INSERT/DELETE/ALTER), transacciones, usuarios, roles, privilegios y eventos.

      Tabla 2 enumera las operaciones relacionadas con tablas particionadas que no se pueden sincronizar

      Tabla 2 Operaciones relacionadas con tablas particionadas que no se pueden sincronizar

      Nombre de DDL

      Ejemplo de SQL

      Analizar una partición de tabla

      ALTER TABLE {db}.tp ANALYZE PARTITION p0;

      Comprobar una partición de tabla

      ALTER TABLE {db}.tp CHECK PARTITION p0;

      Optimizar una partición de tabla

      ALTER TABLE {db}.tp OPTIMIZE PARTITION p0;

      Reconstruir una partición de tabla

      ALTER TABLE {db}.tp REBUILD PARTITION p0;

      Reparar una partición de tabla

      ALTER TABLE {db}.tp REPAIR PARTITION p0;

      Creación de una base de datos

      CREATE DATABASE ddl_test_2;

      Modificar un formato de fila

      ALTER TABLE tbl_name ROW_FORMAT = row_format;

      Establecer estadísticas de tablas persistentes

      ALTER TABLE tbl_name STATS_PERSISTENT=0, STATS_SAMPLE_PAGES=20,STATS_AUTO_RECALC=1, ALGORITHM=INPLACE, LOCK=NONE;

      Establecer un juego de caracteres de tabla

      ALTER TABLE tbl_name CHARACTER SET = charset_name;

      Conversión de un juego de caracteres de tabla

      ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

      Reconstruir una tabla sin datos

      ALTER TABLE tbl_name ENGINE=InnoDB;

      Agregar una partición de tabla

      ALTER TABLE {db}.tp ADD PARTITION (PARTITION p3 VALUES LESS THAN (2006) );

      Establecer el juego de caracteres predeterminado y las reglas de verificación para una tabla

      ALTER TABLE tbl_name DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;

      Las instrucciones de creación de tabla no pueden contener opciones CHECK o de tabla.

      Durante la sincronización de datos, las operaciones de Tabla 3 pueden causar incoherencia de datos entre las instancias HTAP y las instancias de TaurusDB. Deberías evitar estas operaciones.

      No afectan a la consulta y el análisis de datos en instancias HTAP.

      Tabla 3 Operaciones DDL que provocan incoherencia de datos

      Nombre de DDL

      Ejemplo de SQL

      Eliminar una clave principal

      ALTER TABLE tbl_name DROP PRIMARY KEY;

      Agregar una clave principal

      ALTER TABLE {db}.t1 ADD PRIMARY KEY (id);

      Agregar y eliminar una clave principal

      ALTER TABLE tbl_name DROP PRIMARY KEY, ADD PRIMARY KEY (column);

      Establecer una clave principal en NULL

      ALTER TABLE tbl_name MODIFY COLUMN key_column_name data_type;

      Cambiar el tipo de una clave principal

      ALTER TABLE tbl_name MODIFY COLUMN key_column_name data_type not null;

      Agregar una columna

      NOTA:

      Se pueden agregar columnas comunes. Si las columnas contienen los siguientes valores predeterminados, no se pueden agregar.

      • Funciones, cadenas de caracteres e identificadores que no se pueden encontrar en instancias de HTAP

      ALTER TABLE tbl_name ADD COLUMN column_name column_definition

      c VARCHAR(10) DEFAULT (CONCAT('1', '2'));

      Establecer el valor predeterminado de una columna

      NOTA:

      Si las columnas contienen los siguientes valores predeterminados, no se pueden restablecer los valores predeterminados de las columnas.

      • Funciones, cadenas de caracteres e identificadores que no se pueden encontrar en instancias de HTAP

      ALTER TABLE tbl_name ALTER COLUMN col SET DEFAULT literal;

      Cambiar NULL en las tablas a NOT NULL

      ALTER TABLE tbl_name MODIFY COLUMN column_name data_type NOT NULL;

      Cambiar el nombre y el tipo de columna al mismo tiempo

      ALTER TABLE t1 CHANGE b b1 VARCHAR(100);

      Cambiar el nombre de una columna

      ALTER TABLE t1 RENAME COLUMN a TO b;

      Crear una tabla sin una clave principal

      ALTER TABLE t1 ADD COLUMN (c2 INT GENERATED ALWAYS AS (c1 + 1)STORED);

      Adición de una columna derivada STORED

      ALTER TABLE {db}.t1 ADD COLUMN (st2 INT GENERATED ALWAYS AS (c2 + 2)STORED), ALGORITHM=COPY;

      Adición de una columna derivada VIRTUAL

      ALTER TABLE t1 ADD COLUMN (c2 INT GENERATED ALWAYS AS (c1 + 1)VIRTUAL);

      Borrar una partición de tabla

      ALTER TABLE {db}.tp DROP PARTITION p4;

      Descartar una partición de tabla

      ALTER TABLE {db}.tp DISCARD PARTITION p2 TABLESPACE;

      Importar una partición de tabla

      ALTER TABLE {db}.tp IMPORT PARTITION p2 TABLESPACE;

      Truncar una partición de tabla

      ALTER TABLE {db}.tp TRUNCATE PARTITION p2;

      Truncar una tabla particionada

      TRUNCATE {db}.tp;

      Combinar particiones de tabla

      ALTER TABLE {db}.tp_hash COALESCE PARTITION 2;

      Reorganizar particiones de tabla

      ALTER TABLE {db}.tp REORGANIZE PARTITION p0,p1,p2,p3 INTO ( ... );

      Intercambiar particiones de tabla

      ALTER TABLE {db}.tp EXCHANGE PARTITION p0 WITH TABLE {db}.tp2;

      Quitar una partición de tabla

      ALTER TABLE {db}.tp REMOVE PARTITIONING;

      Uso de una cláusula REPLACE

      CREATE OR REPLACE TABLE;

      Cambio de nombre de una vista

      RENAME TABLE old_view_name TO new_view_name;

      Tabla 4 Operaciones DDL que se han ignorado durante la sincronización (sin impacto)

      Nombre de DDL

      Ejemplo de SQL

      Agregar un índice

      ALTER TABLE tbl_name ADD INDEX name;

      Cambio de nombre de un índice

      ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_index_name;

      Borrar un índice

      DROP INDEX name ON table;

      Agregar un índice de texto completo

      Nombre CREATE FULLTEXT INDEX ON table(columna);

      Agregar un índice espacial

      ALTER TABLE geom ADD SPATIAL INDEX(g);

      Modificación del tipo de un índice

      ALTER TABLE tbl_name DROP INDEX i1, ADD INDEX i1(key_part,...) USING BTREE;

      Agregar una restricción de índice

      ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE USING BTREE (column);

      ALTER TABLE tbl_name ADD CONSTRAINT UNIQUE USING HASH(column);

      Optimizar una tabla

      OPTIMIZE TABLE tbl_name;

      Regeneración de una tabla mediante la opción FORCE

      ALTER TABLE tbl_name FORCE;

      Cambio de nombre de un tablespace

      ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name;

      Agregar una clave externa

      ALTER TABLE tbl1 ADD CONSTRAINT fk_name FOREIGN KEY index (col1)REFERENCES tbl2(col2) referential_actions;

      Eliminar una clave externa

      ALTER TABLE tbl DROP FOREIGN KEY fk_name;

  • Los nombres de las bases de datos y tablas que se van a sincronizar no pueden contener caracteres chinos.
  • Para mejorar el rendimiento, puede utilizar los siguientes métodos para optimizar las consultas:
    • Simplifique las sentencias SQL reduciendo los cálculos no válidos, eliminando los campos no utilizados y evitando SELECT.
    • En lugar de consultar todas las columnas, elimine las que no sean necesarias.
  • Las tablas que se van a sincronizar utilizan el motor OLAP y el modelo de clave principal de forma predeterminada.
  • Estas son las descripciones y restricciones de la sincronización de vistas:
    • Por defecto, las vistas no están sincronizadas. Para sincronizarlos, debe configurar sync_view en true al crear una tarea de sincronización.
    • Al seleccionar una vista de sincronización, el nombre de la base de datos de origen debe ser el mismo que el nombre de la base de datos de destino.
    • Algunas sentencias DDL relacionadas con vistas no se pueden sincronizar, por ejemplo, la sentencia rename table utilizada para cambiar el nombre de una vista.
    • Una vista entre bases de datos puede no sincronizarse si las bases de datos dependientes no están sincronizadas.
    • Si en una vista se utiliza una función o sintaxis que no son compatibles con las instancias de HTAP, la vista no se puede sincronizar.
    • Si una vista no se puede sincronizar, puede crearla manualmente en una instancia HTAP después de rectificar el error.
    • Cuando la sincronización de la vista falla, se reportan alarmas e información de error. Puede conectarse a una instancia de HTAP y ejecutar show sync job para ver SyncErrViews (vistas que no se pudieron sincronizar) y SyncErrMsg (información detallada de errores). Para borrar alarmas e información de errores, ejecute alter sync synchronization_task_name setting "SyncErrMsg" = "", "SyncErrViews"="";
    • Los errores de sincronización de vista no afectan a la sincronización de datos de tabla.
    • La versión del núcleo de su instancia de TaurusDB debe ser 2.0.57.240900 o posterior.
  • Después de conectarse a una instancia HTAP estándar, ejecute el siguiente comando para ver las bases de datos sincronizadas de TaurusDB a la instancia HTAP estándar y el estado de sincronización.
    Como este comando consulta la información binlog de TaurusDB puede consumir la cuota de consulta por hora. Se recomienda ejecutar este comando como máximo una vez por minuto.
    show sync job;