Origem de lotes do Redshift

Esta página descreve como carregar dados de uma instância do Amazon Redshift para o Google Cloud com o Cloud Data Fusion. O conetor de origem do Redshift permite-lhe sincronizar tabelas do seu conjunto de dados do Redshift com o seu destino, como o BigQuery. O conetor também lhe permite criar uma consulta SQL configurável.

Antes de começar

  • As versões 6.9.0 e posteriores do Cloud Data Fusion suportam a origem do Redshift.
  • Quando configura o conetor de origem do Redshift, pode selecionar uma ligação existente e reutilizável ou criar uma nova ligação única. Para mais informações, consulte o artigo Faça a gestão das associações. Quando reutiliza uma associação, tenha em atenção o seguinte:

    • Não tem de fornecer credenciais.
    • A ligação existente fornece as informações do esquema e do nome da tabela que são usadas para gerar a consulta de importação.

Configure o plug-in

  1. Aceda à interface Web do Cloud Data Fusion e clique em Studio.

  2. Verifique se a opção Data Pipeline - Batch está selecionada (e não Tempo Real).

  3. No menu Origem, clique em Redshift. O nó do Redshift aparece no seu pipeline. Se não vir a origem do Redshift na página do Studio, implemente o conetor de origem do Redshift a partir do hub do Cloud Data Fusion.

  4. Para configurar a origem, aceda ao nó do Redshift e clique em Propriedades.

  5. Introduza as seguintes propriedades. Para ver uma lista completa, consulte as Propriedades.

    1. Introduza uma etiqueta para o nó do Redshift, por exemplo, Redshift tables.
    2. Introduza os detalhes da associação. Pode configurar uma nova associação única ou uma associação existente reutilizável.

      Nova associação

      Para adicionar uma ligação única ao Redshift, siga estes passos:

      1. Mantenha a opção Usar ligação desativada.
      2. No campo Nome do controlador JDBC, introduza o nome do controlador. O Redshift suporta dois tipos de controladores JDBC: CData e Amazon. Para mais informações, consulte o artigo Carregue um controlador JDBC.
      3. No campo Anfitrião, introduza o ponto final do cluster do Redshift, por exemplo, cdf-redshift-new.example-endpoint.eu-west-1.redshift.amazonaws.com.
      4. Opcional: no campo Porta, introduza um número da porta da base de dados, por exemplo, 5439.
      5. Se a sua base de dados Redshift exigir autenticação, faça o seguinte:

        1. No campo Nome de utilizador, introduza o nome da base de dados.
        2. No campo Palavra-passe, introduza a palavra-passe da base de dados.
        3. Opcional: no campo Arguments, introduza argumentos de valor-chave. Para usar o controlador CData, forneça os argumentos de ligação, como RTK ou OEMKey, se aplicável.
        4. No campo Nome, introduza um nome, por exemplo, SN-PC-Source-01-01-2024.
        5. Introduza o nome da base de dados de destino no campo Base de dados, por exemplo, datafusiondb.

      Ligação reutilizável

      Para reutilizar uma associação existente, siga estes passos:

      1. Ative a opção Usar ligação.
      2. Clique em Procurar associações.
      3. Clique no nome da associação.

      4. Opcional: se não existir uma associação e quiser criar uma nova associação reutilizável, clique em Adicionar associação e consulte os passos no separador Nova associação nesta página.

    3. No campo Importar consulta, introduza uma consulta com os nomes do esquema e da tabela da sua origem do Redshift, por exemplo, Select * from "public"."users".

    4. Opcional: introduza propriedades avançadas, como uma consulta de limite ou o número de divisões. Para todas as descrições de propriedades, consulte o artigo Propriedades.

  6. Opcional: clique em Validar e resolva os erros encontrados.

  7. Clique em Fechar. As propriedades são guardadas e pode continuar a criar o seu pipeline de dados na interface Web do Cloud Data Fusion.

Propriedades

Propriedade Suporta macros para automatização Propriedade obrigatória Descrição
Etiqueta Não Sim O nome do nó no pipeline de dados.
Usar ligação Não Não Procure uma associação à origem. Se a opção Usar ligação estiver ativada, não tem de fornecer credenciais.
Ligação Sim Sim Nome da associação a usar. Se a opção Usar ligação estiver selecionada, este campo é apresentado. As informações da base de dados e da tabela são fornecidas pela associação.
Nome do controlador JDBC Sim Sim Nome do controlador JDBC a usar. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Anfitrião Sim Sim O ponto final do cluster do Amazon Redshift. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Porta Sim Não Porta na qual o Redshift está a ser executado. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Nome de utilizador Sim Não Identidade do utilizador para estabelecer ligação à base de dados especificada. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Palavra-passe Sim Não Palavra-passe a usar para estabelecer ligação à base de dados especificada. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Argumentos de ligação Sim Não Uma lista de pares de chave-valor de strings arbitrárias como argumentos de ligação. Estes argumentos são transmitidos ao controlador JDBC como argumentos de ligação para controladores JDBC que possam precisar de configurações adicionais. Se a opção Usar ligação não estiver selecionada, este campo é apresentado.
Nome de referência Não Sim Identifica exclusivamente esta origem para a linhagem, a anotação de metadados e outros serviços.
Base de dados Sim Sim Nome da base de dados do Redshift. Para selecionar dados, clique em Procurar base de dados.
Consulta de importação Sim Sim A consulta SELECT a usar para importar dados da tabela especificada.
Consulta delimitadora Sim Não Consulta SQL que devolve os valores mínimo e máximo do campo splitBy. Por exemplo, SELECT MIN(id),MAX(id) FROM table. Não é obrigatório se numSplits estiver definido como um.
Dividir coluna Sim Não Nome do campo usado para gerar divisões. Não é obrigatório se numSplits estiver definido como um.
Número de divisões Sim Não Número de divisões a gerar.
Tamanho Sim Não O número de linhas a obter de cada vez por divisão. Um tamanho de obtenção maior pode resultar numa importação mais rápida, com a desvantagem de uma utilização de memória mais elevada. Se não for especificado, o valor predefinido é 1000.

Mapeamentos de tipos de dados

A tabela seguinte é uma lista de tipos de dados do Redshift com os tipos de CDAP correspondentes:

Tipo de dados do Redshift Tipo de dados do esquema CDAP
bigint long
boolean boolean
character string
character varying string
date date
double precision double
geometry bytes
hllsketch string
integer int
json string
numeric(precision, scale)/decimal(precision, scale) decimal
numeric com precisão 0 string
real float
smallint int
super string
text string
time [ (p) ] sem fuso horário time
time [ (p) ] com fuso horário string
timestamp [ (p) ] sem fuso horário timestamp
timestamp [ (p) ] com fuso horário timestamp
varbyte byte
xml string

Práticas recomendadas

As seguintes práticas recomendadas aplicam-se quando se liga a um cluster do Redshift a partir do Google Cloud.

Use listas de autorizações de endereços IP

Para impedir o acesso a partir de fontes não autorizadas e restringir o acesso a endereços IP específicos, ative os controlos de acesso no cluster do Redshift.

Se usar controlos de acesso do Redshift, para aceder ao cluster no Cloud Data Fusion, siga estes passos:

  1. Obtenha os endereços IP externos dos serviços ou das máquinas que têm de se ligar ao cluster do Redshift, como o IP do servidor proxy (consulte Ver endereços IP).Google Cloud Para clusters do Dataproc, obtenha os endereços IP de todos os nós principais e secundários.
  2. Adicione os endereços IP a uma lista de autorizações nos grupos de segurança criando as regras de entrada para os Google Cloud endereços IP da máquina.

  3. Adicione as propriedades de associação no Wrangler e teste-as:

    1. Abra a instância do Cloud Data Fusion na interface Web.
    2. Clique em Wrangler > Adicionar ligação e crie a nova ligação para o Redshift.
    3. Introduza todas as propriedades de ligação.
    4. Clique em Testar ligação e resolva eventuais problemas.

Para criar várias divisões, use consultas de limites

Para várias divisões, use consultas de limite para gerir o cluster de vários nós. Em cenários em que extrai dados do Redshift e distribui a carga uniformemente por cada nó, configure uma consulta de limite nas propriedades do conector de origem do Redshift.

  1. No pipeline do Cloud Data Fusion na página Studio, aceda ao nó do Redshift e clique em Propriedades.
  2. Nas propriedades Avançadas, especifique o seguinte:

    1. Introduza o número de divisões a criar.
    2. Introduza o tamanho da obtenção para cada divisão.
    3. Introduza uma consulta de limite para aplicar ao cluster do Redshift com vários nós.
    4. Introduza o nome do campo Coluna dividida.

Por exemplo, suponha que tem o seguinte exemplo de utilização:

  • Tem uma tabela que contém 10 milhões de registos.
  • Tem uma coluna de ID exclusivo denominada id.
  • O cluster do Redshift tem 4 nós.
  • Objetivo: para tirar partido do potencial do cluster, planeia gerar várias divisões. Para o conseguir, use as seguintes configurações de propriedades:

    • No campo Consulta delimitadora, introduza a seguinte consulta:

      SELECT MIN(id), MAX(id) FROM tableName
      

      Nesta consulta, id é o nome da coluna onde as divisões são aplicadas.

    • No campo Dividir coluna, introduza o nome da coluna, id.

    • Introduza o número de divisões e o tamanho da obtenção. Estas propriedades estão interligadas, o que lhe permite calcular divisões com base num tamanho de obtenção ou vice-versa. Para este exemplo, introduza o seguinte.

    • No campo Número de divisões, introduza 40. Neste exemplo, em que a tabela tem dez milhões de registos, a criação de 40 divisões resulta em cada divisão com 250 mil registos.

    • No campo Tamanho da obtenção, introduza 250,000.

O que se segue?