Consultar y analizar datos de Bigtable con BigQuery
BigQuery es un almacén de datos gestionado que puede ayudarte a consultar y analizar tus datos de Bigtable mediante consultas de SQL. BigQuery es útil para analistas de datos, ingenieros de datos, científicos de datos o cualquier persona que quiera usar datos de Bigtable para responder a preguntas empresariales.
BigQuery te permite consultar tus datos de Bigtable desde BigQuery. Esta función es útil cuando quieres combinar tus datos de Bigtable con tablas de BigQuery.
En este documento se ofrece una descripción general de cómo consultar datos de Bigtable con BigQuery. Antes de leer esta página, debe familiarizarse con la descripción general de Bigtable y la descripción general de BigQuery.
Usar BigQuery para consultar una tabla de Bigtable es ideal para las tablas que tienen las mismas familias de columnas y los mismos calificadores de columna en cada fila.
Creación de tablas externas
Antes de poder consultar tus datos de Bigtable, tú o un administrador de tu organización debéis crear una tabla externa, que es una tabla de BigQuery que contiene punteros de metadatos a tu tabla de Bigtable a la que envías tus consultas. Para obtener más información sobre las tablas externas, consulta el artículo Introducción a las fuentes de datos externas.
Debe crear la tabla externa en la misma región que la tabla de Bigtable. Por ejemplo, si la tabla está en una instancia que tiene clústeres en europe-central2-a
(Varsovia), europe-west1-c
(Bélgica) y asia-east1-a
(Tokio), debe crear la tabla externa en Varsovia, Bélgica o Tokio.
Configuraciones recomendadas
Te recomendamos que sigas estas prácticas recomendadas al crear tu tabla externa:
Para evitar que afecte al tráfico de servicio de tu aplicación, usa el servicio de computación sin servidor Data Boost cuando leas datos de Bigtable con tablas externas de BigQuery. Usar Data Boost es especialmente rentable para las consultas ad hoc. Para usar Data Boost, especifica el perfil de aplicación Data Boost al crear la definición de la tabla externa. Para obtener más información sobre Data Boost, consulta el resumen de Data Boost de Bigtable.
En la mayoría de los casos, cuando crees una tabla externa, asigna el valor true a
readRowkeyAsString
yignoreUnspecifiedColumnFamilies
.Cuando
ignoreUnspecifiedColumnFamilies
es true, al crear una definición de tabla que incluya solo algunas columnas de una familia de columnas, solo las columnas seleccionadas se promocionan como columnas en la tabla externa. Los datos de las columnas no seleccionadas se agrupan en una columna generalcolumn
.
Para crear una tabla externa, sigue las instrucciones que se indican en el artículo Crear una tabla externa de Bigtable.
Consultar datos en la tabla externa
Una vez que tenga una tabla externa para su tabla de Bigtable, podrá enviarle consultas de SQL mediante uno de los siguientes métodos:
- En la línea de comandos, con
bq
, la CLI de BigQuery - Llamadas a la API de BigQuery
- Cualquiera de las bibliotecas de cliente de BigQuery
Para saber cómo redactar y ejecutar una consulta, consulta Ejecutar una consulta. Para obtener instrucciones específicas de Bigtable, incluidos los permisos necesarios y ejemplos de código, consulta Consultar datos de Bigtable.
Consultas programadas
Las consultas programadas son útiles cuando quieres importar datos de Bigtable a BigQuery de forma periódica. También son útiles en casos prácticos que, de otro modo, requerirían que crearas un flujo de procesamiento de datos y transmitieras los datos a BigQuery. Para obtener instrucciones sobre cómo gestionar las consultas programadas, consulta el artículo Programar consultas.
Análisis de tabla completa
Si usas Data Boost para leer tus datos, no tienes que evitar escanear toda la tabla. Sin embargo, si usas nodos aprovisionados para el cálculo, sí. Al igual que cuando envías solicitudes de lectura directamente a tu tabla de Bigtable, cuando consultas la tabla externa de la tabla y no usas Data Boost, generalmente es mejor evitar los análisis completos de la tabla. Los análisis completos de tablas aumentan el uso de la CPU y tardan mucho más que las consultas selectivas. También requieren más rendimiento de BigQuery.
Si tu consulta implica todas las filas, se activará un análisis de tabla completo. Por otro lado, si limitas la consulta y solicitas un intervalo de filas o filas no contiguas específicas, no se analizará toda la tabla. A continuación se muestran algunos ejemplos de cómo limitar una consulta en sintaxis de GoogleSQL:
WHERE rowkey = "abc123"
WHERE rowkey BETWEEN "abc123" PRECEDING AND "abc999" FOLLOWING
WHERE rowkey > 999999
(si lees la clave de fila como una cadena)
Uniones
Si tiene previsto usar una combinación para analizar los datos de su tabla de Bigtable junto con los datos de otra fuente, debe crear una subconsulta que extraiga los campos relevantes de Bigtable para la combinación planificada. Para ver más prácticas recomendadas sobre cómo combinar tablas, consulta Optimizar las operaciones de computación de las consultas.
Costes
Cuando creas una tabla externa y la consultas, se te cobran los costes de BigQuery y el aumento del número de nodos de Bigtable necesarios para gestionar el tráfico. Como la tabla externa está en la misma región que la tabla de Bigtable, no se incurre en costes de red.
Si sueles ejecutar tus consultas durante el horario de oficina habitual, te recomendamos que habilites el autoescalado de Bigtable para que el número de nodos aumente cuando sea necesario y, después, disminuya cuando se completen los trabajos. El escalado automático también es una táctica eficaz si ejecutas consultas programadas que no tienen plazos fijos.
Otra forma de limitar los costes es evitar un análisis completo de la tabla.
Para obtener más información sobre la optimización de costes en BigQuery, consulta Estimar y controlar los costes.
Limitaciones
Se aplica la siguiente limitación:
- Los resultados de las consultas que contienen datos serializados con tipos anidados, como los formatos de búfer de protocolo (protobufs) y Avro, pueden mostrarse de forma incorrecta o ser difíciles de leer en la Google Cloud consola.
Siguientes pasos
- Consulta la diferencia entre las tablas externas y las consultas federadas.
- Crea una tabla externa de Bigtable.
- Consultar datos de Bigtable almacenados en una tabla externa.
- Exportar datos de BigQuery a Bigtable
- Crea una base de datos de analíticas en tiempo real con Bigtable y BigQuery