Skip to main content

Toolkit para consultas e manipulação de dados no BigQuery com integração com DuckDB.

Project description

bigquery_duckdb_toolkit

bigquery_duckdb_toolkit é um pacote Python desenvolvido para facilitar o carregamento de dados do BigQuery e a execução de consultas SQL flexíveis no DuckDB. Ele permite carregar dados de qualquer tabela do BigQuery em um DataFrame pandas e realizar análises avançadas no DuckDB, sendo ideal para workflows de analytics engineering.

Instalação

Para instalar a partir do PyPI, execute:

pip install bigquery_duckdb_toolkit

Estrutura do Pacote

bigquery_duckdb_toolkit/
├── bigquery_duckdb_toolkit/
│   ├── __init__.py
│   ├── bigquery_client.py
│   ├── bigquery_to_pandas.py
│   └── interaction_service.py
├── setup.py
├── requirements.txt
└── README.md

Módulos Principais

  • BigQueryClient: Estabelece uma conexão com o BigQuery e executa consultas SQL.
  • BigQueryToPandas: Carrega dados do BigQuery em um DataFrame pandas e aplica filtros e conversões de tipo.
  • InteractionService: Carrega dados de qualquer tabela do BigQuery, registra-os no DuckDB e executa consultas SQL personalizadas.

Exemplo de Uso

Neste exemplo, usaremos o conjunto de dados público bigquery-public-data.samples.natality, que contém dados de natalidade nos Estados Unidos. Vamos carregar dados para um DataFrame pandas, registrá-los no DuckDB e realizar uma consulta personalizada.

from bigquery_duckdb_toolkit.interaction_service import InteractionService

# Configurações
project_id = 'bigquery-public-data'
table_name = 'bigquery-public-data.samples.natality'

# Inicialize o serviço de interação
interaction_service = InteractionService(project_id)

# Carregue os dados do BigQuery com um filtro flexível e registre-os no DuckDB
filters = {"year": "2000", "state": "CA"}  # Exemplo de filtro para registros de 2000 na Califórnia
df = interaction_service.load_data_to_duckdb(table_name, filters, duckdb_table_name='natality')

# Execute uma consulta personalizada no DuckDB
# Exemplo: Contar o número de nascimentos por mês na Califórnia em 2000
query = """
  SELECT month, COUNT(*) AS births_count
  FROM natality
  GROUP BY month
  ORDER BY births_count DESC
"""
result_df = interaction_service.run_duckdb_query(query)

# Exibir os resultados
interaction_service.display_query_results(query)

API do Pacote

InteractionService

  • load_data_to_duckdb(table_name, filters=None, duckdb_table_name='temp_table'): Carrega dados de uma tabela BigQuery em um DataFrame pandas com filtros opcionais e registra-o como uma tabela no DuckDB.

    • Parâmetros:

      • table_name (str): Nome da tabela BigQuery no formato project.dataset.table.
      • filters (dict, opcional): Dicionário com filtros para aplicar à consulta. Exemplo: {"coluna": "valor"}.
      • duckdb_table_name (str, opcional): Nome para registrar a tabela no DuckDB (padrão: 'temp_table').
    • Retorno: pd.DataFrame com os dados filtrados.

  • run_duckdb_query(query): Executa uma consulta SQL no DuckDB e retorna os resultados em um DataFrame pandas.

    • Parâmetros:

      • query (str): Consulta SQL a ser executada.
    • Retorno: pd.DataFrame com os resultados da consulta.

  • display_query_results(query): Executa uma consulta SQL no DuckDB e exibe os resultados, útil para visualização em notebooks.

    • Parâmetros:
      • query (str): Consulta SQL a ser executada.

Contribuindo

Contribuições são bem-vindas! Abra issues e pull requests conforme necessário. Para contribuições maiores, entre em contato para discutir as mudanças propostas.

Licença

Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bigquery_duckdb_toolkit-1.0.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bigquery_duckdb_toolkit-1.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file bigquery_duckdb_toolkit-1.0.0.tar.gz.

File metadata

  • Download URL: bigquery_duckdb_toolkit-1.0.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bigquery_duckdb_toolkit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 230a21e09270ef909ba6cb956461976e2216379d2fc41bf761f693e2312fefef
MD5 b2e00980bb07f9f8be05ed9b39f69087
BLAKE2b-256 47c73780a3fcbc4f36320908c0f429cfba2e1a105423b9b30aaa1f538ba98aee

See more details on using hashes here.

File details

Details for the file bigquery_duckdb_toolkit-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bigquery_duckdb_toolkit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc703f1c7165d6dcfdd695f0b6aa263246ac1ed4c4dcc576e674264cba08c124
MD5 c867dd8c20c385d110515a0c7f3f37a5
BLAKE2b-256 67dc936db78b49513941242a3a39200f41cab937e1459b98bfbf556c0f8c155b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page