Rafael Zorzanello
CWI Software
Published in
3 min readJun 10, 2019

--

SSIS — SQL Server Integration Services — Pacote integrando base PostgreSQL

Primeiramente, o que é e para que serve o SQL Server Integration Services (SSIS)? É a ferramenta de ETL (Extract, Transform and Load) da Microsoft.

Seguindo com a séries de publicações referente ao Reconhecimento Facial, vamos explicar de forma bem simples o uso do SSIS neste projeto.

Necessidade de utilização

A solução proposta para implementarmos o reconhecimento facial para a abertura das portas foi composta em duas etapas, sendo a primeira delas um aplicativo Android para o cadastro de rosto armazenando num banco relacional PostgreSQL e a outra etapa no Raspberry Pi fazendo o processamento da aplicação de reconhecimento, este também em um banco PostgreSQL. Desta forma, garantiríamos que a porta seria aberta independente de ter problemas de rede e melhor performance ao sistema de reconhecimento facial.
Com isso, temos dois bancos apartados, onde um tem o cadastro de usuários e rosto e o outro possui o registro de entrada e logs de abertura da porta.

E o nosso problema?
Como manter a base de usuários e rostos do Raspberry Pi atualizada e como levar para a base do App os registros de entrada e logs do Raspberry Pi, visto que o mesmo tem hardware limitado.

Integration Services

A partir do cenário descrito acima, decidimos manter integradas as bases com o SSIS.
E como pensamos a rotina….

1 - Limpando tabelas do Raspberry Pi

Para usar componentes ETL disponíveis no SSIS que fornecessem agilidade no processamento, limpamos as tabelas responsáveis por armazenar dados de usuários e rostos utilizando o componente “Execute SQL Task”.

Execute SQL Task

2 - Populando tabelas

Processando as tabelas do App, onde os usuários estão cadastrando ou atualizando os rostos para o sistema de reconhecimento.

Data Flow Task
Data Flow

Para cada componente “Data Flow Task” é configurado o fluxo do nosso ETL (Data Flow), onde basicamente pegamos os dados de uma tabela em um banco e populamos em outra base, que neste caso também é um PostgreSQL.
Mas neste passo poderia facilmente estar populando em outro banco relacional, como por exemplo SQL Server, Oracle, MySQL, etc. ou até mesmo gravando em arquivo. Neste passo, é possível configurar o fluxo conforme a demanda, o SSIS disponibiliza componentes para facilitar nossa vida.

3 - Gravando registros de entradas e logs

Neste passo segue-se o mesmo fluxo anterior, porém com a particularidade que não limpamos a tabela na base previamente de forma que os registros de entrada são mantidos na base do App.

Data Flow — Mantendo registros de entrada na base do App

Neste passo apenas são inseridos novos registros vindos do Raspberry Pi, não atualizamos registros já inseridos.

4 - Limpando registros do Raspberry Pi

Neste quarto e último passo, limpamos os dados da base PostgreSQL. Como nosso hardware é limitado no Raspberry Pi, optamos por não carregar o sistema de reconhecimento facial mantendo apenas 10 dias de registros de entradas e logs. Assim, a base completa fica apenas no banco do App.

Reflexão final

Para nossa necessidade, a ferramenta da Microsoft atendeu de forma muito ágil e eficiente, pois possui boa arquitetura, é de fácil utilização e tem rápido desenvolvimento para questões de integração de dados com ou sem nosso “T” do ETL.
A construção das soluções se torna muito fácil e amigável, ou seja, uma ferramenta para problemas simples e também complexos.

--

--