Descripción general de la interfaz de SQL de BI Engine

Acerca de la interfaz de SQL de BI Engine

BigQuery BI Engine es un servicio de análisis rápido en la memoria que permite a los usuarios analizar los datos almacenados en BigQuery con tiempos de respuesta de menos de un segundo y un alto grado de simultaneidad.

La interfaz de SQL de BI Engine expande BI Engine para integrarse en otras herramientas de inteligencia empresarial (IE), como Looker, Tableau, Power BI y aplicaciones personalizadas para acelerar la exploración y el análisis de datos. En esta página, se proporciona una descripción general de la interfaz de SQL BI Engine y de las capacidades expandidas que ofrece.

Aumenta el tamaño de la reserva

Si necesitas una reserva de memoria adicional superior al tamaño predeterminado de 250 GB, puedes solicitar un aumento. Los aumentos de reserva están disponibles en la mayoría de las regiones y pueden tardar de 3 días a una semana en procesarse.

Arquitectura de BI Engine

La interfaz de SQL de BI Engine se basa en la arquitectura de BI Engine existente para Google Data Studio. En el siguiente diagrama, se muestra la arquitectura actualizada para BI Engine:

Arquitectura de BI Engine

BI Engine es compatible con lo siguiente:

  1. API de BigQuery: BI Engine se integra directamente a la API de BigQuery. Cualquier solución BI o aplicación personalizada que funcione con la API de BigQuery a través de mecanismos estándar como los controladores REST o JDBC y ODBC puede usar BI Engine sin ningún cambio.
  2. Entorno de ejecución vectorizado: con la interfaz de SQL de BI Engine, BI Engine presenta una técnica más moderna llamada procesamiento vectorizado. Usar del procesamiento vectorizado en un motor de ejecución hace un uso más eficiente de la arquitectura de CPU moderna mediante la operación en lotes de datos a la vez. BI Engine también usa codificaciones de datos avanzadas, en especial la codificación de longitud de ejecución del diccionario, para comprimir aún más los datos que se almacenan en la capa en la memoria.
  3. Metadatos: Los metadatos almacenan las definiciones de tablas y vistas, la definición de esquema y los permisos específicos.
  4. Reservas: Las reservas de BI Engine administran la asignación de memoria a nivel de facturación del proyecto. BI Engine solo almacena en caché las columnas y particiones que se consultan o analizan. No se almacena en caché toda la tabla.
  5. Motor distribuido en memoria: BI Engine es un motor de ejecución distribuido en memoria, lo que permite a los clientes asignar reservas de memoria mucho más grandes.

Optimización y aceleración de consultas

BigQuery y, por extensión BI Engine, divide el plan de consulta que se produce para una consulta de SQL en subconsultas. Una subconsulta contiene una serie de operaciones, como el análisis, el filtrado o la agregación de datos y suele ser la unidad de ejecución de un fragmento.

Si bien la interfaz de SQL de BI Engine ejecuta correctamente todas las consultas en SQL compatibles con BigQuery, solo se optimizan ciertas subconsultas. En particular, la interfaz de SQL de BI Engine está más optimizada para subconsultas a nivel de hoja que analizan los datos desde el almacenamiento y realizan operaciones como filtros, procesamiento, agregación, orden y ciertos tipos de uniones. Otras subconsultas que aún no se aceleraron por completo de BI Engine vuelven a BigQuery para su ejecución.

Debido a esta optimización selectiva, la inteligencia empresarial más sencilla o las consultas de tipo de panel se benefician más de BI Engine (lo que da como resultado menos subconsultas) porque la mayor parte del tiempo de ejecución se dedica a las subconsultas a nivel de la hoja que procesa datos sin procesar.

Limitaciones

En la siguiente lista, se explica cómo y cuándo se acelera una consulta cuando usas BI Engine:

  • Dentro de las subconsultas a nivel de hoja, la aceleración se restringe a funciones y operadores de SQL estándar.
  • Las siguientes limitaciones se aplican al tamaño y a la cantidad de filas:
    • Las consultas simples que hacen referencia a una sola tabla (como las consultas GROUP-BY o FILTER) están limitadas por el tamaño de la reserva.
    • En el caso de las uniones, la aceleración se restringe a subconsultas a nivel de hoja con uniones INNER y LEFT OUTER, en las que una tabla grande (de hechos) se une con hasta cuatro tablas pequeñas y no particionadas (dimensión), cada una con hasta 5 millones de filas o 5 GB de tamaño para las columnas a las que se hace referencia.
  • Las consultas que hacen referencia a las tablas comodín no son compatibles.

Supervisión y diagnóstico

En esta sección, se explica cómo encontrar estadísticas sobre BI Engine y cómo BI Engine se integra en Cloud Monitoring.

Estadísticas de aceleración

Las estadísticas detalladas sobre BI Engine están disponibles a través de la API de estadísticas del trabajo. Puedes usar la herramienta de línea de comandos de bq para recuperar estadísticas asociadas con consultas aceleradas de BI Engine.

Con la aceleración de BI Engine habilitada, puedes ejecutar una consulta en cualquiera de estos tres modos:


DISABLED
BI Engine inhabilitó la aceleración. biEngineReasons especifica un motivo más detallado. La consulta se ejecutó con el motor de ejecución de BigQuery.

PARTIAL
Parte de la consulta se aceleró mediante BI Engine. Como se describe en Optimización y aceleración de consultas, un plan de consultas suele dividirse en varias subconsultas. BI Engine admite los tipos comunes de patrones de subconsulta que se suelen usar en los paneles. Si la consulta consta de varias subconsultas, solo algunas de las cuales se incluyen en los casos de uso compatibles, BI Engine ejecuta las subconsultas restantes mediante el motor de BigQuery normal. Esas subconsultas restantes no reciben la aceleración de BI Engine. En esta situación, BI Engine muestra un código de aceleración PARTIAL y usa biEngineReasons para propagar el motivo por el que no se aceleran otras subconsultas.

 FULL
 
Toda la consulta se aceleró mediante BI Engine.

Para recuperar las estadísticas asociadas con las consultas aceleradas de BI Engine, ejecuta el siguiente comando de la herramienta de línea de comandos de bq:

bq show --format=prettyjson -j job_id

Si el proyecto está habilitado para la aceleración de BI Engine, el resultado produce un nuevo campo, biEngineStatistics. A continuación, se muestra un informe de trabajo de muestra:

 "statistics": {
    "creationTime": "1602175128902",
    "endTime": "1602175130700",
    "query": {
      "biEngineStatistics": {
        "biEngineMode": "DISABLED",
        "biEngineReasons": [
          {
            "code": "UNSUPPORTED_SQL_TEXT",
            "message": "Detected unsupported join type"
          }
        ]
      },

Para obtener más información sobre el campo BiEngineStatistics, consulta la referencia de trabajos.

Estadísticas de aceleración en INFORMATION_SCHEMA

Las estadísticas de aceleración de BI Engine se pueden consultar como parte de las vistas INFORMATION_SCHEMA.JOBS_BY_* a través de la columna bi_engine_statistics. Por ejemplo, esta consulta muestra bi_engine_statistics para todos los trabajos de tus proyectos en las últimas 24 horas:

select creation_time, job_id, bi_engine_statistics
from `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
where creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
  and job_type = "QUERY"

Usa el siguiente formato a fin de especificar la regionalidad para project-id, region y views en la vista INFORMATION_SCHEMA:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW

Cloud Monitoring

BI Engine se integra en Cloud Monitoring a fin de mostrar las métricas clave para fines de supervisión y alertas. Estas son las métricas que se supervisan:

Tipo de recurso Nombre de la métrica Descripción
Proyecto Bytes totales de la reserva Capacidad total asignada dentro de un proyecto de Cloud.
Proyecto Bytes de reserva usados Capacidad total usada dentro de un proyecto de Cloud

Precios

Los precios de BI Engine se describen en la página de precios de BI Engine.

Regiones admitidas

Al igual que BigQuery, BI Engine es un recurso regional y multirregional. BI Engine procesa tus datos en la misma región donde se encuentran dentro de BigQuery. La interfaz de SQL de BigQuery BI Engine es compatible con las mismas regiones que BigQuery. Para obtener más información sobre las ubicaciones regionales de BigQuery, consulta Ubicaciones de conjuntos de datos de BigQuery.