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 los analistas, ingenieros y científicos de datos, o cualquier persona que desee 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 que puedas 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 tu 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. 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), debes crear la tabla externa en Varsovia, Bélgica o Tokio.
Parámetros de configuración recomendados
Te recomendamos que sigas estas prácticas recomendadas cuando crees tu tabla externa:
Para evitar afectar el tráfico de servicio de tu aplicación, usa la computación sin servidores de Data Boost cuando leas datos de Bigtable con tablas externas de BigQuery. El uso de Data Boost es especialmente rentable para las consultas ad hoc. Para usar Data Boost, especifica el perfil de app de Data Boost cuando crees la definición de la tabla externa. Para obtener más información sobre Data Boost, consulta la descripción general de Bigtable Data Boost.
En la mayoría de los casos, cuando creas una tabla externa, configura
readRowkeyAsString
yignoreUnspecifiedColumnFamilies
como verdadero.Cuando
ignoreUnspecifiedColumnFamilies
es verdadero, cuando creas una definición de tabla que incluye solo algunas columnas en una familia de columnas, solo las columnas seleccionadas se promueven como columnas en la tabla externa. Los datos de las columnas no seleccionadas se agrupan en una columna generalcolumn
.
Para crear tu tabla externa, sigue las instrucciones en Crea una tabla externa de Bigtable.
Consulta datos en la tabla externa
Después de crear una tabla externa para tu tabla de Bigtable, puedes 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
Para aprender a redactar y ejecutar una consulta, consulta Ejecuta una consulta. Si deseas obtener instrucciones específicas para Bigtable, incluidos los permisos necesarios y las muestras de código, consulta Consulta 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 los 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.
Análisis completos de tablas
Si usas Data Boost para leer tus datos, no es necesario que evites escanear toda la tabla. Sin embargo, si usas nodos aprovisionados para el procesamiento, sí debes hacerlo. De manera similar a cuando envías solicitudes de lectura directamente a tu tabla de Bigtable, cuando consultas la tabla externa para la tabla y no usas Data Boost, generalmente debes evitar los análisis completos de la tabla. Los análisis de tablas completos aumentan el uso de CPU y tardan mucho más que las consultas selectivas. También requieren más capacidad de procesamiento de BigQuery.
Si tu consulta involucra 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 el aumento en la cantidad de nodos de Bigtable que se requieren para controlar el tráfico. Dado que tu tabla externa se encuentra en la misma región que tu tabla de Bigtable, no se generan 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 los trabajos. El ajuste de escala automático también es una táctica eficaz si ejecutas consultas programadas que no tienen plazos firmes.
Otra forma de limitar los costos es evitar un análisis completo de la tabla.
Si deseas obtener más información para optimizar los costos de BigQuery, consulta Cómo estimar y controlar los costos.
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 (protobuf) y Avro, podrían renderizarse de forma incorrecta o ser difíciles de leer en la consola de Google Cloud .
¿Qué sigue?
- Conoce la diferencia entre las tablas externas y las consultas federadas.
- Crea una tabla externa de Bigtable.
- Consulta datos de Bigtable almacenados en una tabla externa.
- Exporta datos de BigQuery a Bigtable.
- Crea una base de datos de analítica en tiempo real con Bigtable y BigQuery