none
DÚVIDA COM JOIN NO BIDS RRS feed

  • Pergunta

  • Bom dia pessoal.

    Estou com uma dúvida séria no BIDS e já estou a 2 dias tentando encontrar uma solução.

     

    Eis o cenário:

    Um Data Warehouse de testes está sendo criado e as informações de seu primeiro banco estão sendo tratadas pelo Business Intelligence Development Studio (BIDS).

     

    Agora tenho alguns pacotes de ETL criados. Os de Extração já funcionam bem e enviam dados de arquivos Excel para o ODS do Data Warehouse. Já na fase de transformação, estou com dificuldades em encontrar um objeto que atenda a essa necessidade:

     

    Tenho as tabelas:

    DimProduto 

    PRODUTO_ID (PK)

    PRODUTO_DESC

    CATEGORIA_ID (FK)

     

    DimProdutoCategoria

    CATEGORIA_ID (PK)

    CATEGORIA_DESC

     

     

    Como vocês já devem ter notado, o campo CATEGORIA_ID da tabela DimProduto é uma Foreign Key para a tabela DimProdutoCategoria.

    Acontece que essa tabela DimProdutoCategoria recebe apenas as informações de DESCRIÇÃO das Categorias, enquanto os IDs são definidos pelo Identity do campo (que eu zero toda vez que o pacote roda). Obviamente, tenho que informar no campo  CATEGORIA_ID da tabela DimProduto os índices correspondentes à cada descrição. Isso seria feito com um inner join usando uma consulta sql até que simples. Mas não encontrei até agora um componente do SSIS no BIDS que consiga executar um comando SELECT que faça esse JOIN e retorne a coluna com os valores para ser usada nos passos seguintes do pacote.

     

    Alguém consegue me ajudar? Fui claro? Deixei passar algo?

     

    Abraços e agradeço desde já.


    • Editado Kdu Bonalume quinta-feira, 17 de novembro de 2011 13:25
    quinta-feira, 17 de novembro de 2011 13:24

Respostas

  • Kdu, boa tarde, o que vc precisa é um componente que execute um join das duas tabelas ... vc pode utilizar o Execute SQL Task. Se vc precisar dos ID´s físicos, vc pode na propriedade "Result Set" da task escolher a opção que melhor aplicar as suas necessidades.

     

    Abs.

    • Marcado como Resposta Kdu Bonalume sexta-feira, 18 de novembro de 2011 12:07
    quinta-feira, 17 de novembro de 2011 16:23

Todas as Respostas

  • Kdu, boa tarde, o que vc precisa é um componente que execute um join das duas tabelas ... vc pode utilizar o Execute SQL Task. Se vc precisar dos ID´s físicos, vc pode na propriedade "Result Set" da task escolher a opção que melhor aplicar as suas necessidades.

     

    Abs.

    • Marcado como Resposta Kdu Bonalume sexta-feira, 18 de novembro de 2011 12:07
    quinta-feira, 17 de novembro de 2011 16:23
  • Valeu Edu, vou testar. Mas além disso, reavaliei a modelagem do banco e identifiquei algumas possíveis alterações a fazer. Mesmo assim obrigado.

     

    Abraços.


    Carlos Eduardo B Martins Junior e-mail: kdu.bmartins@gmail.com kdu.bmartins@hotmail.com skype: cmartins.othink
    quinta-feira, 17 de novembro de 2011 16:38