Consulta y analiza datos de Bigtable con BigQuery
BigQuery es un almacén de datos administrado que puede ayudarte a consultar y analizar tus datos de Bigtable con consultas de SQL. BigQuery es útil para analistas de datos, ingenieros de datos, científicos de datos o cualquier persona que quiera usar los datos de Bigtable para responder preguntas comerciales.
BigQuery te permite consultar tus datos de Bigtable desde BigQuery. Esta función es útil cuando deseas unir tus datos de Bigtable a las tablas de BigQuery.
En este documento, se proporciona una descripción general de la consulta de datos de Bigtable con BigQuery. Antes de leer esta página, debes familiarizarte 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 calificadores de columnas en cada fila.
Creación de tablas externas
Antes de consultar tus datos de Bigtable, tú o un administrador de tu organización deben crear una tabla externa, que es una tabla de BigQuery que contiene punteros de metadatos a la tabla de Bigtable a la que envías tus consultas. Para obtener más información sobre las tablas externas, consulta Introducción a las fuentes de datos externas.
Debes crear la tabla externa en la misma región que la
tabla de Bigtable. Esto significa, por ejemplo, que 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), debes crear la tabla externa en Varsovia, Bélgica o Tokio.
En la mayoría de los casos, cuando creas una tabla externa, debes establecer readRowkeyAsString
y ignoreUnspecifiedColumnFamilies
como verdadero.
Cuando ignoreUnspecifiedColumnFamilies
es verdadero, cuando creas una definición de tabla que solo incluye algunas columnas en 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 column
general.
Para crear tu tabla externa, sigue las instrucciones que se indican en Crea una tabla externa de Bigtable.
Consulta datos en la tabla externa
Una vez que tengas una tabla externa para tu tabla de Bigtable, podrás enviarle consultas SQL con 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 cliente de BigQuery
Si deseas obtener información para redactar y ejecutar una consulta, consulta Ejecuta una consulta. Si deseas obtener instrucciones específicas de Bigtable, incluidos los permisos necesarios y las muestras de código, consulta Cómo consultar datos de Bigtable.
Consultas programadas
Las consultas programadas son útiles cuando deseas importar datos de Bigtable a BigQuery de forma recurrente. También son útiles para casos de uso que, de otro modo, podrían requerir que crees una canalización de datos y transmitas los datos a BigQuery. Para obtener instrucciones sobre cómo administrar consultas programadas, consulta Programa consultas.
Evita los análisis completos de tablas
Al igual que cuando envías solicitudes de lectura directamente a tu tabla de Bigtable, cuando consultas la tabla externa, por lo general, quieres evitar los análisis completos de la tabla. Los análisis de tablas completos aumentan el uso de la CPU y tardan mucho más que las consultas selectivas. También requieren más capacidad de procesamiento de BigQuery.
Si tu consulta incluye todas las filas, se activa un análisis completo de la tabla. Por otro lado, si limitas la consulta y solicitas un rango de filas o filas no contiguas especificadas, no se analiza toda la tabla. Estos son algunos ejemplos en la sintaxis de GoogleSQL para limitar la consulta:
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 planeas usar una unión para analizar los datos de tu tabla de Bigtable junto con los datos de otra fuente, debes crear una subconsulta que extraiga los campos relevantes de Bigtable para la unión planificada. Para conocer más prácticas recomendadas para unir tablas, consulta Optimiza el procesamiento de consultas.
Costos
Cuando creas una tabla externa y la consultas, se te cobran los costos de BigQuery y un aumento en la cantidad de nodos de Bigtable necesarios para controlar el tráfico. Debido a que tu tabla externa se encuentra en la misma región que tu tabla de Bigtable, no se incurren en costos de red.
Si sueles ejecutar tus consultas durante el horario comercial habitual, considera habilitar el ajuste de escala automático de Bigtable para que la cantidad de nodos aumente cuando sea necesario y, luego, disminuya cuando se completen las tareas. El ajuste de escala automático también es una táctica eficaz si ejecutas consultas programadas que no tienen plazos fijos.
Otra forma de limitar los costos es evitar un análisis completo de la tabla.
Si deseas obtener más información sobre la optimización de costos de BigQuery, consulta Estima y controla los costos.
Limitaciones
Se aplica la siguiente limitación:
- No puedes usar BigQuery para consultar los datos de Bigtable almacenados en formato JSON.
- Es posible que los resultados de las consultas que contienen datos serializados con tipos anidados, como búferes de protocolo (protobufs) y formatos Avro, no se rendericen correctamente o sean difíciles de leer en la consola de Google Cloud.
¿Qué sigue?
- Descubre la diferencia entre las tablas externas y las búsquedas federadas.
- Crea una tabla externa de Bigtable.
- Consulta los datos de Bigtable almacenados en una tabla externa.
- Exporta datos de BigQuery a Bigtable.