Carregamento de dados de hosts remotos
Você pode usar o comando COPY para carregar dados em paralelo de um ou mais hosts remotos, como instâncias do Amazon EC2 ou outros computadores. O COPY se conecta aos hosts remotos usando SSH e executa comandos nos hosts remotos para gerar a saída de texto.
O host remoto pode ser uma instância do Amazon EC2 Linux ou outro computador Unix ou Linux configurado para aceitar conexões SSH. Este guia assume que seu host remoto é uma instância do Amazon EC2. Quando o procedimento for diferente para outro computador, o guia indicará a diferença.
O Amazon Redshift pode conectar-se a vários hosts e abrir várias conexões SSH para cada host. O Amazon Redshifts envia um comando exclusivo por meio de cada conexão a fim de gerar saída de texto para a saída padrão do host, que o Amazon Redshift lê como faria com um arquivo de texto.
Antes de começar
Antes de começar, você deve ter o seguinte:
-
Uma ou mais máquinas host, como instâncias do Amazon EC2, às quais você pode se conectar usando SSH.
-
Fontes de dados nos hosts.
Você fornecerá comandos que o cluster do Amazon Redshift executará nos hosts para gerar a saída de texto. Depois que o cluster se conecta a um host, o comando COPY executa os comandos, lê o texto da saída padrão dos hosts e carrega os dados em paralelo em uma tabela do Amazon Redshift. A saída de texto deve estar em um formulário que o comando COPY possa ingerir. Para obter mais informações, consulte Preparação de dados de entrada
-
Acesso aos hosts para seu computador.
Para uma instância do Amazon EC2, você usará uma conexão SSH para acessar o host. Você precisará acessar o host para adicionar a chave pública do cluster do Amazon Redshift ao arquivo de chaves autorizadas do host.
-
Um cluster do Amazon Redshift em execução.
Para obter informações sobre como iniciar um cluster, consulte o Guia de conceitos básicos do Amazon Redshift.
Processo de carregamento de dados
Esta seção orienta você pelo processo de carregamento de dados de hosts remotos. As seções a seguir fornecem os detalhes de que você precisa para realizar cada etapa.
-
Etapa 1: Recuperar a chave pública do cluster e os endereços IP dos nós do cluster
A chave pública permite que os nós de cluster do Amazon Redshift estabeleçam conexões SSH com os hosts remotos. Você usará o endereço IP de cada nó do cluster para configurar os grupos de segurança do host ou firewall para permitir o acesso de seu cluster Amazon Redshift usando esses endereços IP.
-
Você adiciona a chave pública do cluster do Amazon Redshift ao arquivo de chaves autorizadas do host para que o host reconheça o cluster do Amazon Redshift e aceite a conexão SSH.
-
Etapa 3: Configurar o host para aceitar todos os endereços IP do cluster do Amazon Redshift
Para Amazon EC2, modifique os grupos de segurança da instância para adicionar regras de entrada para aceitar os endereços IP do Amazon Redshift. Para outros hosts, modifique o firewall para que os nós do Amazon Redshift possam estabelecer conexões SSH com o host remoto.
-
Etapa 4: Obter a chave pública para o host
Você pode, opcionalmente, especificar que o Amazon Redshift deve usar a chave pública para identificar o host. Você precisará localizar a chave pública e copiar o texto em seu arquivo de manifesto.
-
Etapa 5: Criar um arquivo manifesto
O manifesto é um arquivo de texto formatado em JSON com os detalhes de que o Amazon Redshift precisa para se conectar aos hosts e buscar os dados.
-
Etapa 6: Carregar o arquivo manifesto para um bucket do Amazon S3
O Amazon Redshift lê o manifesto e usa essas informações para se conectar ao host remoto. Se o bucket do Amazon S3 não residir na mesma região que seu cluster Amazon Redshift, você deve usar a opção REGION para especificar a região na qual os dados estão localizados.
-
Etapa 7: Executar o comando COPY para carregar os dados
De um banco de dados do Amazon Redshift, execute o comando COPY para carregar os dados em uma tabela do Amazon Redshift.