Ajuste de rendimiento
Configuración de parámetros de tarea de sincronización
- max_full_sync_task_threads_num: número de subprocesos de sincronización completa. Por defecto, se configura en la mitad de las vCPU en los nodos FE. Si se aumenta este valor, la sincronización completa será más rápida, pero se consumirán más vCPU y más memoria de OLTP y OLAP. Establezca un valor adecuado para este parámetro en función de la carga del sistema al ejecutar una tarea de sincronización completa. Si se ejecutan varias tareas de sincronización completa al mismo tiempo, disminuya este valor de parámetro.
- max_incremental_sync_task_threads_num: número de subprocesos de sincronización incremental. Por defecto, se configura en la mitad de las vCPU en los nodos FE. Un valor mayor indica que se utilizan más subprocesos para la sincronización incremental, se consumen más recursos y la latencia de sincronización es menor. Si hay más de cinco tareas de sincronización en una instancia, reduzca el número de subprocesos de sincronización para cada tarea.
- expect_tablet_size: tamaño esperado de los datos de origen almacenados en cada bucket en GB. El valor predeterminado es 3. Si la mayoría de las tablas de una base de datos tienen menos de 3 GB de datos, pero hay algunas tablas con una cantidad significativa de datos, disminuya este valor.
- expect_tablet_num_for_one_partition: número esperado por defecto de buckets en cada partición. Si este parámetro se establece en 0, el número de buckets se calcula según el tamaño de los datos. El valor predeterminado es 2. Si no hay datos en una tabla, se utilizará este valor predeterminado. Si hay datos en una tabla, el número de buckets se calcula de la siguiente manera: Tamaño de datos/Valor de expect_tablet_size. Si se especifica una clave de partición para la sincronización de tablas, debe evaluar el número de buckets necesarios para los datos en cada partición. El número de buckets para una tabla se calcula de la siguiente manera: Número de particiones x Número de buckets en cada partición.
Mejora del rendimiento de las consultas
- Consultar caché
La caché de consultas es adecuada para escenarios donde los datos se pueden categorizar como datos activos y datos fríos, y las consultas agregadas se ejecutan con frecuencia. Para habilitar la caché de consultas, utilice DAS para conectarse a la base de datos OLAP y ejecute SET GLOBAL enable_query_cache=true;
- Ordenar claves
Agregue criterios de filtro utilizados comúnmente a las claves de ordenación. El orden de las claves de clasificación debe determinarse en función de su frecuencia de uso y la cardinalidad de los datos, dándose prioridad a la alta cardinalidad. Se recomienda configurar no más de cinco claves de ordenación. Las claves de ordenación se utilizan ampliamente para ajustar el rendimiento de OLAP. Al crear una tarea de sincronización, puede utilizar la sincronización de tablas para definir las claves de ordenación.
- Particiones
Una columna de tiempo cuyo valor no cambia se utiliza a menudo para el filtrado WHERE. Utilice la columna para crear particiones. Al crear una tarea de sincronización, puede utilizar la sincronización de tablas para establecer particiones.
- Índices
Agregue índices a las columnas utilizadas para filtrar. Los índices de mapa de bits son adecuados para columnas con una cardinalidad de alrededor de 10,000 a 100,000. Los índices de filtro de Bloom son adecuados para columnas con una cardinalidad de más de 100,000. Una vez sincronizados los datos, puede conectarse a la base de datos OLAP con DAS y ejecutar comandos SQL para crear índices.
- Vistas materializadas
Si hay varias consultas de uso frecuente con diferentes criterios de filtro y las claves de ordenación solo se pueden adaptar a una consulta, cree una vista materializada para adaptarla a otras consultas. Después de sincronizar los datos, puede conectarse a la base de datos OLAP con DAS y ejecutar comandos SQL para crear vistas materializadas.