Descripción de NDP
Near Data Processing (NDP) es una solución informática de pushdown para mejorar la eficiencia de las consultas de datos. Para consultas intensivas en datos, las operaciones como la extracción de columnas, el cálculo de agregación y el filtrado de condiciones se envían a múltiples nodos en una capa de almacenamiento distribuida para su ejecución en paralelo. Esto reduce la presión de procesamiento de consultas en los nodos informáticos, mejora las capacidades de procesamiento paralelo y ahorra tráfico de red.
Arquitectura
GaussDB(for MySQL) utiliza una arquitectura con almacenamiento y cómputo desacoplados para reducir el tráfico de red. Basado en esta arquitectura, NDP se utiliza para acelerar las consultas de datos. Sin NDP, todos los datos sin procesar necesitan ser transmitidos desde los nodos de almacenamiento a los nodos de computación para el procesamiento de consultas. NDP llevó las tareas de consulta más intensivas de E/S e intensivas en CPU a los nodos de almacenamiento. Solo las columnas requeridas y las filas filtradas o los resultados agregados se envían de vuelta a los nodos de cómputo, lo que reduce en gran medida el tráfico de red. Además, el procesamiento paralelo entre nodos de almacenamiento reduce el uso de CPU de los nodos informáticos y mejora la eficiencia de la consulta.
NDP está integrado con consulta paralela. Las páginas por lotes se obtienen previamente para realizar todo el proceso en paralelo. La eficiencia de ejecución de consultas se mejora considerablemente.
Escenarios de aplicación
En términos de funciones, NDP es adecuado para los siguientes escenarios:
- Projection
Poda de columnas: Solo los campos requeridos por una sentencia de consulta se envían al nodo de cómputo.
- Aggregate
Las operaciones de agregación típicas incluyen COUNT, SUM, AVG, MAX, MIN y GROUP BY. Solo los resultados agregados (no todas las tuplas) se envían al motor de consultas. COUNT (*) es el más común.
- SELECT - WHERE cláusula para filtrado
Las expresiones de condición comunes son COMPARE(>=,<=,<,>,==), BETWEEN, IN, AND/OR y LIKE.
Se ejecuta una expresión de filtro en los nodos de almacenamiento. Solo las filas que cumplen las condiciones se envían al nodo de cómputo.
Restricciones de aplicación
- Tablas de InnoDB.
- Tablas con filas en formato COMPACT o DYNAMIC.
- Claves primarias o índices de B-tree. Hash Index o Full-Text Index no son compatibles.
- Sentencias SELECT entre las sentencias DML. No se admiten las sentencias de INSERT INTO SELECT ni las sentencias SELECT que bloqueen filas (como SELECT FOR SHARE/UPDATE).
- Expresiones con tipos numéricos, de registro, de tiempo o de cadena parcial (CHAR y VARCHAR). Se admiten los conjuntos de caracteres utf8mb4 y utf8.
- Predicados de expresión con operadores de comparación (<,>,=,<=,>=,!=), IN, NOT IN, LIKE, NOT LIKE, BETWEEN AND, y AND/OR.
Descripción de parámetro
Parámetro |
Nivel |
Descripción |
---|---|---|
ndp_mode |
Global
NOTA:
|
Interruptor NDP. Valor: off o on Valor predeterminado: off |