Eu tenho uma tabela no banco de dados do snowflake que é atualizada por um flat file que é atualizado a cada quinze dias; Sempre que os dados são atualizados nesse flat file ele sobrescreve as informações anteriores e assim não temos histórico dos dados que estavam no banco antes da ultima atualização, isso esta causando uma dor de cabeça por que sempre que ocorre algum erro não temos como voltar para o resultado anterior e o flat file tem que ser refeito por algum analista.
As configurações do banco de dados foram feitas em Sql, enquanto o esquema que rodam para jogar as informações do flat file para a tabela do banco esta em python.
Eu acabei de chegar a essa área e herdei essa criança e tenho pensado em como resolve-lo e criar uma nova tabela que não sobrescreva mas sim empilhe as informações, porem existe uma grande pegadinha nesse processo, esse flat file é atualizado muitas vezes até que ele chegue a sua "versão final" que é utilizada para o fechamento, esse fechamento que não acontece sempre no mesmo dia. Para que o histórico seja confiável ele não pode empilhar os dados toda vez que atualizarmos, apenas quando realmente for fechado.
Vocês conseguem me ajudar? O que devo fazer? Criar um fluxo com algum trigger? mudar a forma que o flat file é alimentado?
Me ajudem a enxergar algum caminho para resolver o que foi criado antes da minha chegada
Bom dia a todos, pode parecer um erro comum, porém não encontrei ainda a solução, o que acontece, preciso unir 4 tabelas, até aí tudo tranquila, porém das 4 pode acontecer de unir somente duas, isto porque posso ter ou não um item ou dois, tipo - tenho as tabelas atividade - tarefa - cliente e trabalho, quando cadastro uma atividade eu cadastro a tarefa em conjunto, porém não necessariamente o cliente e ou trabalho, a princípio não estou conseguindo pq o rec_cli e ou rec_proc podem estar vazio. não estou sabendo como fazer, se teria que colocar mais duas tabelas e novos select.
segue como esta.
<?php
$usuid=$_SESSION['UsuarioID'];
$consulta = $pdo->query("SELECT rec.rec_id, rec.rec_id_de, rec.rec_para, rec.rec_cli, rec.rec_proc, rec.rec_data, rec.rec_ass, rec.rec_tar, rec.rec_text,
cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep, taref.idpar, taref.tarefa FROM rec
LEFT JOIN prof ON prof.idp=rec.rec_id_para
LEFT JOIN taref ON taref.idtar = rec.rec_tar
LEFT JOIN cli ON cli.idc = rec.rec_cli
LEFT JOIN proc.idpr = rec.rec_proc
WHERE rec.rec_id_de = $usuid ORDER BY rec.rec_id DESC");
while ($user = $consulta->fetch(PDO::FETCH_ASSOC)) {
$idtar = $user['idtar'];
$tarefa = $user['tarefa'];
$nomep = $user['nomep'];
$rec_data = $user['rec_data'];
$rec_tar = $user['rec_tar'];
$rec_text = $user['rec_text'];
$rec_id = $user['rec_id'];
$rec_ass = $user['rec_ass'];
$proces = $user['proces'];
$nomec = $user['nomec'];
?>
espero que tenham entendido.
Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack MERN (MongoDB, Express, React e Node).
A questão não é só performance, mas sim poder modernização pois o projeto irá se expandir precisa ser melhor escalável e a STACK será todo refeita, como disse acima, será usada MERN.
Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack MERN (MongoDB, Express, React e Node)
Boa tarde, preciso fazer uma busca por um ou mais itens, consigo fazer a busca pelo mês e ano, porém se eu quiser colocar tb a pessoa e mais uma condição não esta dando certo.
<?php
$mes=(int)$_POST['mes'];
$ano=(int)$_POST['ano'];
$idp=(int)$_POST['idp'];
$pagoparc=$_POST['pagoparc'];
$consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv,
parcelas.valorpago, parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp,
prof.nomep FROM parcelas LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid
LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano
AND parcelas.proadv LIKE '%$idp%' AND parcelas.pagoparc LIKE '%$pagoparc%' ORDER BY parcelas.idpar ASC");
while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) {
?>
desta forma retorna todos os resultados independente do mês e ano
<?php
$mes=(int)$_POST['mes'];
$ano=(int)$_POST['ano'];
$idp=(int)$_POST['idp'];
$pagoparc=$_POST['pagoparc'];
$consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv, parcelas.valorpago,
parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces,
prof.idp, prof.nomep FROM parcelas
LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid
LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano
AND parcelas.proadv = $idp AND parcelas.pagoparc = $pagoparc ORDER BY parcelas.idpar ASC");
while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) {
?>
já desta forma me retorna este erro :
Fatal error: Call to a member function fetch() on a non-object in
lembro que nesta busca posso ter ou não o idp e ou pagoparc
Oi gente,
Eu tenho uma tabela no banco de dados do snowflake que é atualizada por um flat file que é atualizado a cada quinze dias; Sempre que os dados são atualizados nesse flat file ele sobrescreve as informações anteriores e assim não temos histórico dos dados que estavam no banco antes da ultima atualização, isso esta causando uma dor de cabeça por que sempre que ocorre algum erro não temos como voltar para o resultado anterior e o flat file tem que ser refeito por algum analista.
As configurações do banco de dados foram feitas em Sql, enquanto o esquema que rodam para jogar as informações do flat file para a tabela do banco esta em python.
Eu acabei de chegar a essa área e herdei essa criança e tenho pensado em como resolve-lo e criar uma nova tabela que não sobrescreva mas sim empilhe as informações, porem existe uma grande pegadinha nesse processo, esse flat file é atualizado muitas vezes até que ele chegue a sua "versão final" que é utilizada para o fechamento, esse fechamento que não acontece sempre no mesmo dia. Para que o histórico seja confiável ele não pode empilhar os dados toda vez que atualizarmos, apenas quando realmente for fechado.
Vocês conseguem me ajudar? O que devo fazer? Criar um fluxo com algum trigger? mudar a forma que o flat file é alimentado?
Me ajudem a enxergar algum caminho para resolver o que foi criado antes da minha chegada
Desde já agradeço,
Um beijo e um queijo.
Ju
Share this post
Link to post
Share on other sites