Conceitos básicos das integrações ETL zero - Amazon Redshift

Conceitos básicos das integrações ETL zero

Antes de configurar a integração ETL zero no Amazon Redshift, configure a origem de integração e o configure com as permissões e os parâmetros necessários. Depois, prossiga com a configuração inicial restante na AWS CLI e no console do Amazon Redshift.

Para criar uma integração ETL zero do Aurora com o Amazon Redshift

Para criar uma integração ETL zero do Aurora com o Amazon Redshift, faça o seguinte:

  1. No console do Amazon RDS, crie um grupo de parâmetros do cluster do banco de dados personalizado conforme descrito no Guia do usuário do Amazon Aurora.

  2. No console do Amazon RDS, crie um cluster do banco de dados do Amazon Aurora de origem conforme descrito no Guia do usuário do Amazon Aurora.

  3. No console do Amazon Redshift: Criar e configurar um data warehouse do Amazon Redshift de destino.

  4. No console do Amazon RDS, crie uma integração ETL zero, conforme descrito no Guia do usuário do Amazon Aurora.

  5. No console do Amazon Redshift ou no editor de consultas v2, crie um banco de dados do Amazon Redshift a partir da integração.

    Em seguida, consulte e crie visões materializadas com dados replicados.

Para criar uma integração ETL zero do RDS com o Amazon Redshift

Para criar uma integração ETL zero do RDS com o Amazon Redshift, faça o seguinte:

  1. No console do Amazon RDS, crie um grupo de parâmetros do banco de dados personalizado conforme descrito no Guia do usuário do Amazon Aurora.

  2. No console do Amazon RDS, crie uma instância do Amazon RDS de origem conforme descrito no Guia do usuário do Amazon Aurora.

  3. No console do Amazon Redshift: Criar e configurar um data warehouse do Amazon Redshift de destino.

  4. No console do Amazon RDS, crie uma integração ETL zero conforme descrito no Guia do usuário do Amazon RDS.

  5. No console do Amazon Redshift ou no editor de consultas v2, crie um banco de dados do Amazon Redshift a partir da integração.

    Em seguida, consulte e crie visões materializadas com dados replicados.

O console do Amazon RDS oferece um fluxo de criação da integração passo a passo, no qual você especifica o banco de dados de origem e o data warehouse de destino do Amazon Redshift. Se ocorrerem problemas, você poderá optar por fazer o Amazon RDS corrigir os problemas, em vez de corrigi-los manualmente no console do Amazon RDS ou do Amazon Redshift.

Criar e configurar um data warehouse do Amazon Redshift de destino

Antes dessa etapa, crie a fonte de integração e configure parâmetros exigidos pelo tipo da fonte para integrações ETL zero.

Nesta etapa, você cria e configura um data warehouse do Amazon Redshift de destino, como um grupo de trabalho do Redshift Serverless ou um cluster provisionado.

O data warehouse de destino deve ter as seguintes características:

nota

Para integrações ETL zero do Aurora PostgreSQL e do RDS for MySQL com o Amazon Redshift, considere também o seguinte para o data warehouse de destino.

  • Você deve criar o data warehouse na Pré-visualização na faixa preview_2023. Não é possível usar recursos de visualização em produção nem mover o data warehouse de visualização para uma implantação de produção.

  • Se você optar por criar um cluster provisionado pelo Amazon Redshift, esse cluster deverá ter pelo menos dois nós.

  • Para origens do Aurora PostgreSQL, você deve criar o data warehouse de destino na região Leste dos EUA (Ohio) da AWS. Você deve criar o banco de dados de origem para integrações ETL zero do Aurora PostgreSQL usando o Ambiente de Pré-visualização do Banco de Dados do Amazon RDS.

    Para origens do RDS for MySQL, você deve criar o data warehouse de destino em uma região da AWS compatível. Para obter uma lista das regiões da AWS onde as integrações ETL zero do RDS for MySQL estão disponíveis, consulte Supported Regions for zero-ETL integrations with Amazon Redshift no Guia do usuário do Amazon RDS.

Para criar o data warehouse de destino em Pré-visualização das integrações ETL zero do Aurora PostgreSQL e do RDS for MySQL, consulte um dos seguintes tópicos, dependendo do tipo de implantação:

Para criar o data warehouse de destino para as integrações ETL zero do Aurora MySQL, consulte um dos seguintes tópicos, dependendo do tipo de implantação:

Quando você cria um cluster provisionado, o Amazon Redshift também cria um grupo de parâmetros padrão. Não é possível editar o grupo de parâmetros padrão. No entanto, é possível criar um grupo de parâmetros personalizado antes de criar um novo cluster e depois associá-lo ao cluster. Também é possível editar o grupo de parâmetros que será associado ao cluster criado. Você também deve ativar a diferenciação entre letras maiúsculas e minúsculas ao criar o grupo de parâmetros personalizado ou ao editar um atual para usar integrações ETL zero.

É possível criar um grupo de parâmetros personalizado usando a AWS CLI ou o console do Amazon Redshift da seguinte maneira:

Ative a diferenciação entre letras maiúsculas e minúsculas no data warehouse

É possível anexar um grupo de parâmetros e habilitar a diferenciação de letras maiúsculas e minúsculas para um cluster provisionado durante a criação. No entanto, só será possível atualizar um grupo de trabalho de tecnologia sem servidor por meio do AWS Command Line Interface (AWS CLI) depois que ele tiver sido criado. Isso é exigido para dar suporte à diferenciação de letras maiúsculas e minúsculas do MySQL e do PostgreSQL. enable_case_sensitive_identifier é um valor de configuração que determina se identificadores de nome de bancos de dados, tabelas e colunas diferenciam letras maiúsculas e minúsculas. Esse parâmetro deve ser ativado para criar Integrações ETL zero no data warehouse. Para obter mais informações, consulte enable_case_sensitive_identifier.

Para o Amazon Redshift sem servidor: Ativar a diferenciação de letras maiúsculas e minúsculas para o Amazon Redshift sem servidor usando a AWS CLI. Só é possível ativar a diferenciação de letras maiúsculas e minúsculas para o Amazon Redshift sem servidor por meio da AWS CLI.

Para clusters provisionados pelo Amazon Redshift, habilite a distinção entre maiúsculas e minúsculas para o cluster de destino usando um dos seguintes tópicos:

Ativar a diferenciação de letras maiúsculas e minúsculas para o Amazon Redshift sem servidor usando a AWS CLI

Execute o comando AWS CLI para ativar a diferenciação entre letras maiúsculas e minúsculas para o grupo de trabalho.

aws redshift-serverless update-workgroup \ --workgroup-name target-workgroup \ --config-parameters parameterKey=enable_case_sensitive_identifier,parameterValue=true

Aguarde até que o status do grupo de trabalho seja Active para passar à próxima etapa.

Ativar a diferenciação entre letras maiúsculas e minúsculas para clusters provisionados pelo Amazon Redshift usando o console do Amazon Redshift

  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. No painel de navegação à esquerda, escolha Painel de clusters provisionados.

  3. Escolha o cluster provisionado no qual você deseja replicar os dados.

  4. No painel de navegação à esquerda, escolha Configurações > Gerenciamento de workloads.

  5. Na página de gerenciamento de workloads, escolha o grupo de parâmetros.

  6. Selecione a guia Parâmetros.

  7. Escolha Editar parâmetros e altere enable_case_sensitive_identifier para verdadeiro.

  8. Selecione Salvar.

Ativar a diferenciação de letras maiúsculas e minúsculas para clusters provisionados pelo Amazon Redshift usando a AWS CLI

  1. Como não é possível editar o grupo de parâmetros padrão, no programa de terminal, execute o comando AWS CLI a seguir para criar um grupo de parâmetros personalizado. Posteriormente, você vai associá-lo ao cluster provisionado.

    aws redshift create-cluster-parameter-group \ --parameter-group-name zero-etl-params \ --parameter-group-family redshift-1.0 \ --description "Param group for zero-ETL integrations"
  2. Execute o comando AWS CLI a seguir para ativar a diferenciação entre letras maiúsculas e minúsculas para o grupo de parâmetros.

    aws redshift modify-cluster-parameter-group \ --parameter-group-name zero-etl-params \ --parameters ParameterName=enable_case_sensitive_identifier,ParameterValue=true
  3. Execute o comando a seguir para associar o grupo de parâmetros ao cluster.

    aws redshift modify-cluster \ --cluster-identifier target-cluster \ --cluster-parameter-group-name zero-etl-params
  4. Aguarde até que o cluster provisionado esteja disponível. É possível verificar o status do cluster usando o comando describe-cluster. Depois, execute o comando a seguir para reiniciar o cluster.

    aws redshift reboot-cluster \ --cluster-identifier target-cluster

Configurar a autorização para o data warehouse do Amazon Redshift

Para replicar dados da origem da integração para o data warehouse do Amazon Redshift, você deve adicionar estas duas entidades inicialmente:

  • Entidade principal autorizada: identifica o usuário ou a função que pode criar Integrações ETL zero no data warehouse.

  • Fonte de integração autorizada: identifica o banco de dados de origem capaz de atualizar o data warehouse.

É possível configurar entidades principais e fontes de integração autorizadas na guia Política de recursos no console do Amazon Redshift ou usando a operação de API PutResourcePolicy do Amazon Redshift.

Adicionar entidades principais autorizadas

Para criar uma Integração ETL zero no grupo de trabalho ou cluster provisionado do Redshift sem servidor, autorize o acesso ao namespace associado ou ao cluster provisionado.

Você poderá pular essa etapa se as duas condições abaixo forem verdadeiras:

  • A Conta da AWS que detém o grupo de trabalho ou o cluster provisionado do Redshift Serverless também detém o banco de dados de origem.

  • Essa entidade principal está associada a uma política do IAM baseada em identidade com permissões para criar Integrações ETL zero nesse namespace ou cluster provisionado do Redshift sem servidor.

Adicionar entidades principais autorizadas a um namespace do Amazon Redshift sem servidor

  1. No console do Amazon Redshift, no painel de navegação à esquerda, escolha Redshift Serverless.

  2. Escolha Configuração do namespace, o namespace e vá até a guia Política de recursos.

  3. Escolha Adicionar as entidades principais autorizadas.

  4. Para cada entidade principal autorizada que você deseja adicionar, insira no namespace o ARN do usuário ou da função da AWS, ou o ID da conta da Conta da AWS à qual você deseja conceder acesso para criar integrações ETL zero. O ID da conta é armazenado como um ARN.

  5. Escolha Salvar alterações.

Adicionar entidades principais autorizadas a um cluster provisionado do Amazon Redshift

  1. No console do Amazon Redshift, no painel de navegação à esquerda, escolha Painel de clusters provisionados.

  2. Escolha Clusters, o cluster e vá até a guia Política de recursos.

  3. Escolha Adicionar as entidades principais autorizadas.

  4. Para cada entidade principal autorizada que você deseja adicionar, insira no cluster o ARN do usuário ou da função da AWS, ou o ID da conta da Conta da AWS à qual você deseja conceder acesso para criar integrações ETL zero. O ID da conta é armazenado como um ARN.

  5. Escolha Salvar alterações.

Adicionar fontes de integração autorizadas

Para permitir que a origem atualize o data warehouse do Amazon Redshift, você deve adicioná-lo como uma fonte de integração autorizada ao namespace.

Adicionar uma fonte de integração autorizada a um namespace do Amazon Redshift sem servidor

  1. No console do Amazon Redshift, acesse Painel do Serverless.

  2. Escolha o nome do namespace.

  3. Vá até a guia Política de recursos.

  4. Selecione Adicionar a origem de integração autorizada.

  5. Especifique o ARN da origem para a integração ETL zero.

nota

A remoção de uma fonte de integração autorizada impede que os dados se repliquem no namespace. Essa ação desativa todas as integrações ETL zero dessa origem nesse namespace.

Adicionar uma fonte de integração autorizada a um cluster provisionado do Amazon Redshift

  1. No console do Amazon Redshift, acesse o Painel de clusters provisionados.

  2. Escolha o nome do cluster provisionado.

  3. Vá até a guia Política de recursos.

  4. Selecione Adicionar a origem de integração autorizada.

  5. Especifique o ARN da origem que é a fonte de dados para a integração ETL zero.

nota

A remoção de uma fonte de integração autorizada impede que os dados se repliquem no cluster provisionado. Essa ação desativa todas as integrações ETL zero dessa origem no cluster provisionado pelo Amazon Redshift.

Configurar autorização usando a API do Amazon Redshift

É possível usar as operações de API do Amazon Redshift para configurar políticas de recurso que funcionem com integrações ETL zero.

Para controlar a fonte capaz de criar uma integração de entrada no namespace, crie uma política de recurso e a anexe ao namespace. Com a política de recurso, é possível especificar a fonte com acesso à integração. A política de recursos é anexada ao namespace do data warehouse de destino para permitir que a fonte crie uma integração de entrada a fim de replicar dados ativos da fonte para o Amazon Redshift.

Esta é uma política de recurso de exemplo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "redshift:AuthorizeInboundIntegration", "Condition": { "StringEquals": { "aws:SourceArn": "source_arn" } } }, { "Effect": "Allow", "Principal": { "AWS": "source_principal" }, "Action": "redshift:CreateInboundIntegration" } ] }

Isto resume as operações de API do Amazon Redshift aplicáveis à configuração de políticas de recurso para integrações:

  • Use a operação da API PutResourcePolicy para manter a política de recurso. Quando você fornece outra política de recurso, a política de recurso anterior no recurso é substituída. Use a política de recurso do exemplo anterior, que concede permissões para as seguintes ações:

    • CreateInboundIntegration: permite que a entidade principal de origem crie uma integração de entrada para que os dados sejam replicados da origem para o data warehouse de destino.

    • AuthorizeInboundIntegration: permite que o Amazon Redshift valide continuamente se o data warehouse de destino pode receber dados replicados do ARN de origem.

  • Use a operação da API getResourcePolicy para exibir políticas de recursos existentes.

  • Use a operação da API DeleteResourcePolicy para remover uma política do recurso.

Para atualizar uma política de recurso, também é possível usar o comando put-resource-policy da AWS CLI.

Próximas etapas

Agora que configurou a autorização para o data warehouse de destino do Amazon Redshift, você pode criar uma Integração ETL zero e começar a replicar dados.

Dependendo da origem, faça o seguinte: