Mudar a captura de dados no MySQL
na minha base de dados, quero seguir o valor de uma coluna sempre que esta for alterada .de uma forma que cada vez que o valor de um campo muda, possamos saber qual era o valor anterior .seria fantástico atribuir datas a cada alteração.Estou a usar o MySQL como servidor de base de dados.
5 answers
Para fazer isso você precisa criar um gatilho, que é um evento que é disparado quando um {[[0]} ocorre em uma dada tabela.
Veja a documentação paracriar TRIGGER .
Para o que você quer fazer, você provavelmente precisa ter uma tabela auxiliar que tenha uma linha inserida para cada INSERT/UPDATE
na tabela principal, AFTER
isso acontece contendo o ID da linha alterado, o valor antigo o novo valor e uma data.
Para começar, depois de o instalar, haverá um produto chamado Sybase Central que terá de abrir. Quando isto abrir, haverá um assistente que irá guiá-lo através da configuração do MobiLink contra a sua base de dados MySQL. Eu acho que há uma passagem na ajuda que é instalado se você ficar preso, mas eu não tenho acesso a ele agora para verificar.
Depois de ter executado o assistente, ele terá configurado a sua base de dados MySQL para Alteração captura de dados. Se você olhar para o seu banco de dados, Você também terá todos os gatilhos e mudar as colunas de rastreamento que você alguma vez precisaria.
Espero que isso ajude....Gatilhos nem sempre são a melhor maneira de gravar eventos de mudança na base de dados. Como gatilhos podem ser invalidados uma vez que o esquema da tabela muda, e que por sua vez causaria a operação da tabela real para falhar.
Para o mysql, é necessário capturar os eventos de alteração do ficheiro de Registo binário. O Mysql fornece a API para ler o registo binário ( versão post 5.6).
Você também pode querer ver Flexviews , que fornece à Oracle registos de visualização materializados para registar a alteração evento.
Criei uma ferramenta chamada cdc_audit que automatiza a criação de tabelas de auditoria no mysql para qualquer ou todas as tabelas, e até preserva gatilhos pré-existentes. Eu escrevi-o com a captura de dados de mudança (para aplicações de data warehouse ETL) em mente. Talvez tu ou alguém o achem útil.
Eu também blogei sobre isso .
Características
- automatiza a elaboração de quadros de auditoria
- automatiza a geração de gatilhos para preencher a auditoria quadros
- automatiza a sincronização de novas linhas nas tabelas de auditoria para .ficheiros csv.
- lê mysql information_schema para determinar automaticamente tabelas e Colunas.
- pode gerar tabelas + gatilhos para todas as tabelas de bases de dados, ou uma lista especificada.
- pode sincronizar as tabelas de auditoria para todas as tabelas de bases de dados, ou uma lista especificada.
- mantém a lógica de activação pré-existente, se existir, ao gerar depois de accionadores.
- sincronizar a opção do programa para apagar toda a última linha de auditoria, para mantenha a base de dados pequena.
Eu recomendo que você dê uma olhada em Debezium uma plataforma CDC de código aberto que, entre outros, também suporta MySQL.
Você pode usar o Debezium para transmitir as alterações para o Apache Kafka, mas através do seu modo incorporado Você também pode usar os conectores de Debezium como uma biblioteca nas suas aplicações Java e propagar facilmente as alterações de dados para outras APIs streaming, como a Kinesis, etc.
Eu sou o líder do projecto Debezium.