Consulta y analiza datos de Bigtable con BigQuery
BigQuery es un almacén de datos administrado que puede ayudarte a consultar y y a analizar los datos de Bigtable con consultas en SQL. BigQuery es útil para analistas y ingenieros de datos, científicos o cualquiera que quiera usar datos de Bigtable para responder 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 estar familiarizado con lo siguiente: el Descripción general de Bigtable y Descripción general de BigQuery
Lo ideal es usar BigQuery para consultar una tabla de Bigtable para tablas que tienen las mismas familias de columnas y calificadores de columna en cada fila.
Creación de tablas externas
Antes de poder consultar tus datos de Bigtable, tú (o un administrador) tu organización, debe crear un Tabla externa, que es una tabla de BigQuery que contiene metadatos punteros a la tabla de Bigtable a la que envías las 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 se encuentra 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 configurar readRowkeyAsString
y
ignoreUnspecifiedColumnFamilies
como true.
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 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 API de BigQuery
- Cualquiera de los 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 quieres importar Bigtable datos 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 transmitir los datos a BigQuery. Para obtener instrucciones sobre la administración las consultas programadas, puedes consultar Programa consultas.
Evita los análisis completos de tablas
Es similar a cuando envías solicitudes de lectura directamente a Bigtable. cuando consultas la tabla externa por una tabla, por lo general, debes evitar los análisis completos de tablas. Los análisis completos de la tabla aumentan el uso de CPU y toman considerablemente más largas que las 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. Ejemplos en La sintaxis de GoogleSQL para limitar la consulta incluye lo siguiente:
WHERE rowkey = "abc123"
WHERE rowkey BETWEEN "abc123" PRECEDING AND "abc999" FOLLOWING
WHERE rowkey > 999999
(si lees la clave de fila como una string)
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. Ajuste de escala automático también es una táctica eficaz si ejecutas consultas programadas que no tienen los plazos de entrega.
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 para 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.
- Crear una tabla externa de Bigtable
- Consulta los datos de Bigtable almacenados en una tabla externa.
- Exporta datos de BigQuery a Bigtable.