Arquivo por categoria: EIM (Enterprise Information Managemen)

maio 12 2012

Data Integrator Designer – File Format

No artigo de hoje falaremos mais um pouco sobre o Data Integrator. Um recurso muito interessante existente nessa ferramenta é uma forma de se trabalhar com formatos de arquivos.

Introdução.

Um File Format é um conjunto de propriedades descrevendo a estrutura de um Flat File. Um template de um File Format pode ser usado por muitos arquivos de dados. Assim o Data Integrator pode usar dados em forma de arquivo tanto como origem ou destino.

Para usar File Format devemos:

– criar um template com a estrutura do arquivo.

–  criar um source ou target com um determinado arquivo baseado no template.

Um File Format pode ser definido como:

–  Formato delimitado – campos separados por vírgulas, ponto e vírgula, espaço ou tabulação.

– Formato de tamanho fixo – o tamanho da coluna é especificado pelo usuário.

–  Formato SAP R/3 – tipo específico para uso com Data Flows R/3

Abaixo mostramos o ambiente do DI onde trabalhamos toda essa questão de formatação de arquivos.

Esse recurso da ferramenta é muito útil quando precisamos trabalhar com fontes de dados em formato csv ou outra qualquer no momento em que essa fonte possa servir como origem ou destino no nosso processo ETL.

Espero que tenham gostado desse artigo e em breve teremos mais novidades.

Até a próxima.

mar 22 2012

Data Integrator Designer – Utilização de Scripts

No artigo de hoje falaremos sobre um recurso muito útil para quem desenvolve processos ETL utilizando a ferramenta da SAP Data Integrator que é a utilização de scripts.

1 – Scripts

Com a linguagem de script do Data Integrator, pode-se atribuir valores a variáveis, chamar funções, e usar expressões e operadores matemáticos. Jobs e Work Flows podem usar scripts para definir passos detalhados na lógica do fluxograma.

  • Scripts são:
  • Objetos não re-usáveis adicionados a Jobs e Work Flows
  • Usados para definir valores à variáveis
  • Usados para executar funções
  • Escritos em Data Integrator Scripting Language
  • Tipicamente são:  Executados antes de Data Flows para passos de inicialização
  • Usados em conjunto com condicionais e while loops para determinar caminhos de execução
  • Usados depois de Work Flows para gravar informações de execução

As palavras reservadas que podem ser usadas junto com variáveis, funções e operadores aritméticos e lógicos em Data Integrator Scripiting Language são:

BEGIN / END

TRY/CATH

WHILE

IF / ELSE

RETURN

Exemplo:

Seus Operadores são:

Regras para utilização de Scripts

Existem algumas regras que devem ser respeitadas para que não ocorram Erros de compilação:

  • Todo o comando deve ser finalizado com um ponto e vírgula (;)
  • Strings são inicializadas e finalizadas com Quotation Marks (‘ ’)
  • Quotation Marks (‘ ’) dentro de uma string devem ser precedidos de uma contra-barra() para diferenciar do início ou fim da string.
  • Comentários são antecedidos com tralha (#)
  • Comparativo com valores NULOS devem sempre utilizar expressões  como IS NULL ou IS NOT NULL . Dentro de Data Flows deve-se usar a função NVL nos mapeamentos de colunas quando quiser tratar valores NULOS.

Espero que tenham gostado do artigo de hoje, breve publicaremos novos artigos sobre essa poderosa ferramenta de ETL.

Até breve

nov 29 2011

Data Integrator (Parte 04)

No artigo de hoje falaremos sobre mais um recurso importante da ferramenta DI, que são as transformações, todo o processo de ETL necessita ter suas informações manipuladas para que se possam carregar na base dimensional. Como qualquer outra ferramenta de ETL o DI possui recursos para que essas transformações possam acontecer.

1 – Data Integrator Designer – Transforms

Transforms são objetos que operam sobre conjuntos de dados. Manipulam os dados de entrada e produzem um ou mais conjuntos de dados de saída.

HISTORY PRESERVING

Converte registros marcados para atualizar em registros para inserir. Mantém o histórico das mudanças dos registros através do tempo. Possibilita o uso de datas de validade dos registros (data de início e data de fim).

TABLE COMPARISON

Compara dois conjuntos de dados e produz a diferença entre eles como um cojunto de dados marcados para atualizar ou inserir no destino.

KEY GENERATION

Gera novas chaves para dados de origem começando de um valor baseado na coluna de uma tabela que se especificou. Este será sempre o maior valor da coluna, incrementado por um valor especificado também.

EFFECTIVE DATE

Organiza um conjunto de dados que possam repetir a data mas possui uma ordem de acontecimento. A transformação irá criar automaticamente uma data de fim conforme a sequência dos dados e ordem dos acontecimentos para o grupamento de dados exceto a data efetiva.

MAP OPERATION

Permite conversões entre códigos de operação. Assim, um registro marcado para atualizar pode ser convertido em um registro marcado para inserir, excluir, descartar ou não fazer nada.

CASE

Simplifica a lógica CASE. Proporciona criar várias saídas de acordo com expressões especificadas como filtros. Existe a opção “default” que é a saída quando o registro não se enquadra em qualquer outra especificada. As saídas não necessariamente são exclusivas. Para que isso aconteça, as expressões de saída tem que ser exclusivas. Senão um registro pode ir por mais que uma saída.

Quando for conectar a transformação CASE às tabelas destino, aparecerá um menu para se escolher qual a saída será aplicada para aquela tabela.

Isso só pode ser realizado após a configuração da transformação com suas expressões de saída.

QUERY

Recupera um conjunto de dados que satisfaz as condições especificadas.

Similar à declaração de SQL SELECT. Tem como entrada um conjunto de dados de uma ou mais origens e como saída um único conjunto de dados podendo ter mais colunas e transformações por funções.

Existem ainda mais alguns recursos disponíveis nessa ferramenta, recomendamos o leitor buscar informações em fóruns de discussão e sites especializados da SAP para o aprofundamento nessa poderosa ferramenta. Espero que tenham gostado dessa série de artigos sobre o DI e que com esses conhecimentos adquiridos o leitor possa ter mais base e conhecimento dos recursos a sua disposição para a realização de processos ETL.
Futuramente estaremos tratando sobre a nova versão dessa ferramenta que hoje se chama Data Services.

Até a próxima

 

 

 

 

nov 27 2011

Data Integrator (Parte 03)

No artigo de hoje continuaremos nosso estudo do Data Integrator com relação a parte de Designer. Hoje falaremos especificamente sobre Datastores e Dataflows.

1 – Data Integrator Designer – Datastores

Os Datastores representam as conexões entre o Data Integrator e os bancos de dados ou aplicações. Essas configurações podem ser diretas ou através de adaptadores. O Datastore permite que o Data Integrator acesse os metadados dos bancos de dados, leia e escreva dados enquanto um job é executado.

Para criar um Datastore, deve-se ir na Object Library, na aba de Datastores, clicar com botão direito dentro da janela e selecionar a opção New.

Então é só especificar o nome do novo Datastore, o tipo dele e do banco, a versão do banco, a instância e a chave e senha de acesso.

Clique no Datastore para visualizar as Tables, Functions e Template Tables que pertencem a ele.

Para importar as estruturas das tabelas de um banco de dados, clique sobre o Datastore com o botão direito e selecione a opção Import By Name…

A janela de Import By Name vai abrir para o determinado Datastore e então deve-se escrever o nome e o owner da tabela a ser importada. Funções e Procedures de Banco também são importadas do mesmo jeito. Basta selecionar o tipo como Function.

Com um duplo clique sobre um determinado Datastore, abrira-se a janela de External Metadata Todas as tabelas que a chave daquele Datastore pode visualizar irão aparecer. Assim, clique na tabela a ser importada com o botão direito e selecione a opção Import. A opção Reconcile serve para verificar diferenças entre o metadados do repositório e o metadados do banco de dados.

 

2 – Data Integrator Designer – Data Flows

Os Data Flows são os objetos responsáveis pelas extrações, transformações e cargas dos dados. Tudo que pode acontecer com um conjunto dados só ocorre dentro de um Data Flow.

Após a definição de um Data Flow, pode-se adicioná-lo a um Work Flow ou Job. Dentro de um Work Flow, o Data Flow pode enviar e receber informação de um objeto para o outro através de parâmetros de entrada e saída.

Pode-se criar um Data Flow pela Object Library ou por Tool Palette. Para abrir o Data Flow, basta dar um clique sobre ele.

Para construir um Data Flow, basta arrastar as tabelas e transformações da Object Library para o workspace. As tabelas devem ser definidas como origem(source) ou destino(target).

Parâmetros

Parâmetros tornam o Data Flow mais flexível. Quando um Data Flow está dentro de um Work Flow, este último pode passar variáveis como parâmetros para o Data Flow. Dentro de um Data Flow, variáveis não são permitidas. Assim elas só serão aceitas se seus valores forem passados como parâmetros para Data Flow.

Os parâmetros só podem ser criados de dentro do Data Flow através da janela de Variables and Parameters na aba Definitions, sendo visualizada ao clicar no menu Tools > Variables  Em Parameters, clique com o botão direito e selecione a opção Insert.

Porém os parâmetros só podem receber valores quando o Data Flow está sendo visualizado por fora.

Embedded Data Flow

Embedded Data Flow é um Data Flow chamado de dentro de outro Data Flow. Ele pode ser composto de várias origens (source) ou destinos (target), mas no máximo uma entrada e uma saída.

O uso de Embedded Data Flow não tem efeito sobre a execução do Job. O que muda é apenas a estrutura do desenho que fica mais organizada e limpa. Quando o Data Integrator executa o Data Flow pai, ele expande todos os Embedded Data Flows de dentro dele otimizando-o para a execução.

Bom, espero que com mais esse artigo possamos ter uma noção maior das potencialidades dessa ferramenta de ETL da SAP.

Até o próximo artigo onde falaremos sobre mais um recurso dessa ferramenta que são as transformações.

nov 22 2011

Data Integrator (Parte 02)

No artigo de hoje vamos continuar nosso estudo sobre Data Integrator, falaremos especificamente sobre o Designer do DI, veremos que é a partir do Designer que construiremos nossos processos ETL.

1 – Data Integrator Designer – Projects e Jobs

 

Projects

O objeto Project representa o nível mais alto de organização oferecido pelo Data Integrator.  Esse objeto é reusável e permite agrupar Jobs.

Abrir um projeto torna um grupo de objetos facilmente acessíveis a interface do usuário.

Os objetos Project são listados na Object Library.     Somente um pode ser aberto de cada vez. Projects não podem ser compartilhados por múltiplos usuários.

Os objetos do Projeto aparecem hierarquicamente na Project Area. Quando um sinal de (+) aparece significa que aquele objeto pode explodir nos objetos de níveis inferiores a ele.

Jobs

O Job é o único objeto que pode ser executado. Eles podem ser executados manualmente ou através do scheduler.

Um Job é composto de passos que serão executados em sequência ou ao mesmo tempo.

Se um diagrama do Job for complexo organize ele em objetos como Work Flows, Data Flows e Control Operations (Conditionals, Loops,…)

Existem 2 tipos de Jobs:
Batch Jobs – Processos que executam em horários definidos
Real-time Jobs – Processos que ficam ligados em tempo real esperando uma ação para realizar outra.

Para criar um Job, clique com o botão direito do mouse em um objeto Project aberto.  Então selecione New Batch Job ou New Real-time Job.

 

Ou clicando com o botão direito do mouse em Batch Jobs da aba de Jobs da Object Library. Então selecione New

WorkFlows

 

O Work Flow define a lógica de execução dos Data Flows.

Ultimamente, o propósito de um Work Flow é preparar o sistema para o início da execução do Data Flow e manter o controle para o término do Job. Um Work Flow pode chamar outros Work Flows.

As conexões entre Work Flows determinam a ordem de execução no Job.             Os seguintes objetos podem ser elementos de um Work Flow :

– Work Flows

– Data Flows

– Scripts

– Conditionals

– While Loops

– Try/Catch Blocks

Um Work Flow pode ser criado do mesmo jeito que um Job.

Para definir a lógica de execução dos Work Flows e Data Flows são usados os Scripts e os Control Operations como While Loops , Conditionals e Try/Catch Blocks.

Para executar Work Flows em paralelo basta colocar os Work Flows sem conexão na Workspace.

Control Operations – Conditionals

Conditionals são objetos para implementar a lógica IF / THEN /ELSE em um Work Flow. São usados com expressões booleanas.

Para definir um Conditional, você especifica uma condição e duas direções:

IF – Uma expressão booleana que retorna verdadeiro ou falso. Para construir essa expressão pode-se usar funções, variáveis e operadores lógicos ou aritméticos.

THEN – Elemento do Work Flow que deve executar se a expressão booleana retornar verdadeiro.

ELSE – Elemento do Work Flow que deve executar se a expressão booleana retornar falso. A cláusula ELSE é opcional.

While Loops

O objeto While Loops é usado para repetir uma sequência de passos em um Work Flow enquanto uma determinada condição for verdadeira. São usados com expressões booleanas.

A outra maneira interessante de usar While Loops é com as funções file_exists que verifica a existência de determinado arquivo e sleep que faz com que a execução espere alguns milissegundos para retornar ao loop.

Para definir um While Loop, deve-se criar uma expressão booleana para preencher a cláusula While e colocar os elementos na área abaixo que irão compor a sequência de passos que se repetição até a expressão booleana retornar falso.

Try/Catch Block

Um Try/Catch Block é a combinação do objeto Try e um ou mais objetos Catch que permite tratar erros diferentes para distintos Work Flows enquanto o Data Integrator está executando o Job.

As classes de exceção do objeto Catch está relacionada aos erros possíveis do Data Integrator, dos Bancos de Dados, e dos Sistemas Operacionais.

Em cada objeto Catch pode-se indicar os erros ou grupos de erros que deseja-se tratar e também definir qual Work Flow irá executar no caso de ocorrer a exceção. Erros podem ser forçados através da função RAISE_EXCEPTION

Espero que tenham gostado desse artigo, no próximo falaremos sobre Datastores.

Até a próxima.

 

nov 21 2011

Data Integrator (Parte 01)

No artigo de hoje falaremos de outra ferramenta muito importante da SAP chamada Data Integrator (Ferramenta de ETL). Vale ressaltar que na versão mais recente do SAP BO 4.0 essa ferramenta está com novo nome (Data Services).  Como no mercado ainda se trabalha muito com a versão anterior dessa ferramenta iremos abordar a versão que ainda está se usando no mercado. Futuramente estaremos falando sobre a versão mais recente o Data Services.

Introdução

 

O Business Objects Data Integrator permite acessar, integrar, transformar e disponibilizar dados corporativos para a criação de relatórios, consultas e análises, aplicações analíticas e gerenciamento de performance.

O Business Objects Data Integrator reúne todos os recursos das ferramentas de extração, transformação e carga (ETL) de alta performance, maior movimentação de dados em tempo real, datamarts pré-modelados, gerenciamento simplificado de metadados e análises, suportados
pela infra-estrurura de informação da SAP Business Objects.

1 – Arquitetura

 Abaixo ilustramos a arquitetura de forma resumida do Data Integrator e seus componentes. No decorrer desse artigo iremos detalhar melhor cara um deles e suas funcionalidades.

O Data Integrator é formado pelos seguintes componentes:

– Data Integrator Job Server

– Data Integrator Engine

– Data Integrator Designer

– Data Integrator Repository

– Data Integrator Access Sever

– Data Integrator Administrator

– Data Integrator Metadata Reporting

– Data Integrator Web Server

– Data Integrator Service

– Data Integrator SNMP Agent

 

DI Job Server -> O Job Server é quem inicia o processo de execução dos Jobs e consequentemente da integração dos dados de múltiplas origens, transformações, gerenciando extrações e transações de sistemas ERP. Ele pode mover os dados em modo batch ou real time.

DI Engine -> Quando os Jobs são executados, o Job Server inicializa os processos de Engine para realizar a extração, transformação e movimentação de dados. Esses processos podem usam paralelismo e realizar as transformações de dados em memória para fornecer uma melhor performance.

Obs.: O Job Server inicia e gerencia os processos de Engine de cada Job executado. Um Job quando executado pode ter vários processos Engine executando em paralelo.

DI Designer -> O Data Integrator Designer é uma ferramenta de desenvolvimento com exclusiva interface gráfica para o usuário. A ferramenta possibilita o desenvolvedor gerenciar mapas de dados, transformações e controlar qualquer lógica. Use o Designer para criar Jobs, Work Flows e Data Flows. Os objetos do Designer representam o metadados. Quando você está desenvolvendo um Job, você pode executá-lo do Designer. O Designer irá se comunicar com o Job Server e este irá executar o Job.

DI Repository -> O Data Integrator Repository é um conjunto de tabelas específicas para armazenar dados sobre os objetos criados, informações das origens (sources) e destinos (targets) e regras de transformações. Cada repositório pode ser associado a um ou mais Job Servers.

Existem 2 tipos de repositórios :

Local Repository – usado pelos desenvolvedores para armazenar definições de objetos do Data Integrator (Projects, Jobs, Work Flows, Data Flows) e informações das fontes origem (source) e destino (target).

Central Repository – é um componente opcional, que pode ser usado para suportar múltiplos usuários. O Central Repository possui uma biblioteca de objetos compartilhada permitindo que os desenvolvedores possam copiar objetos para seu Local Repository. (check in/out).

DI Access Server -> O Data Integrator Access Server é o serviço para os Jobs que executam em modo real time fazendo um gerenciamento de
mensagens de solicitação e resposta sem um horário predefinido. Pode-se configurar múltiplos Access Servers.

DI Administrator -> O Data Integrator Administrator é a ferramenta para administrar os recursos do Data Integrator através de um  browser incluindo :

– Agendamento, monitoramento, e execução de jobs em batch

            – Configuração, inicialização e paralização dos serviços de real time

            – Configuração do Job Server, Access Server, e visão dos repositórios

– Manutenção de usuários do Administrator

 

DI Metadata Reporting -> O Data Integrator Metadata Reporting é um conjunto de relatórios e consultas predefinidas dos metadados dos repositórios tais como :

– Relatórios de todos os objetos Projects, Jobs, Work Flows, Data Flows, Datastores, Transforms, File Formats e Custom Functions.

– Análise dos Datastores, Tables, Functions e relatórios de hierarquia.

– Estatísticas operacionais como da execução de Jobs, Data Flows,…

– Análise dos Universos do B.O. (Business Objects)

– Análise de dependências entre objetos.

DI Web Server -> O Data Integrator Web Server suporta o acesso ao browser do Administrator e Metadata Reporting. Em ambiente Windows esse serviço se chama Data Integrator Web Server. Em UNIX é chamado de AL_JobService.

DI Service -> O Data Integrator Service é quem inicializa o Job Server e o Access Server. Em ambiente Windows esse serviço se chama Data Integrator Service. No UNIX ele está incluído no  AL_JobService.

2 – Utilitários de Gerenciamento

 

License Manager -> O License Manager é a ferramenta que mostra a licença atual dos componentes do Data Integrator.

Repository Manager -> O Repository Manager é a ferramenta que permite criar, atualizar e checar a integridade das versões dos repositórios (local ou central).

Server Manager -> O Server Manager permite adicionar, excluir ou editar as propriedades do Job Server e Access Server.

Objetos do Data Integrator

Abaixo relacionamos os objetos que compõe o Data Integrator.

No próximo artigo falaremos mais detalhadamente sobre o Designer do DI, suas funcionalidades, etc.

Até a próxima.