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.
Updated about 1 month ago