Importando e exportando dados usando componentes SSIS Hadoop

Importando e exportando dados usando componentes SSIS Hadoop

First data flow task


No artigo publicado anteriormente, falamos brevemente sobre o Hadoop e apresentamos uma visão geral dos componentes do SSIS Hadoop adicionados na versão SQL Server 2016, e nos concentramos no gerenciador de conexões Hadoop e na tarefa do sistema de arquivos Hadoop.

Como ilustrado, existem dois componentes do SSIS Hadoop no nível do fluxo de dados do pacote:

  • Origem dos arquivos HDFS

  • Destino do arquivo HDFS

Componentes do SSIS Hadoop na caixa de ferramentas do SSIS

Figura 1 – Componentes SSIS Hadoop na caixa de ferramentas

Neste artigo, explicaremos brevemente os formatos de arquivo Avro e ORC Big Data. Em seguida, falaremos sobre os componentes da tarefa de fluxo de dados Hadoop e como usá-los para importar e exportar dados para o cluster Hadoop. Em seguida, compararemos esses componentes do Hadoop com a tarefa do sistema de arquivos do Hadoop. Por fim, concluiremos nosso trabalho.

  • Nota: Para executar um experimento, usaremos o banco de dados AdventureWorks2017, que pode ser baixado do seguinte ligação.

Formatos de arquivos de big data

Existem muitos formatos de arquivo desenvolvidos para o Big Data, mas falaremos apenas sobre o Avro e o ORC, pois eles são suportados pelos componentes de origem e destino do HDFS.

Avro

O Apache Avro é um sistema de serialização de dados orientado a linhas desenvolvido dentro da estrutura do Hadoop. Ele se baseia principalmente no JSON para definir tipos de dados, estrutura e serializar dados. Além disso, ele pode ser usado para se comunicar entre os nós do Hadoop. Você pode ler mais sobre essa tecnologia na documentação oficial.

Coluna de linha otimizada (ORC)

O Apache ORC é um formato de armazenamento de dados orientado a colunas desenvolvido para a estrutura do Hadoop. Foi anunciado em 2013 pela HortonWorks em colaboração com o Facebook. Esse formato é usado principalmente com o Apache Hive e possui um desempenho melhor que os formatos orientados a linhas. Você pode ler mais sobre essa tecnologia na documentação oficial.

Destino do arquivo HDFS

O destino do arquivo HDFS é um componente usado para armazenar dados tabulares no cluster Hadoop. Ele suporta arquivos de texto, Avro e ORC.

Editor de destino do arquivo HDFS

Figura 2 – Editor de destino do arquivo HDFS

Se abrirmos o editor de destino do arquivo HDFS, podemos ver que ele contém duas guias:

  1. Gerenciador de conexões: Onde devemos especificar a conexão Hadoop e o formato do arquivo de destino:
    1. Gerenciador de conexões Hadoop: Devemos selecionar o gerenciador de conexões Hadoop relevante (a criação e a configuração de um gerenciador de conexões SSIS Hadoop estão ilustradas em nosso artigo publicado anteriormente nesta série, no SSIS Hadoop Connection Manager e nas tarefas relacionadas)
    2. Localização (caminho do arquivo): O caminho do arquivo no cluster do Hadoop (ele deve começar com uma barra “/”. Como exemplo: “/Test/Persons.avro”) .; você não precisa criar diretórios manualmente, pois eles são gerados automaticamente antes da inserção dos dados.
    3. Formato de arquivo: Texto, Avro ou ORC
    4. Caractere delimitador de coluna (Disponível apenas para o formato de arquivo de texto)
    5. Nomes de colunas na primeira linha de dados (Disponível apenas para o formato de arquivo de texto)
  2. Mapeamentos: onde devemos definir os mapeamentos das colunas

Propriedades adicionais

Além dessas propriedades, existem algumas propriedades adicionais que não são mostradas neste editor de componentes. Você pode encontrá-los na guia de propriedades (Selecione o componente de destino do arquivo HDFS e clique em F4).

Propriedades de destino do arquivo HDFS

Figura 3 – Propriedades de destino do arquivo HDFS

Essas propriedades são:

  1. IsBatchMode: Especifique se os dados são importados no modo em lote
  2. Tamanho do batch: Especifique o tamanho do lote
  3. ValidateExternalMetadata: Selecione se os metadados são validados antes da inserção dos dados (esta propriedade é comum entre todas as fontes e destinos de SSIS)

Expressões

Existem algumas propriedades do destino do arquivo HDFS que podem ser avaliadas como uma expressão. Essas propriedades são:

  1. Tamanho do batch

  2. ColumnDelimiter

  3. Formato de arquivo

  4. Caminho de arquivo

  5. FirstRowAsColumnHeader

  6. IsBatchMode

Para definir essas propriedades, selecione a tarefa de fluxo de dados, na guia Propriedades, clique na expressão. Em seguida, você encontrará uma lista dessas propriedades no formulário do editor Property Expressions, como mostrado abaixo:

Expressões de destino do arquivo HDFS

Figura 4 – Expressões de destino do arquivo HDFS

Origem do arquivo HDFS

A origem do arquivo HDFS é um componente usado para ler dados tabulares armazenados no cluster Hadoop. Ele suporta arquivos de texto e Avro.

Se abrirmos o editor de fonte de arquivo HDFS, podemos ver que ele contém três páginas de guia:

Editor de origem do arquivo HDFS

Figura 5 – Editor de origem do arquivo HDFS

  1. Gerenciador de conexões: Onde devemos especificar a conexão Hadoop e o formato do arquivo de destino:
    1. Gerenciador de conexões Hadoop: Devemos selecionar o gerenciador de conexões Hadoop relevante
    2. Localização (caminho do arquivo): O caminho do arquivo no cluster do Hadoop (ele deve começar com uma barra “/”)
    3. Formato de arquivo: Texto ou Avro
    4. Caractere delimitador de coluna (Disponível apenas para o formato de arquivo de texto)
    5. Nomes de colunas na primeira linha de dados (Disponível apenas para o formato de arquivo de texto)
  2. Colunas: Onde devemos selecionar as colunas de entrada e adicionar aliases
  3. Saída de erro: Onde podemos configurar a saída de erro (como outros componentes de origem)

A origem do arquivo HDFS difere do componente de destino do arquivo HDFS, pois não possui propriedades personalizadas que não são mostradas no editor. Além disso, apenas duas propriedades podem ser avaliadas como expressão, conforme mostrado na captura de tela abaixo:

  1. Caminho de arquivo

  2. FirstRowAsColumnName

Avaliando propriedades da origem do arquivo HDFS como expressões

Figura 6 – Avaliando as propriedades da fonte do arquivo HDFS como expressões

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Exemplo

Para testar esses componentes, criaremos um pacote SSIS e adicionaremos três gerenciadores de conexão:

  1. Hadoop Connection Manager: para conectar-se ao cluster Hadoop (consulte o artigo anterior)

  2. Gerenciador de conexões OLE DB: para conectar-se à instância do SQL Server em que o banco de dados AdventureWorks2017 está armazenado

  3. Gerenciador de conexão de arquivo simples: Nós o usaremos para exportar dados do HDFS

Gerenciadores de conexão necessários para testar os componentes do SSIS Hadoop

Figura 7 – Gerenciadores de conexão

Adicionaremos duas tarefas de fluxo de dados:

Fluxo de controle do pacote

Figura 8 – Fluxo de controle do pacote

  1. Importar dados para o HDFS: lerá os dados do [Person].[Person] tabela no seguinte caminho de arquivo: “/TestSSIS/Persons.txt”:

Primeira tarefa de fluxo de dados

Figura 9 – Primeira tarefa de fluxo de dados

  1. Exportar dados do HDFS ”, ele lerá os dados de um arquivo no HDFS no seguinte caminho:“ / Test / Persons / txt ”em um arquivo simples:

Segunda tarefa de fluxo de dados

Figura 10 – Segunda tarefa de fluxo de dados

Executamos o pacote SSIS e, após a conclusão da execução, podemos verificar se os dados foram exportados com êxito da interface da web do Hadoop.

Arquivo mostrado usando a interface da web Hadoop

Figura 11 – Importação de dados verificada usando a interface da web do Hadoop

Além disso, o arquivo de texto é exportado com sucesso para o sistema de arquivos local.

Arquivo exportado com sucesso para o sistema de arquivos local

Figura 12 – Arquivo exportado com sucesso para o sistema de arquivos local

Tarefa do sistema de arquivos Hadoop x componentes de fluxo de dados

Como mencionamos no artigo publicado anteriormente nesta série, existem três componentes do SSIS Hadoop no nível de fluxo de controle do pacote:

  • Tarefa do sistema de arquivos Hadoop

  • Tarefa Hiveop Hive

  • Tarefa Hadoop Pig

Como os componentes do Hadoop do fluxo de dados são usados ​​para importar ou exportar dados do HDFS, uma pergunta principal pode ser feita: Quando usar esses componentes, especialmente para importar e exportar dados, usando a tarefa do sistema de arquivos Hadoop?

Há muitas diferenças entre os dois componentes do Hadoop em relação às fontes de dados suportadas e outros recursos, conforme mostrado na tabela a seguir.

Característica

Tarefa do sistema de arquivos Hadoop

Componentes do SSIS Hadoop

Nível do pacote

Controle de fluxo

Fluxo de dados

Abordagem de data warehousing

ELT

ETL

Fontes de dados

Conexão de arquivo

Toda a conexão

Gerenciador de conexões suportado

Gerenciador de conexões Hadoop

Gerenciador de conexões Hadoop

Tipos suportados

Arquivos (qualquer extensão) + Diretórios

Arquivo de texto, Avro, ORC

Transformações disponíveis

Nenhuma transformação pode ser aplicada

Toda a transformação do fluxo de dados pode ser aplicada aos dados (filtro, adição e remoção de colunas, agregações)

Operações suportadas

Copiar do HDFS, Copiar para HDFS, Copiar no HDFS

Copiar do HDFS, Copiar para HDFS, Copiar no HDFS

atuação

Maior desempenho, pois as operações são de alto nível e os dados não são validados

Tarefas inferiores às do Hadoop

Figura 13 – Tabela de comparação entre a tarefa do sistema de arquivos Hadoop e os componentes do fluxo de dados

Conclusão

Neste artigo, ilustramos os componentes do SSIS Hadoop no nível do fluxo de dados e como usá-los para importar e exportar dados do cluster local do Hadoop. Em seguida, fizemos uma pequena comparação entre eles e a tarefa do sistema de arquivos Hadoop.

Hadi Fadlallah
Últimas mensagens de Hadi Fadlallah (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Descartando índices não utilizados em um banco de dados SQL do Azure - Uma imagem do SQLEspresso