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:

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?