IBM InfoSphere DataStage e DB2 pureXML, Parte 1: Integre Dados Operacionais XML em um Armazém de Dados

Saiba como integrar dados XML críticos de negócios em seu armazém de dados utilizando o IBM® InfoSphere™ DataStage 8.1 e DB2® 9.5 pureXML®. Esta série de artigos de duas partes fornece instruções passo a passo para a utilização do pureXML como uma origem de dados de origem e destino para tarefas do InfoSphere DataStage.

Branislav Barnak, Software Architect, IBM

Branislav Barnak photoBranislav Barnak é um arquiteto de software da IBM localizada em Boca Raton, Flórida. Ele trabalha na conectividade IBM InfoSphere DataStage e tem como foco tecnologias IBM, tais como DB2, WebSphere MQ, sistemas de armazenamento de dados e outros. Branislav está envolvido com o desenvolvimento de tecnologias de conectividade há mais de 10 anos. Ele tem trabalhado em diversas estruturas de conectividade com interface com produtos de banco de dados e sistema de mensagens como Oracle, PeopleSoft, Teradata, DB2, WebSphere MQ e outros. Ele é bacharel de ciências em Engenharia Elétrica da Universidade de Belgrado, Sérvia.



Amir Bar-or, Senior Architect and Manager, IBM

Amir Bar-or photoAmir Bar-or is é um arquiteto sênior e gerente no Enterprise Information Management Group no Massachusetts Laboratory. Ele tem mais de 10 anos de experiência em pesquisa e desenvolvimento de bancos de dados como um pesquisador em HP Labs e depois na IBM SWG. Atualmente, ele lidera o desenvolvimento dos recursos XML futuros do DataStage.



Cynthia M. Saracco, Senior Software Engineer, IBM

photo: Cynthia SaraccoCynthia M. Saracco é uma arquiteta de soluções sênior no Silicon Valley Laboratory da IBM especializada em tecnologias emergentes e tópicos de gerenciamento de bancos de dados. Ela tem 23 anos de experiência no segmento de mercado de software, escreveu 3 livros e mais de 60 documentos técnicos e detém 7 patentes.


nível de autor Profissional do
        developerWorks

Paul Stanley, Senior Architect, IBM

Paul Stanley photoPaul Stanley é um arquiteto sênior no Enterprise Information Management Group em Boca Raton, Flórida. Ele tem trabalhado como arquiteto e gerente no desenvolvimento de componentes de conectividade para o WebSphere Transformation Extender e o InfoSphere DataStage há mais de 12 anos.



20/Ago/2009

Isto não é segredo: O XML está em toda parte. Aplicativos baseados na Web, Arquitetura Orientada a Serviços (SOA) e formatos de troca de dados específicos do segmento de mercado todos contam muito com o XML para representar dados críticos de negócios. Este uso crescente do XML está exigindo que muitas empresas explorem maneiras de integrar dados operacionais XML em seus armazéns de dados e ambientes de inteligência de negócios.

Nesta série de artigos, aprenda como o IBM DB2 pureXML e o InfoSphere DataStage podem ser utilizados juntos para gerenciar dados XML operacionais, transformar dados XML conforme necessário e preencher um armazém de dados apenas relacional ou relacional/XML híbrido. (Para simplificar, as seções subsequentes desta série de artigos farão referência a "pureXML" e "DataStage" ao invés dos nomes completos dos produtos). Instruções passo a passo o orientam por dois cenários comuns de integração.

Na primeira parte desta série de artigos, explore como construir um armazém de dados que contém dados relacionais e XML utilizando dados pureXML como entrada. Adicionalmente, aprenda dicas importantes utilizando o DataStage DB2 Connector. Na segunda parte desta série de artigos, você aprenderá como transformar dados do arquivo simples em XML e armazenar os dados em um armazém de dados com pureXML.

Introduzindo tecnologias-chave DataStage e pureXML

Se você não estiver familiarizado com o DataStage ou pureXML, localizará introduções breves em cada uma das seguintes seções. Entretanto, um conhecimento anterior sobre data warehousing, tecnologia ETL (Extract-Transform-Load) e XML ajudará ao ler esta série de artigos.

Visão geral do DataStage

O IBM InfoSphere DataStage possibilita que as empresas extraiam, transformem e carreguem (ETL) dados a partir de uma variedade de origens em um armazém de dados. O suporte integrado para hardware multiprocessador possibilita que o DataStage forneça altos níveis de escalabilidade e trabalhe com grandes volumes de dados de maneira eficiente. Vários "conectores" suportam uma ampla variedade de formatos de dados de origem e destino, incluindo sistemas de gerenciamento de bancos de dados IBM e OEM populares, origens de dados ODBC, aplicativos de terceiros, mensagens em tempo real geradas pelo software de enfileiramento de sistema de mensagens e serviços da Web, e formatos de arquivos populares.

O DataStage fornece estes recursos—e outros—através de vários componentes de software. Os cenários nesta série de artigo utilizam um subconjunto deles. Especificamente, os cenários do artigo utilizam o DataStage Designer para construir tarefas ETL. Cada tarefa consiste em vários "estágios" e cada estágio executa uma determinada tarefa. Exemplos de tais tarefas incluem informações de leitura a partir de uma origem de dados, transformando dados de entrada utilizando funções integradas, convertendo dados de um tipo para outro e assim por diante. Os exemplos do artigo definem estágios que envolvem o DB2 Connector, as operações XML e diversas operações de processamento. Duas tecnologias DataStage são críticas para os cenários: o DB2 Connector e o XML Pack 2.0. Este artigo as descreve brevemente.

Após a utilização do DataStage Designer para criar e compilar sua tarefa, você utilizará o DataStage Director para executar seu trabalho.

DataStage DB2 Connector

Este artigo conta com o DB2 Connector para todos os acessos ao banco de dados DB2. Esta é a principal opção de conectividade com o DB2 no InfoSphere Information Server e é baseada na Common Connector Framework. O conector contém um superconjunto de recursos localizado nos componentes de conectividade do DataStage legados e oferece função e desempenho melhorados.

O DB2 Connector está disponível para o Information Server 8.1 como uma instalação de correção do conector separada. Ele suporta conexões locais e remotas com servidores DB2 9.1 e 9.5. (O suporte ao DB2 9.7 é planejado para um release futuro do Information Server). O conector requer o DB2 Client 9.1 Fix Pack 6 (ou posterior) ou o DB2 9.5 Fix Pack 3 (ou posterior).

Os recursos-chave do DB2 Connector incluem:

  • Suporte para os tipos de dados XML e LOB (large object) de qualquer tamanho. Dois mecanismos de transferência estão disponíveis: transmissão por valor (sequencial) e por referência. Ao transmitir dados LOB ou XML sequenciais, o tamanho máximo é determinado pelo mecanismo do DataStage. Quando os dados são transmitidos por referência, o estágio de recebimento de dados utiliza a referência para obter os dados chamando o conector de origem diretamente. O aspecto negativo deste método é que os dados LOB podem ser movidos apenas de um conector para outro e não podem ser transformados na tarefa (já que apenas a referência é transmitida através dos links). O conector requer que a propriedade ArraySize seja configurada com 1 ao ler ou gravar colunas XML.
  • Habilidade para executar instruções SQL padrão, tais como SELECT, INSERT, UPDATE e DELETE, combinações destas instruções, SQL definida pelo usuário, bem como carregamento em massa.
  • Suporte para execução paralela (multiprocessos).
  • Suporte para DB2 DPF (Database Partitioning Feature). O conector pode trabalhar com bancos de dados particionados no modo paralelo ou sequencial. Ao executar em paralelo, um processo DataStage separado é alocado para cada partição do DB2. O conector pode ler e gravar em paralelo e pode carregar bancos de dados particionados em paralelo.
  • Suporte para entrega garantida de dados através de transações XA (two-phase commit) quando utilizada junto com o Distributed Transaction Stage (DTS). O DTS fornece um mecanismo para vários bancos de dados DB2 para ser atualizado como parte de uma transação XA. Observe que o DTS está disponível com uma correção separada para o DataStage 8.1.
  • Suporte para importação de metadados através do Assistente de Importação do Common Connector no DataStage Designer.

Contextos de uso do DB2 Connector

O conector pode ser utilizado em um contexto de origem, destino ou consulta. Nesta série de artigos, você utiliza o DB2 Connector em contextos de origem e de destino.

O contexto de origem refere-se ao caso onde há um link de saída vindo do estágio do conector. Neste contexto, o conector é utilizado para recuperar dados.

O contexto de destino refere-se ao caso onde há um link de entrada indo para o estágio do conector, o que significa que os dados estão sendo transmitidos para o conector. Neste contexto, o conector é utilizado para executar instruções INSERT, UPDATE, DELETE, UPSERT (combinação de instruções INSERT/UPDATE/DELETE), SQL definida pelo usuário ou instruções de carregamento em massa.

O contexto de consulta refere-se ao caso onde o conector é utilizado em conjunto com o estágio de consulta. Neste contexto, os dados são transmitidos para e recuperados do conector. Em tal cenário, o conector executa uma instrução SELECT com uma cláusula WHERE .

Suporte XML ao DB2 Connector

Os cenários nesta série de artigos estão focados no suporte do DB2 Connector para dados XML. Desta forma, é vantajoso aprender mais sobre o suporte XML no DB2 Connector.

Representação do DataStage das colunas XML

O DataStage 8.1 utiliza tipos de dados NVarChar ou LongNVarChar para representar dados XML. Durante a importação dos metadados, o usuário pode selecionar qual tipo utilizar para colunas XML. A diferença é que as colunas XML representadas como colunas NVarChar são utilizadas para transferir dados sequenciais e estão sujeitas aos requisitos de tamanho do mecanismo DataStage, enquanto o tipo de dados longos é utilizado para tratar as colunas XML como large objects (LOBs) e permite que eles sejam transmitidos por referência.

O conector suporta:

  • XQueries
  • XQueries com SQL integrada
  • Consultas SQL/XML
  • Operações de atualização e exclusão com colunas XML

Contexto de origem: Leitura de colunas XML

O conector pode ler um documento XML inteiro ou um fragmento. O fragmento pode ser uma sequência ou um valor atômico. Quando um XQuery é utilizado, o conector não suporta a transmissão do resultado XML por referência devido às dificuldades na construção de um localizador LOB.

Os exemplos a seguir (Listas 1 - 6) contêm diversas consultas SQL comuns e XQueries que o conector suporta. Estas consultas são baseadas em amostras incluídas nos artigos introdutórios do popular DB2 pureXML. (Consulte a seção Recursos para obter detalhes). Observe que o suporte do DB2 Connector para SQL, SQL/XML e XQuery não está limitado a estes exemplos.

Lista 1. Utilizando SQL simples para recuperar documentos XML inteiros
select xml_col from table

Se a coluna XML foi representada com o tipo de dados LongVarChar na tarefa do DataStage, o conector forneceria ao usuário uma opção para selecionar se esta coluna será transmitida para o próximo estágio como uma referência ou de forma sequencial.

Lista 2. Utilizando o XQuery para recuperar documentos XML inteiros
xquery db2-fn:xmlcolumn('TABLE.COL_NAME')

Nota: O resultado para a Lista 2 não pode ser transferido por referência.

Lista 3. Utilizando XQuery para extrair fragmentos do documento XML
xquery db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client[Address/zip="10011"
or Address/city="San Jose"]/Address

Nota: O resultado para a Lista 3 não pode ser transferido por referência.

Lista 4. Utilizando uma expressão FLWOR XQuery para extrair fragmentos do documento XML
xquery
for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client
where $y/Address/zip="10011" or $y/Address/city="San Jose"
return $y/email[1]/text()

Nota: O resultado para a Lista 4 não pode ser transferido por referência.

Lista 5. Utilizando XQuery com SQL integrada para extrair documentos XML inteiros
xquery db2-fn:sqlquery('select xml_col from table')

Nota: O resultado para a Lista 5 não pode ser transferido por referência.

Lista 6. Utilizando uma consulta SQL/XML para extrair fragmentos do documento XML
select xmlquery('$c/Client/Address'
passing contactinfo as "c")
from clients
where status = 'Gold'
and xmlexists('$c/Client/email' passing contactinfo as "c")

Na Lista 6, o conector pode transmitir o resultado sequencialmente ou por referência.

Prefixo para colunas de expressão

Quando o conector executa uma consulta, ele tenta corresponder os nomes de colunas que a consulta retorna com os nomes de colunas especificados no link de saída do estágio do conector. Entretanto, os nomes de colunas XQuery são representados com um número. O conector coloca um prefixo nestas colunas com uma cadeia que pode ser definida configurando a propriedade do contexto de origem do conector Prefixo para Colunas de Expressão. O prefixo padrão utilizado é EXPR. Os nomes de colunas XQuery então se tornam EXPR1, EXPR2 e assim por diante. Isto é importante de observar já que o conector procuraria tais colunas na lista de colunas de links.

Contexto de destino: Inserindo/atualizando/excluindo colunas XML

Conforme mencionado anteriormente, o DB2 Connector pode atuar como um destino para dados recebidos e pode gravar estes dados no banco de dados DB2 apropriado. Os exemplos a seguir (Listas 7 - 11) ilustram como o DB2 Connector pode inserir, atualizar ou excluir informações nas colunas XML.

Alguns destes exemplos incorporam uma palavra-chave reservada do DataStage—ORCHESTRATE—que é utilizada para transmitir parâmetros para a instrução. O nome da coluna especificado após a palavra-chave ORCHESTRATE precisa corresponder a uma coluna no conjunto de resultados associado com o link do DataStage apropriado.

Lista 7. Inserindo uma coluna XML
insert into table values(ORCHESTRATE.col1)

O nome da coluna col1 indica a coluna conforme especificado no link de entrada. Esta coluna pode ser NVarChar ou LongNVarChar e pode ser transferida sequencialmente ou por referência.

Lista 8. Atualizando o documento XML inteiro utilizando uma instrução de atualização de SQL simples
update clients set
contactinfo=( xmlparse(document ‘<email>newemail@someplace.com </email> ' ) )
where id = 3227
Lista 9. Atualizando parte de um valor de documento XML utilizando um parâmetro
update xmlcustomer
set info = xmlquery('copy $new := $INFO
modify do replace value of $new/customerinfo/phone with $z
return $new' passing cast(ORCHESTRATE.col2 as varchar(15)) as "z")
where cid = ORCHESTRATE.col1

A Lista 9 utiliza dois parâmetros. O valor de col2 substitui os dados /customerinfo/phone existentes no documento XML; o valor de col1 restringe as linhas afetadas pela atualização.

Lista 10. Excluindo um registro XML com base no filtro de dados XML interno
delete from clients
where xmlexists ('$c/Client/Address[zip="95116"]'
passing clients.contactinfo as "c")
Lista 11. Excluindo um registro XML utilizando um parâmetro
delete from clients
where xmlexists ('$c/Client/Address[zip=$z]'
passing clients.contactinfo as "c", cast(ORCHESTRATE.col2 as varchar(15)) as z)

A Lista 11 utiliza o valor de col2 como um parâmetro para restringir operações DELETE com base no valor de um elemento XML (o elemento zip ou zip code do endereço de um cliente).

DataStage XML Pack

Esta série de artigos conta com o DataStage XML Pack 2.0 para fornecer funções-chave para ambos os cenários. O XML Pack consiste em três estágios: XML Input, XML Output e XML Transformer. Esta série utiliza os estágios XML Input e XML Output. O estágio XML Transformer, que é baseado em XSLT, não é utilizado nos cenários do artigo.

Estágio XML Input

O XML Input converte dados XML em tabelas relacionais "simples". Com o XML Input, você pode:

  • Extrair dados utilizando expressões XPath padrão
  • Utilizar Esquemas XML e opcionalmente validar dados XML
  • Suportar transformações complexas utilizando folhas de estilo customizadas
  • Suportar vários links de saída utilizando diferentes conjuntos de dados
  • Identificar erros

A Figura 1 ilustra uma transformação simples feita pelo estágio XML Input:

Figura 1. O estágio XML Input transforma dados XML hierárquicos em tabelas "simples"
Ilustração do estágio XML Input transforma dados XML hierárquicos em tabelas simples

Estágio XML Output

O XML Output converte dados tabulares, tais como tabelas relacionais, em estruturas XML hierárquicas. Com o XML Output, você pode:

  • Gerar XML utilizando um subconjunto de expressões XPath padrão
  • Gerar vários documentos a partir da mesma entrada.
  • Suportar espaços de nomes XML
  • Configurar a geração de documentos XML e uma variedade de maneiras, tais como um documento por linha de entrada
  • Gerar documentos de saída no disco ou através de um link de saída
  • Identificar erros

A Figura 2 ilustra uma transformação simples feita pelo XML Output:

Figura 2. O estágio XML Output transforma estruturas tabulares "simples" em hierarquias XML
Ilustração do estágio do XML Output transforma estruturas tabulares simples em hierarquias XML

Visão geral do DB2 pureXML

O DB2 fornece às empresas uma interface de programação de aplicativos comum e uma plataforma de gerenciamento de bancos de dados para dados modelados em tabelas e também como hierarquias XML. A Figura 3 ilustra como o DB2 possibilita que empresas gerenciem mensagens e documentos XML ao lado de dados relacionais tradicionais. Com o pureXML, não há a necessidade de "fragmentar" ou mapear dados XML críticos para os negócios em um formato relacional. Ao invés disso, os dados XML podem ser armazenados intactos e em seu formato hierárquico nativo. Os aplicativos podem acessar prontamente os dados XML de que precisam, bem como integrar dados XML e relacionais com menos esforço.

Figura 3. A arquitetura do DB2 oferece suporte ao gerenciamento de dados relacionais e XML
A arquitetura do DB2 oferece suporte ao gerenciamento de dados relacionais e XML

Os cenários nesta série de artigos contam com os recursos pureXML do DB2, o que inclui armazenamento otimizado dos dados XML em seu formato hierárquico nativo e suporte para a consulta de dados XML em linguagens SQL ou XQuery.


Ambiente de desenvolvimento e tempo de execução de amostras

Para criar os cenários de amostra descritos nesta série de artigos, utilizamos o seguinte software:

  • Information Server 8.1, que inclui os componentes do DataStage Designer e do DataStage Director. Além disso, instalamos o DataStage 8.1 DB2 Connector, que é contido em uma correção para o DataStage 8.1, denominado "Connectors Rollup Patch 1." Como um dos cenários utiliza um Transformer Stage, também instalamos um compilador C++ como pré-requisito. (Utilizamos o Microsoft Visual Studio .NET 2003.)
  • DB2 9.5 Enterprise Server Edition.

O DataStage e o DB2 foram instalados no mesmo sistema Windows.

Os dados operacionais de amostra incluem informações sobre portfólios financeiros. Derivamos estes dados de um subconjunto do benchmark do Transaction Processing sobre XML (TPOX) de software livre. Especificamente, utilizamos informações de representação de dados sobre contas de clientes e seus capitais (ou investimentos). Você aprenderá mais sobre os dados operacionais e o design do armazém de dados à medida que percorrer cada cenário. (Para obter mais informações sobre TPOX, consulte a seção Recursos).


Utilizando pureXML como entrada no armazém

O cenário descrito neste artigo utiliza dados XML operacionais armazenados no DB2 pureXML como entrada para a tarefa ETL. Conforme mostrado na Figura 4, você deseja que o DataStage extraia dados armazenados em uma coluna DB2 XML e mapeia estes dados para duas tabelas em um armazém de dados DB2. Uma destas tabelas contém apenas colunas relacionais tradicionais, enquanto a segunda contém colunas relacionais e uma coluna XML.

Figura 4. Dados operacionais armazenados no DB2 pureXML funcionam como entrada para o armazém de dados
Ilustração mostrando como os dados operacionais armazenados noDB2 pureXML funcionam como entrada para o armazém de dados

Este modelo de dados representa um cenário comum no qual partes dos dados XML são frequentemente "retalhados" em uma estrutura relacional. Tais partes representam dados que os usuários de negócios podem analisar e consultar frequentemente. Muitas ferramentas de inteligência de negócios são otimizadas para suportar estruturas relacionais, portanto, a retalhação de dados XML consultados em colunas relacionais pode ser muito efetiva. Entretanto, as necessidades de negócios podem variar ao longo do tempo, portanto pode ser difícil para os administradores determinarem quais colunas relacionais devem ser criadas. A manutenção de dados XML inteiros no armazém de dados permite que os usuários acessem imediatamente os dados de negócios importantes que não foram retalhados previamente em um formato relacional.

Para simplificar os cenários de amostra neste artigo, utilizamos um único banco de dados DB2 (denominado "TPOX") para armazenar dados operacionais e dados do armazém. É claro, em um ambiente de produção, os dados operacionais e os dados de armazém seriam gerenciados em bancos de dados separados, normalmente em servidores separados.

Já que utilizamos o DB2 para gerenciar dados operacionais e dados de armazém, poderíamos ter escolhido utilizar tecnologias DB2 integradas para executar a maioria do trabalho de ETL. Entretanto, a transferência deste trabalho para o DataStage minimiza o impacto nas operações do DB2, que é um objetivo comum nos ambientes de produção. Além disso, o DataStage fornece um número de funções de transformação e limpeza além daqueles localizadas no DB2. Finalmente, muitas empresas precisam preencher seus armazéns de dados com dados de origens de dados heterogêneas e o DataStage fornece serviços críticos para ajudá-las a fazer isso. Tais recursos estão bem documentados em outro lugar e estão além do escopo deste artigo.


Visão geral de design

O cenário de amostra neste artigo armazena dados XML operacionais na tabela TPOXADMIN.ACCOUNT, que serve como a tabela de origem para o DataStage para este cenário. A tabela ACCOUNT contém uma coluna relacional (ID) e uma coluna XML (INFO). A Lista 12 mostra como é fácil criar esta tabela:

Lista 12. SQL para criar a tabela ACCOUNT de origem
create table tpoxadmin.account(id int, info xml)

A coluna INFO contém detalhes sobre a conta, incluindo seu título, data de abertura, equilíbrio de trabalho, capitais de portfólio e outras informações. A Lista 13 mostra uma parte do documento XML armazenada na tabela ACCOUNT. O script DB2 acompanhando este artigo contém o conjunto completo dos registros da conta XML (consulte Download).

Lista 13. Parte de um documento XML armazenado na tabela ACCOUNT
<Account id="804130877" xmlns="http://tpox-benchmark.com/custacc">
  <Category>6</Category>
  <AccountTitle>Mrs Shailey Lapidot EUR</AccountTitle>
  <ShortTitle>Lapidot EUR</ShortTitle>
  <Mnemonic>LapidotEUR</Mnemonic>
  <Currency>EUR</Currency>
  <CurrencyMarket>3</CurrencyMarket>
  <OpeningDate>1999-02-20</OpeningDate>
  <AccountOfficer>Soraya Lagarias</AccountOfficer>
  <LastUpdate>2004-02-10T22:33:58</LastUpdate>
  <Balance>
    <OnlineActualBal>896882</OnlineActualBal>
    <OnlineClearedBal>337676</OnlineClearedBal>
    <WorkingBalance>430147</WorkingBalance>
  </Balance>
  . . . 
  <Holdings>
    <Position>
       <Symbol>ZION</Symbol>
       <Name>Zions Bancorporation</Name>
       <Type>Stock</Type>
      <Quantity>1927.719</Quantity>
    </Position>
    . . . 
  </Holdings>
. . . 
</Account>

Para simplicidade do teste, um banco de dados de data warehousing de destino também é configurado para ser TPOX. As informações de origem da coluna INFO de TPOXADMIN.ACCOUNT será mapeada para duas tabelas— a tabela DWADMIN.ACCT que contém informações sobre a conta geral e a tabela WADMIN.HOLDINGS que contém informações sobre diversos investimentos (capitais de portfólio) de uma determinada conta. A Lista 14 mostra como estas tabelas são definidas:

Lista 14. Definições para tabelas do armazém de dados de destino
-- DWADMIN.ACCT contains general information about accounts.
create table dwadmin.acct (
     id               int        primary key not null,
     title            varchar(100),
     currency         char(3),
     workingbalance   int,
     totalholdings    int,
     holdingtypes     int,
     officer          varchar(50),
     datechanged      date,
     timechanged      time,
     fullrecord       xml
)

-- DWADMIN.HOLDINGS tracks specific investments (holdings) for a given account
create table dwadmin.holdings (
   id                 int       references dwadmin.acct on delete cascade,
   symbol             varchar(10),
   type               varchar(25),
   quantity           decimal(12,2)
)

Para compreender como a origem de dados XML (na coluna INFO de TPOXADMIN.ACCOUNT) é mapeada para as várias colunas das tabelas de origem de dados, consulte a Tabela 1. (As colunas ID de ambas as tabelas de armazém de dados são preenchidas a partir dos valores da coluna ID na operação).

Tabela 1. Dados de origem XML para cada coluna nas tabelas do armazém de dados
DWADMIN.ACCTDWADMIN.HOLDINGS
Column nameData source (XPATH or...)Column nameData source (XPATH expression)
title/Account/AccountTitlesymbol/Account/Holdings/Position/Symbol
currency/Account/Currencytype/Account/Holdings/Position/Type
workingbalance/Account/WorkingBalancequantity/Account/Holdings/Position/Quantity
officer/Account/AccountOffice

datachangedextract from /Account/LastUpdated

timechangedextract from /Account/LastUpdated

fullrecordentire XML document as originally stored in DB2 source table

Como você poderia esperar, há diversas maneiras de construir uma tarefa do DataStage para este cenário. Este artigo emprega uma abordagem de desenvolvimento incremental. Em particular, as etapas iniciais o orientam através da criação de uma parte da tarefa geral do DataStage que extrai, transforma e carrega dados na tabela DWADMIN.ACCT. Assim que esta parte é concluída e testada, o artigo o orienta através da melhoria da tarefa para extrair, transformar e carregar dados XML na tabela DWADMIN.HOLDINGS. Primeiro, entretanto, é necessário criar as tabelas do DB2 apropriadas para suportar este cenário.


Preparar o ambiente de banco de dados do DB2

O download do arquivo contém um script que cria a tabela operacional (origem) e as tabelas de armazém de dados (destino) necessárias. Ele também preenche a tabela operacional com informações da conta XML de amostra. Faça download e descompacte o arquivo zip DSsetup.zip e, em seguida, abra uma janela de comandos do DB2 e emita o seguinte comando:

Lista 15. Chamando o script DB2 acompanhando esta série de artigos
 db2 –td@ -vf  DSsetup.db2

Nota: Este script é projetado para suportar um servidor DB2 9.5 em execução no Windows.


Criar uma tarefa paralela e resumir seus conteúdos

Para começar, defina uma nova tarefa paralela do DataStage com sinalizadores de substituição para diversos estágios (tarefas de trabalho) que precisam ser incluídos. Posteriormente, você editará cada estágio para especificar as propriedades apropriadas para executar a tarefa com êxito.

  1. Ative o DataStage Designer.
  2. Para criar uma nova tarefa paralela, clique com o botão direito do mouse na pasta Jobs na área de janela Repositório e selecione New > Parallel job.
  3. Inclua dois estágios do DB2 Connector na tarefa paralela. Um conector representará a tabela de origem TPOXADMIN.ACCOUNT e o outro representará a tabela de destino DWADMIN.ACCT.
    1. Selecione a guia Database na área de janela Palette.
    2. Arraste o estágio do DB2 Connector para a tarefa paralela.
    3. Repita as etapas anteriores para criar um segundo estágio do DB2 Connector.
    4. Coloque estes dois conectores em lados opostos da tela da tarefa paralela.
  4. Inclua um estágio XML Input na tarefa. (Este estágio transformará os dados XML hierárquicos sobre contas em uma estrutura de resultados tabulares).
    1. Selecione a guia Real Time na área de janela Palette.
    2. Localize o estágio XML Input e arraste-o para a tarefa paralela.
    3. Coloque o ícone próximo ao primeiro estágio do DB2 Connector.
  5. Inclua um estágio Transformer na tarefa. (Este estágio dividirá um único valor do elemento XML em dois valores que preencherão duas colunas diferentes na tabela de destino).
    1. Selecione a guia Processing na área de janela Palette.
    2. Localize o estágio Transformer e arraste este ícone para a área de janela da tarefa paralela.
    3. Coloque o ícone entre o estágio XML Input e o DB2 Connector final.
  6. Vincule os estágios.
    1. Para vincular o primeiro DB2 Connector ao XML Input, pressione o botão direito do mouse, clique no DB2 e arraste o mouse até o estágio XML Input. Uma seta entre os dois estágios aparecerão.
    2. Vincule o XML Input ao estágio Transformer.
    3. Vincule o estágio Transformer ao DB2 Connector final.
  7. Se desejado, customize sua tarefa com nomes descritivos para cada estágio e vincule utilizando recursos padrão do DataStage. (Consulte a seção Recursos para obter os links para os tutoriais e a documentação do DataStage, se necessário).
  8. Verifique se o design de sua tarefa paralela é semelhante à Figura 5, que mostra os diversos estágios vinculados, conforme descrito na Etapa 6:
    Figura 5. Modelo de tarefa do DataStage para a primeira parte do cenário de integração
    Captura de tela do modelo de tarefa do DataStage para a primeira parte do cenário de integração

    (Visualize uma versão maior da Figura 5).

  9. Para salvar seu trabalho, clique em File > Save na barra de ferramentas principal e especifique um nome de sua opção para a tarefa.

Agora você tem um modelo de tarefa paralela para a primeira parte de sua tarefa do DataStage.


Importar definições de tabelas

O banco de dados DB2 TPOX já contém tabelas de origem e destino, assim você precisa importar metadados sobre estas tabelas no DataStage.

  1. Na barra de ferramentas principal, selecione Import > Table Definitions > Start Connector Import Wizard.
  2. Uma nova janela aparece para "Connector metadata import - Connector selection." Selecione DB2 Connector (Variant 9.1) e, em seguida, clique em Next.
  3. Insira os detalhes apropriados para a conexão, incluindo o tipo de instância (DB2), o nome do banco de dados (TPOX) e um ID do usuário e senha válidos.
  4. Clique na opção Test connection no canto superior direito desta janela para verificar se é possível conectar-se ao banco de dados DB2 TPOX.
  5. Após uma conexão bem-sucedida, clique em Next e, em seguida, em OK.
  6. Aceite os valores-padrão para o local da origem de dados. Estes incluem um nome do host do DB2 e um nome do banco de dados do TPOX (DB2).
  7. Clique em Next.
  8. Selecione o esquema TPOXADMIN na lista suspensa Filter , verifique se a opção include tables está marcada e, em seguida, clique em Next.
  9. Selecione a tabela ACCOUNT na lista de tabelas disponíveis para este esquema.
  10. Deixe todas as opções desmarcadas, incluindo a opção "XML Columns as LOBs". Sua tarefa do DataStage precisa processar e transformar o XML, assim ela o tratará como dados de cadeia (ao invés de um grande objeto ou LOB não estruturado).
  11. Verifique se a tabela TPOXADMIN.ACCOUNT está na lista de importação e clique em Import.
  12. Uma janela pop-up é exibida, solicitando que você selecione uma pasta para a importação dos metadados. Selecione Table Definitions e clique em OK.
  13. Repita as etapas anteriores para importar as duas tabelas de destino do armazém de dados.
    • Na Etapa 8, selecione o esquema DWADMIN ao invés do esquema TPOXADMIN.
    • Na etapa 9, selecione as tabelas ACCT e HOLDINGS. (Inicialmente, você utilizará apenas a definição de tabela DWADMIN.ACCT, mas haverá uma economia de tempo se você também importar a definição de tabela DWADMIN.HOLDINGS agora).
  14. Para confirmar que você importou os metadados com êxito para todas as tabelas necessárias, expanda a pasta Table Definitions na área de janela Repository no canto superior esquerdo e confirme que existam as entradas TPOXADMIN.ACCOUNT, DWADMIN.ACCT e DWADMIN.HOLDINGS.
  15. Salve seu trabalho.

Agora você está pronto para editar cada estágio da tarefa.


Editar o estágio da tabela de origem do DB2

A tabela TPOXADMIN.ACCOUNT contém as informações operacionais necessárias para o armazém. As propriedades do estágio do DB2 Connector de origem precisa ser editado para refletir as informações apropriadas sobre esta tabela de entrada.

  1. Clique duas vezes no DB2 Connector que representa a origem de entrada.
  2. Uma janela é exibida. Na guia Properties , especifique as informações de conexão apropriadas. Isto inclui o tipo de instância (DB2), o nome do banco de dados (TPOX) e um ID do usuário e senha válidos, conforme mostrado na Figura 6:
    Figura 6. Configurando as propriedades para a tabela de origem do DB2
    Captura de tela mostrando como configurar as propriedades para a tabela de dados de origem do DB2
  3. Clique em Test no canto superior direito da área de janela para verificar se é possível conectar-se com êxito ao banco de dados.
  4. Role até a seção Usage da guia Properties e especifique as seguintes configurações (conforme mostradas na Figura 6):
    • Generate SQL: Yes
    • Table name: TPOXADMIN.ACCOUNT
    • Array size: 1
  5. Clique em View Data no lado direito da linha Usage para verificar se é possível consultar a tabela com êxito e, em seguida, clique em OK para salvar suas configurações.
  6. Clique na guia Columns e selecione Load na parte inferior da área de janela.
  7. É exibida uma janela com definições de tabelas. Selecione a tabela TPOXADMIN.ACCOUNT e clique em OK.
  8. É exibida uma janela com as colunas da tabela. Aceite o padrão no qual todas as colunas da tabela são selecionados. (Observe que a coluna INFO, que foi criada no DB2 como uma coluna XML, aparece aqui com um tipo SQL de NVarChar, que representa uma cadeia Unicode. Isso é normal).
  9. Clique em OK.
  10. Especifique um comprimento apropriado para a coluna INFO. Para estes dados de amostra, um comprimento de 5000 é suficiente.
  11. Clique em OK.
  12. Salve seu trabalho.

O estágio do DB2 Connector para a tabela de origem está pronto. Na próxima etapa, você customizará o DB2 Connector representando a tabela de destino do armazém de dados.


Editar o estágio da tabela de destino do DB2

A tabela DWADMIN.ACCT é uma das duas tabelas do armazém de dados a ser preenchida a partir da origem de entrada. Conforme mencionado anteriormente, esta tabela contém diversas colunas relacionais para informações específicas sobre contas financeiras, bem como uma coluna pureXML com dados da conta inteira no formato XML. As propriedades do estágio do DB2 Connector de destino precisa ser editado para refletir as informações apropriadas sobre esta tabela.

  1. Para abrir o DB2 Connector que representa a tabela de destino, clique duas vezes em seu ícone.
  2. Na guia Properties , especifique as informações de conexão apropriadas. Isto inclui o tipo de instância (DB2), o nome do banco de dados (TPOX) e um ID do usuário e senha válidos.
  3. Teste se é possível conectar-se com êxito ao banco de dados.
  4. Na guia Usage da guia Properties , especifique as seguintes configurações, conforme mostrado na Figura 7:
    • Write mode: Insert
    • Generate SQL: Yes
    • Table name: DWADMIN.ACCT
    • Array size: 1
    • Table action: Truncate
    Figura 7. Configurando propriedades para uma das tabelas de destino do DB2
    Captura de tela mostrando como configurar as propriedades para uma das tabelas de destino do DB2
  5. Clique em View Data para verificar se é possível consultar com êxito a tabela. (A primeira vez que você executa sua tarefa, esta tabela estará vazia).
  6. Clique em OK para salvar estas configurações.
  7. Clique na guia Columns e selecione Load.
  8. Selecione a tabela DWADMIN.ACCT e clique em OK.
  9. Aceite o padrão no qual todas as colunas da tabela são selecionados. (Observe que a coluna FULLRECORD, que foi criada no DB2 como uma coluna XML, aparece aqui com um tipo SQL de NVarChar).
  10. Clique em OK.
  11. Especifique um comprimento apropriado para a coluna FULLRECORD. Para os dados de amostra, um comprimento de 5000 é suficiente.
  12. Clique em OK.
  13. Salve seu trabalho.

Com os estágios de origem e destino do DB2 definidos, está na hora de trabalhar nos estágios que processam os dados.


Editar o estágio XML Input

É necessário customizar o estágio XML Input para extrair dados XML da coluna INFO da tabela TPOXADMIN.ACCOUNT e gerar um conjunto de resultados tabular, que enfim serão utilizados para preencher a tabela DWADMIN.ACCT.

  1. Para abrir o estágio XML Input, clique duas vezes no seu ícone.
  2. Clique na guia Input.
  3. Um segundo conjunto de guias é exibido. Clique na subguia XML Source (se necessário).
  4. Especifique a coluna de origem XML. Utilize a guia suspensa para selecionar a coluna INFO.
  5. Especifique XML document (ao invés de um caminho URL/File) como o conteúdo de Column.
  6. Clique na subguia Column.
  7. Verifique se as colunas ID e INFO estão listadas.
  8. Configure o tipo de dados para a coluna INFO como VarBinary e configure o comprimento da coluna em 5000 bytes. (A utilização de VarBinary permite que o estágio XML Input manipule os dados em seu formato UTF-8 nativo e evita conversões desnecessárias do conjunto de caracteres).
  9. Clique na guia Output principal.
  10. Um novo conjunto de guia é exibido. Clique na subguia Transformation Settings.
  11. Verifique se a configuração Repetition element required está marcada. Isto é necessário para indicar que você pretende extrair vários registros de um único registro que contém XML. O estágio XML Input fará um loop através do elemento de repetição e produzirá um registro de saída para cada ocorrência de tal elemento. Em uma etapa seguinte, você verá como indicar o caminho para o elemento de repetição.
  12. Selecione a caixa de opção include namespace declaration.
  13. Os dados de origem XML contêm um espaço de nomes, portanto, é necessário declará-lo aqui. Insira o seguinte:
    xmlns:ns= "http://tpox-benchmark.com/custacc"
  14. Clique na subguia Columns e selecione Load.
  15. Uma lista das definições de tabelas é exibida. Selecione a tabela DWADMIN.ACCT .
  16. Aceite o padrão para carregar todas as colunas.
  17. Verifique se a caixa de opção Ensure all Char columns use Unicode está selecionada e, então, clique em OK.
  18. Modifique a estrutura de saída deste estágio da tarefa conforme a seguir (para corresponder ao conteúdo da Figura 8):
    1. Especifique um comprimento de 5000 bytes para a coluna FULLRECOR.
    2. Altere o tipo de dados da coluna TIMECHANGED para NVarChar com um comprimento de 20. Tratar os dados como uma cadeia permitirá que você aproveite as vantagens de determinadas funções de transformação integradas do DataStage, conforme poderá ver brevemente.
    3. Especifique a expressão XPATH apropriada que o DataStage deve utilizar para extrair informações dos dados XML de entrada. Faça isto para todas as colunas, exceto para a coluna ID (que é extraída de uma coluna relacional na tabela TPOXADMIN.ACCOUNT de origem). As configurações de descrição apropriadas incluem:
      • TITLE: /ns:Account/ns:AccountTitle/text()
      • CURRENCY: /ns:Account/ns:Currency/text()
      • WORKINGBALANCE: /ns:Account/ns:Balance/ns:WorkingBalance/text()
      • OFFICER: /ns:Account/ns:AccountOfficer/text()
      • DATECHANGED: /ns:Account/ns:LastUpdate/text()
      • TIMECHANGED: /ns:Account/ns:LastUpdate/text()
      • FULLRECORD: /ns:Account
    4. Identifique a coluna TITLE como uma chave. Para isso, altere o valor Key de TITLE para Yes. Isto instrui o DataStage a utilizar este valor do elemento XML como o identificador do elemento de repetição. Para cada ocorrência de ns:AccountTitle, o estágio produzirá um registro de saída. Em outras palavras, ele produzirá um registro para cada Conta já que cada conta contém um elemento AccountTitle. Neste cenário, outras colunas também poderiam ter este propósito, incluindo as colunas CURRENCY, WORKINGBALANCE e OFFICER, já que todas elas são elementos obrigatórios do elemento Account. Selecionamos TITLE como a coluna-chave por conveniência.
    Figura 8. Definições de coluna para resultados de saída do estágio XML Input
    Captura de tela mostrando definições de coluna para resultados de saída do estágio XML Input

    (Visualize uma versão maior da Figura 8).

    Nota: Tipos de VarChar com uma extensão Unicode são equivalentes a tipos NVarChar para o DB2 Connector.

  19. Clique em OK e salve seu trabalho.

Agora você programou o estágio XML Input para extrair dados de uma coluna DB2 pureXML e prepará-la para mapeamento em uma tabela do armazém de dados de destino do DB2 que é amplamente relacional. A seguir, você customizará o estágio Transformer de forma que os dados serão modificados conforme necessário antes de seu carregamento na tabela de destino.


Editar o estágio Transformer

O estágio Transformer precisa extrair informações de tempo a partir de uma cadeia de entrada contendo dados de registro de data e hora para preencher corretamente a coluna TIMECHANGED na tabela DWADMIN.ACCT de destino. O DataStage fornece diversas funções integradas para a manipulação de dados de data/hora, executando conversões de tipo de dados e assim por diante. É necessário editar o estágio Transformer para chamar funções apropriadas para sua conversão de dados.

  1. Para abrir o estágio Transformer, clique duas vezes em seu ícone.
  2. Clique no ícone Column Auto-Match da barra de ferramentas para instruir o DataStage a automaticamente mapear colunas por nome entre os links de entrada e saída. (Você definiu o conjunto de resultados para este link de entrada do estágio na seção "Edit the XML Input stage". Você definiu o conjunto de resultados para este link de saída da etapa na seção "Edit the DB2 target table stage").
  3. Clique em OK.
  4. Modifique a configuração Derivation para a coluna TIMECHANGED do link de saída para transformar os dados, conforme necessário. Lembre-se de que a cadeia de entrada contém um registro de data e hora completo com informações de data e hora e que você deseja preencher a coluna TIMECHANGED na tabela de destino do DB2 com apenas um valor de hora.
    1. Realce a configuração de derivação apropriada, clique com o botão direito do mouse e selecione Edit Derivation.
    2. Uma área de janela em branco é exibida. Utilize os assistentes integrados para selecionar as chamadas de função de transformação apropriadas ou insira o seguinte código:
       TimestampToTime( StringToTimestamp(AccountOverview.TIMECHANGED,
      "%yyyy-%mm-%ddT%hh:%nn:%ss"))

      No caso de você estar curioso, a chamada de função interna converte a cadeia de entrada em um registro de data e hora que está em conformidade com um formato específico. A função externa obtém este registro de data e hora e o converte para um valor de hora. Para obter detalhes sobre estas funções ou do estágio Transformer, consulte a seção Recursos.
  5. Verifique se a sua transformação tem uma aparência semelhante à da Figura 9, que ilustra o mapeamento entre os links de entrada e saída (gerado na Etapa 2) bem como a derivação editada na Etapa 4:
    Figura 9. Propriedades modificadas para o estágio Transformer
    Captura de tela mostrando as propriedades modificadas para o estágio Transformer

    (Visualize uma versão maior da Figura 9).

  6. Clique em OK.

Agora você concluiu as modificações necessárias para a parte inicial da sua tarefa do DataStage. É o momento de compilar e testar seu trabalho.


Compilar e testar seu trabalho

Siga os procedimentos padrão do DataStage para compilar, validar e executar sua tarefa. Consulte a seção Recursos para obter os links para a documentação do DataStage, se necessário. Aqui está um resumo rápido:

  1. Pressione a tecla F7 ou selecione o ícone Compile na barra de ferramentas. Certifique-se de que a tarefa tenha sido compilada sem erro.
  2. Pressione Ctrl+F5 ou selecione o ícone Run na barra de ferramentas.
  3. Configure Warnings para no limit e clique em Run.
  4. O DataStage tentará executar sua tarefa. Ative o DataStage e o QualityStage Director para inspecionar os resultados de sua tarefa.
  5. Se necessário, alterne para a página Status e realce sua tarefa. Para isso, selecione View > Status ou clique no ícone Status na barra de ferramentas.
  6. Alterne para a página Log para revisar os detalhes sobre a execução da tarefa. Para isso, selecione View > Log ou clique no ícone Log na barra de ferramentas. A tarefa deve ser executada com êxito, embora mensagens de aviso possam aparecer.

Neste ponto, é possível inspecionar os dados na tabela de destino utilizando as ferramentas padrão do DB2. Ou, se você preferir, é possível visualizar os dados do DataStage Designer executando o seguinte:

  1. Clique duas vezes no DB2 Connector que representa a tabela de destino.
  2. Clique no link View Data para exibir os dados na tabela de destino.

Incluir mais estágios para preencher a tabela de armazém final

Para concluir o cenário, é necessário extrair as informações apropriadas da origem XML Input e carregar estes dados na tabela DWADMIN.HOLDINGS. Fazer isto requer a inclusão de dois novos estágios na tarefa existente.

  1. Selecione um estágio Copy na seção Processing da paleta e coloque o estágio Copy logo abaixo do estágio XML Input existente.
  2. Coloque um novo estágio DB2 Connector na paleta à direita do estágio Copy.
  3. Vincule o estágio XML Input ao novo estágio Copy e vincule o novo estágio Copy ao novo estágio DB2 Connector.
  4. Se desejado, renomeie seus novos links e estágios de uma maneira mais descritiva.
  5. Verifique se o design da sua tarefa tem uma aparência semelhante à da Figura 10, que mostra os diversos estágios vinculados, conforme descrito na Etapa 3:
    Figura 10. Tarefa revisada do DataStage para este cenário
    Captura de tela mostrando a tarefa revisada do DataStage para este cenário

    (Visualize uma versão maior da Figura 10).

Edite o novo estágio do DB2 Connector:

  1. Especifique as informações de conexão apropriadas, incluindo o tipo de instância (DB2), o nome do banco de dados (TPOX) e um ID do usuário e senha válidos.
  2. Teste a conexão.
  3. Especifique as informações de uso apropriadas:
    • Write Mode: Insert
    • Generate SQL: Yes
    • Table name: DWADMIN.HOLDINGS
    • Table action: Truncate
    • Array Size: 1
  4. Selecione View Data para verificar se as especificações são válidas.
  5. Clique na guia Column.
  6. Carregue informações da definição de tabela para DWADMIN.HOLDINGS. Importe todas as colunas.
  7. Configure o valor Key da coluna ID como Yes.
  8. Especifique as expressões XPATH que o DataStage deve utilizar para extrair informações dos dados XML de entrada (mostrado na Figura 11). Faça isto para todas as colunas, exceto para a coluna ID. As configurações de descrição apropriadas incluem:
    • SYMBOL: /ns:Account/ns:Holdings/ns:Position/ns:Symbol/text()
    • TYPE: /ns:Account/ns:Holdings/ns:Position/ns:Type/text()
    • QUANTITY: /ns:Account/ns:Holdings/ns:Position/ns:Quantity/text()
      Figura 11. Valores de coluna editados do DB2 Connector para a tabela DWADMIN.HOLDINGS
      Captura de tela mostrando valores de coluna editados do DB2 Connector para a tabela DWADMIN.HOLDINGS

      (Visualize uma versão maior da Figura 11).

Edite o estágio XML Input existente:

  1. Clique na guia Output e utilize o menu suspenso abaixo da caixa Output Name para identificar o link do DataStage apropriado a modificar. (Na Figura 10, HoldingInfo é o link apropriado, já que ele controla o fluxo de dados do estágio XML Input para o estágio Copy que acabou de incluir na tarefa).
  2. Clique na guia Transformation Settings.
  3. Verifique se a configuração Repetition element required está marcada.
  4. Selecione a caixa de opção include namespace declaration.
  5. Insira a seguinte definição de espaço para nome XML na caixa em branco:
    xmlns:ns="http://tpox-benchmark.com/custacc"
  6. Clique na subguia Columns.
  7. Carregue as informações para a tabela DWADMIN.HOLDINGS. Selecione todas as colunas.
  8. Especifique as expressões XPath que o DataStage deve utilizar para extrair informações dos dados XML de entrada (mostrado na Figura 12). Faça isto para todas as colunas, exceto para a coluna ID. As configurações de descrição apropriadas incluem:
    • SYMBOL: /ns:Account/ns:Holdings/ns:Position/ns:Symbol/text()
    • TYPE: /ns:Account/ns:Holdings/ns:Position/ns:Type/text()
    • QUANTITY: /ns:Account/ns:Holdings/ns:Position/ns:Quantity/text()
    Figura 12. Definições de coluna para saída do estágio XML Input para o novo estágio Copy
    Captura de tela mostrando as definições de coluna para a saída do estágio XML Input para o novo estágio Copy

    (Visualize uma versão maior da Figura 12).

  9. Configure o valor Key para a coluna SYMBOL como Yes. Isto faz com que o estágio produza um registro de saída para cada ocorrência do elemento Symbol . Como Symbol ocorre em todos os elementos Position, o estágio produz um registro para cada elemento Position .
  10. Clique em OK.

Edite o novo estágio Copy. (Este estágio transmite informações entre os estágios XML Input e DB2 Connector, cada um dos quais está associado a diferentes significados com valores Key. O estágio XML Input utiliza uma coluna Key para identificar o elemento de repetição, que determina como os dados XML são gerados. Quando você editou o estágio XML Input na seção anterior, o trabalho executado nas Etapas 3 e 9 identificou o valor Key e o elemento de repetição. O DB2 Connector, é claro, utiliza Key para identificar uma coluna que é uma chave de banco de dados. O estágio Copy permite que os dados sejam transferidos entre estes estágios sem introduzir nenhum conflito operacional devido à forma com que cada estágio trata os valores-chave. Para isso, seus links de entrada e saída identificam diferentes colunas como chaves).

  1. Na guia Output, selecione Mappings.
  2. Clique em Auto-Match e selecione OK.
  3. Se desejado, inspecione as definições Key para as colunas nos links de entrada e saída.
  4. Clique na guia Input e, então, clique na subguia Columns.
  5. Verifique se a coluna SYMBOL está identificada como Key.
  6. Clique na guia Output e, em seguida, clique na subguia Columns.
  7. Verifique se a coluna ID está identificada como Key.
  8. Clique em OK para concluir a edição deste estágio.

Teste sua tarefa revisada:

  1. Caso ainda não o tenha feito, salve sua tarefa.
  2. Compile a tarefa.
  3. Verifique se não há erros.
  4. Execute a tarefa.
  5. Utilize o DataStage Director para inspecionar o log e verificar se a tarefa foi concluída com êxito.
  6. Opcionalmente, inspecione os dados na tabela de destino selecionando View Data no editor de estágios para o estágio do DB2 de destino.

Resumo

O aumento do uso do XML como um formato preferencial para troca de dados está exigindo que arquitetos e administradores de dados avaliem opções para a integração de dados XML críticos para os negócios em seus armazéns de dados. Nesta primeira parte desta série em duas partes, você aprendeu como o IBM InfoSphere DataStage pode extrair e transformar dados XML gerenciados por DB2 pureXML. Além disso, você explorou como o DataStage pode carregar estes dados em duas tabelas: uma com tipos de dados SQL tradicionais e uma que apresenta colunas relacionais e XML.

A segunda parte desta série de artigos explora outro cenário importante: a utilização do DataStage para ler informações a partir de um arquivo simples, converter dados em um formato XML e carregar estes dados XML em um armazém de dados que contém uma tabela com uma coluna DB2 pureXML.

Reconhecimentos

Agradecemos a Stewart Hanna, Susan Malaika e Ernie Ostic por seus comentários de revisão neste artigo.


Download

DescriçãoNomeTamanho
Sample scripts and dataDSsetup.zip141KB

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=425176
ArticleTitle=IBM InfoSphere DataStage e DB2 pureXML, Parte 1: Integre Dados Operacionais XML em um Armazém de Dados
publish-date=08202009