Athrun Data Intelligence


Como describimos en este Entrada de weblogLa función top-k utiliza información de tiempo de ejecución (es decir, el contenido precise de los elementos top-k) para omitir las microparticiones en las que podemos garantizar que no contribuirán al resultado basic. Ahorramos bastantes operaciones de entrada/salida (E/S) y mejoramos el rendimiento de las consultas de forma bastante significativa. Con nuestras optimizaciones recientes agregadas a top-k, logramos reducir aún más la cantidad de E/S, lo que mejoró el rendimiento de las consultas de forma bastante significativa.

Diferencia arquitectónica: Si bien nuestra primera versión aún requería una E/S por partición para recuperar los metadatos de la partición y luego decidir si se puede omitir, ahora top-k utiliza la capa de metadatos avanzada de Snowflake para incorporar metadatos relevantes directamente en la consulta en sí y, por lo tanto, no requiere E/S adicionales al decidir si se omiten las particiones. El beneficio de esto se puede ver especialmente en tablas grandes: digamos que tenemos una tabla con 1 millón de particiones agrupadas por una columna de marca de tiempo. Ejecutamos una consulta con una marca de tiempo ORDER BY LIMIT 10 en la tabla. Anteriormente, esto requeriría al menos un millón de E/S, más las E/S de las particiones que realmente necesitamos escanear, para construir el resultado. Ahora, solo necesitamos un puñado de E/S para las particiones que realmente necesitamos cargar.

Perspectiva algorítmica: Desde una perspectiva algorítmica, implementamos una forma de procesar particiones en un orden inteligente, lo que cut back aún más la cantidad de E/S. Antes de que Snowflake comience a ejecutar la consulta, observamos los metadatos de las particiones para determinar si es possible que el contenido de una partición determinada termine en el resultado remaining. Snowflake comienza a procesar esas particiones primero. Esto implica que los primeros ok elementos que vemos después de iniciar la consulta ya son algunas de las filas más grandes/más pequeñas, que probablemente también terminarán en el resultado remaining. Al combinar esto con la técnica de omisión descrita en la Entrada de weblog de junio de 2023Podemos omitir incluso más particiones en comparación con un orden aleatorio de escaneo de particiones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *