Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Infra] Version 2.0.0b16 #1678

Merged
merged 219 commits into from
May 2, 2024
Merged

[Infra] Version 2.0.0b16 #1678

merged 219 commits into from
May 2, 2024

Conversation

d116626
Copy link
Member

@d116626 d116626 commented Aug 30, 2023

Version 2.0.0b16 - Release Changelog

Added

  • Now divided the package into four extras for easier installation:
    • pip install basedosdados: Installs the core package.
    • pip install basedosdados[upload]: Installs modules for interacting with the backend.
    • pip install basedosdados[avro]: Installs modules for working with Avro.
    • pip install basedosdados[cli]: Installs modules for using the command-line interface.
    • pip install basedosdados[all]: Installs all modules.
  • Added suport to biglake tables
  • Added connection_id property to external data configuration.
  • Implemented automatic management of BigQuery connection.
  • Added service_account property to Connection.
  • Introduced backend class for handling interaction with GraphQL.
  • Added support for CSV delimiter customization with csv_delimiter
  • Added new parameter csv_skip_leading_rows and csv_allow_jagged_rows for handling CSV parsing.
  • Add new scopes to credentials: drive and bigquery

Fixed

  • Fixed datatype issues by adding connection ID for external configuration.
  • Improved error handling and optional setting of BigQuery permissions.

Changed

  • Refactored dependency management for improved performance.
  • Cleaned up code and linting issues.

Removed

  • Removed unnecessary dependencies and compressed R package.

Deprecated

  • Deprecated usage of YAML dependency from metadata handling.
  • CLI suport to upload methods

To-do

  • Tests
  • Docs
  • Revisar testes que usam YAML
  • melhorar descrição do dataset e table, incluindo mais metadados
  • descontinuar CLI?
  • remover referencias a pasta templates
  • Adicionar original_name para modelo columns?
  • Como triggrar actions para atualizar a tabela project_id.dataset_id.table_id que ja existe em dev? talvez branch name? Criar arquivo com esses parametros e last_update, talvez usar esse last_update para tambem criar mutation que atualiza esse campo na API. https://miro.com/app/board/uXjVMfYoD1I=/
  • Revisar as menções a YAML em basedosdados/cli/cli.py
  • Remover o método _load_yaml em basedosdados/upload/base.py
  • Revisar a construção da URL do GraphQL no Base.__init__ em basedosdados/upload/base.py
  • Revisar o conteúdo do README no Dataset._write_readme_file (basedosdados/upload/dataset.py)
  • Implementar Metadata.create e remover try/except do Dataset.init (basedosdados/upload/dataset.py)
  • Revisar Table._load_schema, Table._make_publish_sql, Table.init, Table.publish (basedosdados/upload/table.py)
  • Descontinuar Table.update_columns (basedosdados/upload/table.py)?
  • Descontinuar update_columns (basedosdados/upload/utils.py)?

Mapeamento dos YAML no pacote

  1. Config
    • 1. Alterar o template do config.toml
    • 2. Alterar os templates da configuração
    • 3. Alterar, se necessário, o processo de inicialização
  2. Dataset
    • 1. init: cria um objeto Metadata em self.metadata
    • 2. dataset_config: carrega os metadados do yaml
    • 3. _setup_dataset_object: atualizar a descrição (.txt) para o bigquery
    • 4. _write_readme_file: gera o [README.md](http://README.md)
    • 5. init: cria ou substitui o arquivo yaml do dataset
  3. Table
    • 1. init: cria um objeto Metadata em self.metadata
    • 2. table_config: carrega os metadados do yaml
    • 3. _is_partitioned: verifica se a tabela é particionada pelos dados do yaml (campos de particionamento)
    • 4. _load_schema: gera o json do schema da tabela e envia para o BQ
    • 5. _make_publish_sql: cria o arquivo publish.sql baseado no yaml e salva na pasta da tabela
    • 6. _make_template: cria o arquivo yaml e o publish.sql
    • 7. update_columns: carrega os metadados do arquivo yaml, lê a planilha de arquitetura (google sheets ou arquivo csv, xls, xlsx, xlsm, xlsb, odf, ods, odt), insere em cols e salva o arquivo yaml com as colunas
    • 8. init: gera os arquivos de configuração (table_config.yaml e publish.sql) com base em um sample dos arquivos de dados e, caso exista uma planilha de arquitetura, atualiza as colunas com base nela
    • 9. create: cria a tabela no BQ e chama o init para gerar os arquivos de configuração
    • 10. update: atualiza o schema do BQ, usando os metadados para renderizar o arquivo .txt de descrição da tabela
    • 11. publish: cria a tabela em produção no BQ, usando o publish.sql para criar a view atual.
  4. Base
    • 1. _load_yaml: método responsável por carregar os dados dos arquivos yaml

Workflow

  • Table.create

    • staging
      • publish.sql: usa dados do csv para criar a view em que todas as colunas são string
      • schema-staging.json: td como string
  • Se tabela n existe na API

    • raise: direciona para formulário de criação de metadados
  • Se tabela já existe,

    • Usa dados da API para preencher os arquivos necessários
      • atualiza publish.sql
      • atualiza schema-staging.json
      • cria schema-prod.json
      • cria table_description.txt

lucascr91 and others added 30 commits November 3, 2022 16:57
@d116626 d116626 mentioned this pull request Aug 30, 2023
36 tasks
@d116626 d116626 self-assigned this Sep 6, 2023
@d116626 d116626 changed the title [Infra] Version 2.0.0b13 [Infra] Version 2.0.0b14 Sep 12, 2023
@d116626 d116626 changed the title [Infra] Version 2.0.0b14 [Infra] Version 2.0.0b15 Oct 3, 2023
@rdahis rdahis added the enhancement New feature or request label Nov 8, 2023
@d116626 d116626 changed the title [Infra] Version 2.0.0b15 [Infra] Version 2.0.0b16 Apr 2, 2024
@vncsna vncsna merged commit 246943c into master May 2, 2024
1 check passed
@vncsna vncsna deleted the v2.0.0 branch May 2, 2024 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Concluído
Development

Successfully merging this pull request may close these issues.

None yet

7 participants