El conector de Google BigQuery
Este conector se puede registrar en el Catálogo de datos de Glue como un catálogo federado. Admite los controles de acceso a los datos definidos en Lake Formation a nivel de catálogo, base de datos, tabla, columna, fila y etiqueta. Este conector utiliza Conexiones de Glue para centralizar las propiedades de configuración en Glue.
Requisitos previos
Implemente el conector en su Cuenta de AWS mediante la consola de Athena o AWS Serverless Application Repository. Para obtener más información, consulte Cómo crear una conexión de origen de datos o Uso del AWS Serverless Application Repository para implementar un conector de origen de datos.
Limitaciones
-
Las funciones de Lambda tienen un valor máximo de tiempo de espera de 15 minutos. Cada división ejecuta una consulta en BigQuery y debe finalizar con tiempo suficiente para almacenar los resultados para que Athena los lea. Si se agota el tiempo de espera de la función de Lambda, se produce un error en la consulta.
-
Google BigQuery distingue entre mayúsculas y minúsculas. El conector intenta corregir las mayúsculas y las minúsculas de los nombres del conjunto de datos, de las tablas y de los id. de proyectos. Esto es necesario porque Athena pone en minúsculas todos los metadatos. Estas correcciones hacen muchas llamadas adicionales a Google BigQuery.
-
Los tipos de datos binarios no son compatibles.
-
Debido a los límites de cuota y simultaneidad de Google BigQuery, el conector puede encontrar problemas con los límites de cuota de Google. Para evitar estos problemas, aplique tantas restricciones a Google BigQuery como sea posible. Para obtener información sobre cuotas de BigQuery, consulte Cuotas y límites
en la documentación de Google BigQuery.
Parámetros
Utilice los parámetros de esta sección para configurar el conector Google BigQuery.
Le recomendamos configurar un conector de Google BigQuery mediante un objeto de conexiones de Glue. Para ello, establezca la variable de entorno glue_connection
del conector Lambda de Google BigQuery con el nombre de la conexión Glue que se va a utilizar.
Propiedades de las conexiones de Glue
Utilice el siguiente comando para obtener el esquema de un objeto de conexión de Glue. Este esquema contiene todos los parámetros que puede utilizar para controlar su conexión.
aws glue describe-connection-type --connection-type BIGQUERY
Propiedades del entorno de Lambda
glue_connection: especifica el nombre de la conexión Glue asociada al conector federado.
Divisiones y vistas
Como el conector de BigQuery usa la API de lectura de almacenamiento de BigQuery para consultar tablas y la API de almacenamiento de BigQuery no admite vistas, el conector usa el cliente de BigQuery con una sola división de vistas.
Rendimiento
Para consultar las tablas, el conector de BigQuery usa la API de lectura de almacenamiento de BigQuery, que utiliza un protocolo basado en RPC que proporciona un acceso rápido al almacenamiento administrado por BigQuery. Para obtener más información sobre la API de lectura de almacenamiento de BigQuery, consulte Cómo usar la API de lectura de almacenamiento de BigQuery para leer datos de tablas
La selección de un subconjunto de columnas acelera significativamente el tiempo de ejecución de las consultas y reduce la cantidad de datos analizados. El conector está sujeto a errores de consulta a medida que aumenta la simultaneidad y, por lo general, es un conector lento.
El conector de Google BigQuery de Athena inserta predicados para reducir los datos analizados en la consulta. Las cláusulas LIMIT
, las cláusulas ORDER BY
, los predicados simples y las expresiones complejas se insertan en el conector para reducir la cantidad de datos analizados y disminuir el tiempo de ejecución de las consultas.
Cláusulas LIMIT
Una instrucción LIMIT N
reduce los datos analizados en la consulta. Con la inserción LIMIT N
, el conector devuelve solo las filas N
a Athena.
Consultas N principales
Una consulta N
principal especifica el orden del conjunto de resultados y un límite en la cantidad de filas devueltas. Puede usar este tipo de consulta para determinar los valores N
principales máximos o N
principales mínimos de sus conjuntos de datos. Con la inserción N
principal, el conector devuelve solo las filas N
ordenadas a Athena.
Predicados
Un predicado es una expresión de la cláusula WHERE
de una consulta SQL que da como resultado un valor booleano y filtra las filas en función de varias condiciones. El conector de Google BigQuery de Athena puede combinar estas expresiones e insertarlas directamente en Google BigQuery para mejorar la funcionalidad y reducir la cantidad de datos analizados.
Los siguientes operadores del conector de Google BigQuery de Athena admiten la inserción de predicados:
-
Booleano: AND, OR, NOT.
-
Igualdad: EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_DISTINCT_FROM, NULL_IF, IS_NULL.
-
Aritmética: ADD, SUBTRACT, MULTIPLY, DIVIDE, MODULUS, NEGATE.
-
Otros: LIKE_PATTERN, IN.
Ejemplo de inserción combinada
Para mejorar las capacidades de consulta, combine los tipos de inserciones, como en el siguiente ejemplo:
SELECT *
FROM my_table
WHERE col_a > 10
AND ((col_a + col_b) > (col_c % col_d))
AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%')
ORDER BY col_a DESC
LIMIT 10;
Consultas de acceso directo
El conector de Google BigQuery admite consultas de acceso directo. Las consultas de acceso directo utilizan una función de tabla para enviar la consulta completa al origen de datos para su ejecución.
Para utilizar las consultas de acceso directo con Google BigQuery, puede usar la siguiente sintaxis:
SELECT * FROM TABLE(
system.query(
query => 'query string
'
))
El siguiente ejemplo de consulta envía una consulta a un origen de datos de Google BigQuery. La consulta selecciona todas las columnas de la tabla customer
y limita los resultados a 10.
SELECT * FROM TABLE(
system.query(
query => 'SELECT * FROM customer LIMIT 10'
))
Información sobre licencias
El proyecto del conector de Google BigQuery de Amazon Athena se licencia en virtud de la Licencia Apache-2.0
Al usar este conector, reconoce la inclusión de componentes de terceros, cuya lista se puede encontrar en el archivo pom.xml
Recursos adicionales
Para obtener más información acerca de este conector, consulte el sitio correspondiente