Saltar a contenido

bigquery

app.contrib.gcp.bigquery

Módulo de Python para Google Cloud BigQuery.

Para más información, te recomendamos leer la documentación del Proyecto.

BigQuery

Genera una instancia con métodos sencillos para el manejo de BigQuery.

Attributes:

Name Type Description
_bq_client Optional[Any]

donde almacenar la instancia de google.cloud.bigquery

_project Optional[Any]

donde almacenar el nombre del proyecto (se extrae de self._bq_client)

Warning

esta clase:

  • se encuentra en revisión, puede cambiar en el futuro.
  • se necesitan más pruebas y ejemplos.

Raises:

Type Description
DefaultCredentialsError

en caso de que no se especifique credentials y la biblioteca no pueda adquirir las credenciales predeterminadas

DefaultException

excepciones para el manejo de errores personalizados

Examples:

1
2
3
4
from app.contrib.gcp.bigquery import BigQuery

...
bq = BigQuery()

__init__()

Constructor de la clase BigQuery

list_datasets()

Obtiene la lista de Datasets del proyecto.

Returns:

Type Description
Optional[list[str]]

una lista con la información de los Datasets ó None en caso de error

Examples:

...
self.list_datasets()

get_dataset(dataset_id)

Obtiene la información de un Dataset.

Parameters:

Name Type Description Default
dataset_id str

el nombre del Dataset

required

Returns:

Type Description
Optional[dict[str, Any]]

un diccionario con la información del Dataset ó None en caso de error

Examples:

...
self.get_dataset()

delete_table(dataset_id, table_id)

Elimina una tabla de un Dataset.

Parameters:

Name Type Description Default
dataset_id str

El nombre del Dataset

required
table_id str

El nombre de la tabla

required
Notes

Utilice con precaución, esta opción no se puede deshacer.

  • Debido a que el cliente delete_table de BigQuery, no devuelve estado de la operación, este método siempre se devolverá None.

Examples:

...
self.delete_table()

send_query(query, location='US')

Realiza una consulta a una tabla.

Parameters:

Name Type Description Default
query str

description

required
location Optional[str]

description. Defaults to "US".

'US'

Returns:

Type Description
Any

el resultado de la consulta

Examples:

...
self.send_query()

send_query_nocache(query, location='US')

Realiza una consulta a una tabla, sin realizar caché de los resultados.

Parameters:

Name Type Description Default
query str

description

required
location Optional[str]

description. Defaults to "US".

'US'

Returns:

Type Description
Any

el resultado de la consulta

Examples:

...
self.send_query_nocache()

send_legacy_query(query)

Realiza una consulta a una tabla (en modo legacy)

Parameters:

Name Type Description Default
query _type_

description

required
Notes
  • este método se encuentra obsoleto y se desaconseja su uso.
  • utilice el método send_query en su lugar.
  • será eliminado en futuras versiones.

Returns:

Name Type Description
_type_ None

description

Examples:

...
self.send_legacy_query()

insert_json(dataset, table, rows_to_insert)

Inserta filas en una tabla sin aplicar conversiones de tipo local.

Parameters:

Name Type Description Default
dataset str

el nombre del dataset

required
table str

el nombre de la tabla

required
rows_to_insert list[dict]

un array de objetos con la información a almacenar

required
Notes
  • BigQuery solicita que los datos a insertar sean un array de objetos aunque sea un solo registro.
  • BigQuery rechazará la solicitud de inserción que superen un límite definido (10 MB).
  • Si la data a enviar supera ampliamente este límite, la solicitud es rechazada por la arquitectura intermedia, que devuelve un código de estado 413 (Payload Too Large).

Returns:

Type Description

la cantidad de registros guardados ó None en caso de error

Examples:

...
self.insert_json("dataset_id", "table_id", [data_to_save]))