Como compartilhar informações entre pipelines

Quando você precisa compartilhar variáveis de ambiente ou configurações entre diferentes pipelines, o uso de bancos de dados como o SQLite ou arquivos de configuração é uma solução prática e eficiente. Essa abordagem é ideal para armazenar informações temporárias ou de pequeno porte, garantindo simplicidade e escalabilidade.

Compartilhando dados com banco de dados

O uso de bancos de dados leves (SQLite) é recomendado para configurações temporárias ou dados compartilhados entre etapas, o que reduz a dependência de variáveis.

Usando SQLite

  • O SQLite oferece flexibilidade aos usuários por permitir adicionar, modificar ou remover parâmetros sem alterações diretas nas pipelines; permite centralizar os dados compartilhados e torna-os acessiveis para múltiplas pipelines e; eficiência pois substitui o uso excessivo de variáveis de ambiente, evitando erros e limitações de tamanho.
import sqlite3

def save_parameters():
    conn = sqlite3.connect('shared_parameters.db')
    cursor = conn.cursor()

    cursor.execute('''
        CREATE TABLE IF NOT EXISTS parameters (
            key TEXT PRIMARY KEY,
            value TEXT
        )
    ''')

    parameters = [
        ("api_key", "123abc"),
        ("batch_size", "100"),
        ("threshold", "0.8")
    ]
    cursor.executemany('INSERT OR REPLACE INTO parameters (key, value) VALUES (?, ?)', parameters)
    conn.commit()
    conn.close()

save_parameters()
print("Parâmetros salvos com sucesso!")

Compartilhando configurações com arquivos

Se a persistência dos dados for simples, um arquivo de configuração (como JSON ou YAML) também pode ser utilizado. Ele é especialmente útil para valores que não mudam com frequência, como credenciais ou limites padrão.

Usando arquivo json

  • Arquivos de configuração JSON são simples, flexíveis e portáteis, pois permitem armazenar variáveis de ambiente de forma organizada e legível.
  • São ideais para configurações estáticas, pois não requerem infraestrutura adicional e podem ser facilmente versionados e compartilhados entre sistemas.
import json

# Salvando parâmetros em um arquivo JSON
with open('parameters.json', 'w') as f:
    json.dump({"api_key": "123abc", "batch_size": 100, "threshold": 0.8}, f)

# Carregando parâmetros do arquivo JSON
with open('parameters.json', 'r') as f:
    parameters = json.load(f)

print("Parâmetros carregados:", parameters)

Quando usar SQLite ou arquivos de configuração?

O uso do SQLite é ideal para casos em que múltiplas pipelines precisam acessar dados compartilhados e existe possibilidade de alterações dinâmicas nos parâmentros. Por outro lado, os arquivos de configuração são melhor empregados em configurações mais estáticas ou simples, que não são atualizados com frequência.