¿Qué es BI Engine?
BigQuery BI Engine es un servicio de análisis en memoria de alta velocidad que acelera muchas consultas de SQL en BigQuery almacenando en caché de forma inteligente los datos que usas con más frecuencia. BI Engine puede acelerar las consultas SQL de cualquier fuente, incluidas las escritas por herramientas de visualización de datos, y puede gestionar tablas almacenadas en caché para optimizar el proceso de forma continua. De esta forma, puedes mejorar el rendimiento de las consultas sin tener que ajustar manualmente los datos ni clasificarlos por niveles. Puedes usar la agrupación en clústeres y la creación de particiones para optimizar aún más el rendimiento de las tablas grandes con BI Engine.
Por ejemplo, si tu panel de control solo muestra los datos del último trimestre, considera la posibilidad de particionar las tablas por tiempo para que solo se carguen en la memoria las particiones más recientes. También puedes combinar las ventajas de las vistas materializadas y BI Engine. Esto funciona especialmente bien cuando las vistas materializadas se usan para combinar y acoplar datos con el fin de optimizar su estructura para BI Engine.
BI Engine ofrece las siguientes ventajas:
- API de BigQuery: BI Engine se integra directamente con la API de BigQuery. Cualquier solución de BI o aplicación personalizada que funcione con la API de BigQuery mediante mecanismos estándar, como REST o los controladores JDBC y ODBC, puede usar BI Engine sin modificaciones.
- Tiempo de ejecución vectorizado: con BI Engine, BigQuery usa una técnica moderna llamada procesamiento vectorizado. El uso del procesamiento vectorizado en un motor de ejecución aprovecha de forma más eficiente la arquitectura de las CPUs modernas, ya que opera en lotes de datos a la vez. BI Engine también usa codificaciones de datos avanzadas, concretamente, codificación de diccionario y de longitud de racha, para comprimir aún más los datos almacenados en la capa en memoria.
- Integración perfecta: BI Engine funciona con las funciones y los metadatos de BigQuery, como las vistas autorizadas, la seguridad a nivel de columna y de fila, y el enmascaramiento de datos.
- Reservas: las reservas de BI Engine gestionan la asignación de memoria a nivel de ubicación del proyecto. BI Engine almacena en caché columnas o particiones específicas que se consultan, priorizando las de las tablas marcadas como preferidas.
Arquitectura de BI Engine
BI Engine se integra con cualquier herramienta de inteligencia empresarial (BI), como Looker, Tableau,Power BI y aplicaciones personalizadas, para acelerar la exploración y el análisis de datos.
Casos prácticos de BI Engine
BI Engine puede acelerar significativamente muchas consultas SQL, incluidas las que se usan en los paneles de control de BI. La aceleración es más eficaz si identificas las tablas que son esenciales para tus consultas y, a continuación, las marcas como tablas preferidas. Para usar BI Engine, crea una reserva que defina la capacidad de almacenamiento dedicada a BI Engine. Puedes dejar que BigQuery determine qué tablas se deben almacenar en caché en función de los patrones de uso del proyecto o puedes marcar tablas específicas para evitar que otro tráfico interfiera en la aceleración.
BI Engine es útil en los siguientes casos prácticos:
- Usas herramientas de BI para analizar tus datos: BI Engine puede acelerar las consultas de BigQuery independientemente de si se ejecutan en la consola de BigQuery, en una biblioteca de cliente o a través de una API o un conector ODBC o JDBC. Esto puede mejorar significativamente el rendimiento de los paneles de control conectados a BigQuery mediante una conexión integrada (API) o conectores.
- Tienes determinadas tablas que se consultan con más frecuencia: BI Engine te permite designar tablas preferidas específicas para acelerar el proceso. Esto resulta útil si tienes un subconjunto de tablas que se consultan con más frecuencia o que se usan en paneles de control de alta visibilidad.
Es posible que BI Engine no se adapte a tus necesidades en los siguientes casos:
Usas comodines en tus consultas: BI Engine no admite las consultas que hacen referencia a tablas comodín, por lo que no se benefician de la aceleración.
Dependes en gran medida de funciones de BigQuery no admitidas: aunque BI Engine admite la mayoría de las funciones y los operadores de SQL al conectar herramientas de inteligencia empresarial (BI) con BigQuery, hay funciones no admitidas, como tablas externas y funciones definidas por el usuario que no son de SQL.
Consideraciones sobre BI Engine
A la hora de decidir cómo configurar BI Engine, ten en cuenta lo siguiente:
Asegurar la aceleración de consultas específicas
Para asegurarse de que un conjunto de consultas concreto siempre se acelere, cree un proyecto independiente con una reserva de BI Engine. Para ello, debes asegurarte de que la reserva de BI Engine de ese proyecto sea lo suficientemente grande como para abarcar el tamaño de todas las tablas utilizadas en esas consultas y designar esas tablas como tablas preferidas para BI Engine. En ese proyecto solo se deben ejecutar las consultas que necesiten acelerarse.
Minimizar las uniones
BI Engine funciona mejor con datos precombinados o preagregados, y con datos en un número reducido de combinaciones. Esto ocurre sobre todo cuando uno de los lados de la combinación es grande y los demás son mucho más pequeños, como cuando se consulta una tabla de hechos grande combinada con una tabla de dimensiones pequeña. Puedes combinar BI Engine con vistas materializadas que realicen combinaciones para generar una única tabla grande y plana. De esta forma, no es necesario realizar las mismas combinaciones en cada consulta.
Conocer el impacto de BI Engine
Para saber cómo se benefician tus cargas de trabajo de BI Engine, puedes consultar las estadísticas de uso en Cloud Monitoring o consultar el INFORMATION_SCHEMA en BigQuery. Asegúrate de inhabilitar la opción Usar resultados almacenados en caché en BigQuery para obtener la comparación más precisa. Para obtener más información, consulta el artículo Usar resultados de consultas almacenados en caché.
Limitaciones
Las consultas que contienen la función VECTOR_SEARCH
no se aceleran con BigQuery BI Engine.
Cuotas y límites
Consulta las cuotas y los límites de BigQuery que se aplican a BI Engine.
Precios
Para obtener información sobre los precios de BI Engine, consulta la página Precios de BigQuery.
Optimización y aceleración de consultas
BigQuery, y por extensión BI Engine, desglosa el plan de consulta que se genera para una consulta de SQL en subconsultas. Una subconsulta contiene varias operaciones, como el análisis, el filtrado o la agregación de datos, y suele ser la unidad de ejecución de un fragmento.
Aunque BI Engine ejecuta correctamente todas las consultas de SQL compatibles con BigQuery, solo se optimizan determinadas subconsultas. En concreto, BI Engine está optimizado para las subconsultas de nivel hoja que analizan los datos del almacenamiento y realizan operaciones como filtros, cálculos, agregaciones, ordenaciones y determinados tipos de combinaciones. Otras subconsultas que aún no están totalmente aceleradas por BI Engine vuelven a BigQuery para ejecutarse.
Debido a esta optimización selectiva, las consultas de inteligencia empresarial más sencillas o de tipo panel de control son las que más se benefician de BI Engine (lo que da como resultado menos subconsultas), ya que la mayor parte del tiempo de ejecución se dedica a las subconsultas de nivel de hoja que procesan datos sin procesar.
Siguientes pasos
- Consulte información sobre las funciones optimizadas de BI Engine.
- Para saber cómo crear una reserva de BI Engine, consulta Reservar capacidad de BI Engine.
- Para obtener información sobre cómo designar tablas preferidas, consulta Tablas preferidas de BI Engine.
- Para saber cómo utilizas BI Engine, consulta Monitorizar BI Engine con Cloud Monitoring.