Usando pacotes de extensão com AWS Schema Conversion Tool - AWS Schema Conversion Tool

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando pacotes de extensão com AWS Schema Conversion Tool

O pacote de extensão da AWS SCT é um módulo complementar que emula funções presentes em um banco de dados de origem e necessárias ao converter objetos para o banco de dados de destino. Antes de instalar um pacote de AWS SCT extensão, você converte o esquema do banco de dados.

Cada pacote AWS SCT de extensão inclui os seguintes componentes:

  • Esquema de banco de dados — inclui SQL funções, procedimentos e tabelas para emular determinados objetos de banco de dados de processamento de transações on-line (OLTP) e processamento analítico on-line (OLAP), como sequências. Além disso, emula sem suporte built-in-functions do banco de dados de origem. O nome desse esquema tem o seguinte formato: aws_database_engine_name_ext.

  • AWS Lambda funções (para determinados OLTP bancos de dados) — Inclui AWS Lambda funções que emulam funcionalidades complexas do banco de dados, como agendamento de tarefas e envio de e-mails.

  • Bibliotecas personalizadas para OLAP bancos de dados — Inclui um conjunto de bibliotecas Java e Python que você pode usar para migrar scripts AWS Glue de extração, transformação e carregamento SSIS () do SQL Microsoft Server Integration Services ETL () para ou. AWS Glue Studio

    As bibliotecas Java incluem os seguintes módulos:

    • spark-excel_2.11-0.13.1.jar: para emular a funcionalidade dos componentes de origem e destino do Excel.

    • spark-xml_2.11-0.9.0.jar,poi-ooxml-schemas-4.1.2.jar, e xmlbeans-3.1.0.jar — Para emular a funcionalidade do componente de XML origem.

    As bibliotecas Python incluem os seguintes módulos:

    • sct_utils.py— Para emular os tipos de dados de origem e preparar parâmetros para a consulta do SparkSQL.

    • ssis_datetime.py: para emular funções integradas de data e hora.

    • ssis_null.py: para emular as funções integradas ISNULL e REPLACENULL.

    • ssis_string.py: para emular funções integradas de string.

    Para mais informações sobre essas bibliotecas, consulte Como usar bibliotecas personalizadas para pacotes de extensão da AWS SCT.

Você pode aplicar pacotes AWS SCT de extensão de duas maneiras:

  • AWS SCT pode aplicar automaticamente um pacote de extensão ao aplicar um script de banco de dados de destino escolhendo Aplicar ao banco de dados no menu de contexto. AWS SCT aplica o pacote de extensão antes de aplicar todos os outros objetos do esquema.

  • Para aplicar manualmente o pacote de extensão escolha o banco de dados de destino e em seguida escolha Aplicar pacote de extensão para no menu de contexto (clique com o botão direito do mouse). Na maioria das situações, a aplicação automática é suficiente. No entanto, talvez você queira aplicar o pacote manualmente caso ele seja excluído acidentalmente.

Cada vez que você aplica um pacote de AWS SCT extensão a um armazenamento de dados de destino, os componentes são sobrescritos e AWS SCT exibem uma notificação sobre isso. Para desativar essas notificações, escolha Configurações, Configurações globais, Notificações e selecione Ocultar o alerta de substituição do pacote de extensão.

Para uma conversão do Microsoft SQL Server para o PostgreSQL, você pode usar o pacote de SQL extensão SQL Server para Postgre em. AWS SCT Esse pacote de extensão emula o SQL Server Agent e o SQL Server Database Mail. Para ter mais informações, consulte Emulando o SQL Server Agent no Postgre SQL com um pacote de extensão e Emulando o SQL Server Database Mail no Postgre SQL com um pacote de extensão.

A seguir, você pode encontrar mais informações sobre como trabalhar com pacotes AWS SCT de extensão.

Permissões para usar o pacote AWS SCT de extensão

O pacote AWS SCT de extensão para o Amazon Aurora emula envio de e-mails, agendamento de trabalhos, filas e outras operações usando funções. AWS Lambda Quando você aplica o pacote de AWS SCT extensões ao seu banco de dados Aurora de destino, AWS SCT cria uma nova função AWS Identity and Access Management (IAM) e uma política em IAM linha. Em seguida, AWS SCT cria uma nova função Lambda e configura seu cluster de banco de dados Aurora para conexões de saída com o. AWS Lambda Para executar essas operações, certifique-se de conceder as seguintes permissões necessárias ao seu IAM usuário:

  • iam:CreateRole— para criar uma nova IAM função para sua AWS conta.

  • iam:CreatePolicy— para criar uma nova IAM política para sua AWS conta.

  • iam:AttachRolePolicy— para anexar a política especificada à sua IAM função.

  • iam:PutRolePolicy— para atualizar um documento de política embutido que esteja incorporado à sua IAM função.

  • iam:PassRole— para passar a IAM função especificada para o mecanismo de regras.

  • iam:TagRole— para adicionar tags a uma IAM função.

  • iam:TagPolicy— para adicionar tags a uma IAM política.

  • lambda:ListFunctions: para ver a lista de suas funções do Lambda.

  • lambda:ListTags: para ver a lista de tags de suas funções do Lambda.

  • lambda:CreateFunction: para criar uma nova função do Lambda.

  • rds:AddRoleToDBCluster— para associar uma IAM função ao seu cluster de banco de dados Aurora.

O pacote AWS SCT de extensão para o Amazon Redshift emula as funções básicas do armazém de dados de origem que são necessárias ao aplicar objetos convertidos ao Amazon Redshift. Antes de aplicar seu código convertido ao Amazon Redshift, você deve aplicar o pacote de extensão para o Amazon Redshift. Para fazer isso, inclua a iam:SimulatePrincipalPolicy ação em sua IAM política.

AWS SCT usa o IAM Policy Simulator para verificar as permissões necessárias para instalar o pacote de extensões do Amazon Redshift. O IAM Policy Simulator pode exibir uma mensagem de erro mesmo que você tenha configurado corretamente seu IAM usuário. Esse é um problema conhecido do IAM Policy Simulator. Além disso, o IAM Policy Simulator exibe uma mensagem de erro quando você não tem a iam:SimulatePrincipalPolicy ação em sua IAM política. Nesses casos, você pode ignorar a mensagem de erro e aplicar o pacote de extensão usando o assistente de pacote de extensão. Para obter mais informações, consulte Como aplicar o pacote de extensão.

Como usar o esquema do pacote de extensão

Quando você converte seu banco de dados ou esquema de data warehouse, a AWS SCT adiciona mais um esquema ao seu banco de dados de destino. Esse esquema implementa as funções SQL do sistema do banco de dados de origem que são necessárias ao gravar o esquema convertido no banco de dados de destino. Esse esquema adicional é chamado de esquema do pacote de extensões.

O esquema do pacote de extensões para OLTP bancos de dados é nomeado de acordo com o banco de dados de origem da seguinte forma:

  • SQLServidor Microsoft: AWS_SQLSERVER_EXT

  • MeuSQL: AWS_MYSQL_EXT

  • Oracle: AWS_ORACLE_EXT

  • Cartaz: SQL AWS_POSTGRESQL_EXT

O esquema do pacote de extensão para aplicativos de OLAP data warehouse é nomeado de acordo com o armazenamento de dados de origem da seguinte forma:

  • Greenplum: AWS_GREENPLUM_EXT

  • SQLServidor Microsoft: AWS_SQLSERVER_EXT

  • Netezza: AWS_NETEZZA_EXT

  • Oracle: AWS_ORACLE_EXT

  • Teradata: AWS_TERADATA_EXT

  • Vertica: AWS_VERTICA_EXT

Como usar bibliotecas personalizadas para pacotes de extensão da AWS SCT

Em alguns casos, não é AWS SCT possível converter recursos do banco de dados de origem em recursos equivalentes no banco de dados de destino. O pacote de AWS SCT extensão relevante contém bibliotecas personalizadas que emulam algumas funcionalidades do banco de dados de origem em seu banco de dados de destino.

Se você estiver convertendo um banco de dados transacional, consulte Usando as AWS Lambda funções do pacote AWS SCT de extensão .

Como aplicar o pacote de extensão

Você pode aplicar o pacote de AWS SCT extensão usando o assistente do pacote de extensão ou ao aplicar o código convertido ao seu banco de dados de destino.

Para aplicar o pacote de extensão usando o assistente de pacote de extensão
  1. Na árvore do AWS Schema Conversion Tool banco de dados de destino, abra o menu de contexto (clique com o botão direito do mouse), escolha Aplicar pacote de extensão para e escolha sua plataforma de banco de dados de origem.

    Menu de contexto Aplicar pacote de extensão

    O assistente do pacote de extensões é exibido.

  2. Leia a página Bem-vindo e escolha Próximo.

  3. Na página Configurações do perfil do AWS , faça o seguinte:

    • Se você estiver reinstalando apenas o esquema do pacote de extensões, escolha Ignorar esta etapa por enquanto e, em seguida, Próximo. A opção Ignorar esta etapa por enquanto só está disponível para bancos de dados de processamento de transações on-line (OLTP).

    • Se você estiver fazendo upload da biblioteca nova, forneça as credenciais para se conectar à sua Conta da AWS. Use essa etapa somente ao converter OLAP bancos de dados ou ETL scripts. Você pode usar suas credenciais AWS Command Line Interface (AWS CLI) se tiver as AWS CLI instaladas. Também é possível usar as credenciais armazenadas anteriormente em um perfil nas configurações globais do aplicativo associadas ao projeto. Se necessário, escolha Navegar até as configurações globais para configurar ou associar um perfil diferente ao seu AWS SCT projeto. Para obter mais informações, consulte Gerenciando perfis no AWS Schema Conversion Tool.

  4. Se você estiver fazendo o upload de uma nova biblioteca escolha Preciso carregar uma biblioteca na página de Upload da biblioteca. Use essa etapa somente ao converter OLAP bancos de dados ou ETL scripts. Em seguida, forneça o caminho do Amazon S3 e escolha Fazer upload da biblioteca para o S3.

    Se você já fez o upload da biblioteca escolha Já tenho bibliotecas carregadas, use meu bucket S3 existente na página Upload da biblioteca. Em seguida, forneça o caminho do Amazon S3.

    Quando concluir, escolha Next.

  5. Na página Emulação de funções, escolha Criar pacote de extensão. As mensagens são exibidas com o status das operações do pacote de extensões.

    Quando terminar, escolha Concluir.

Para aplicar o pacote de extensão ao aplicar o código convertido
  1. Especifique o bucket do Amazon S3 em seu perfil de AWS serviço. Use essa etapa somente ao converter OLAP bancos de dados ou ETL scripts. Para obter mais informações, consulte Gerenciando perfis no AWS Schema Conversion Tool.

    Certifique-se de que sua política do bucket do Amazon S3 inclua as seguintes permissões:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:SimulatePrincipalPolicy"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:GetUser"], "Resource": ["arn:aws:iam::111122223333:user/DataExtractionAgentName"] } ] }

    No exemplo anterior, substitua 111122223333:user/DataExtractionAgentName com o nome do seu IAM usuário.

  2. Converter seus esquemas de data warehouse de origem. Para obter mais informações, consulte Conversão de esquemas de data warehouse.

  3. No painel do direito escolha o esquema convertido.

  4. Abra o menu de contexto (clique com o botão direito do mouse) do elemento do esquema e escolha Aplicar ao banco de dados.

  5. AWS SCT gera pacotes de extensão com os componentes necessários e adiciona o aws_database_engine_name_ext esquema na árvore de destino. Em seguida, AWS SCT aplica o código convertido e o esquema do pacote de extensões ao seu data warehouse de destino.

    Quando você usa uma combinação do Amazon Redshift e AWS Glue como sua plataforma de banco de dados de destino, AWS SCT adiciona um esquema adicional ao pacote de extensões.

Usando as AWS Lambda funções do pacote AWS SCT de extensão

AWS SCT fornece um pacote de extensões que contém funções Lambda para e-mail, agendamento de trabalhos e outros recursos para bancos de dados hospedados na Amazon. EC2

Usando AWS Lambda funções para emular a funcionalidade do banco de dados

Em alguns casos, os recursos do banco de dados não podem ser convertidos em RDS recursos equivalentes da Amazon. Por exemplo, a Oracle envia chamadas de e-mail que usamUTL_SMTP, e o Microsoft SQL Server pode usar um agendador de tarefas. Se você hospeda e gerencia automaticamente um banco de dados na AmazonEC2, pode emular esses recursos AWS substituindo-os por serviços.

O assistente do pacote de AWS SCT extensões ajuda você a instalar, criar e configurar funções do Lambda para emular e-mail, agendamento de trabalhos e outros recursos.

Como aplicar o pacote de extensão para oferecer suporte às funções do Lambda

Você pode aplicar o pacote de extensão para oferecer suporte às funções do Lambda usando o assistente de pacote de extensão ou aplicando o código convertido ao seu banco de dados de destino.

Importante

Os recursos AWS de emulação de serviços são compatíveis somente com bancos de dados instalados e autogerenciados na Amazon. EC2 Não instale os recursos de emulação de serviço se seu banco de dados de destino estiver em uma RDS instância de banco de dados Amazon.

Para aplicar o pacote de extensão usando o assistente de pacote de extensão
  1. Na árvore do AWS Schema Conversion Tool banco de dados de destino, abra o menu de contexto (clique com o botão direito do mouse), escolha Aplicar pacote de extensão para e escolha sua plataforma de banco de dados de origem.

    Menu de contexto Aplicar pacote de extensão

    O assistente do pacote de extensões é exibido.

  2. Leia a página Bem-vindo e escolha Próximo.

  3. Na página Configurações do perfil do AWS , faça o seguinte:

    • Se você estiver reinstalando apenas o esquema do pacote de extensões, escolha Ignorar esta etapa por enquanto e, em seguida, Próximo.

    • Se você estiver instalando AWS serviços, forneça as credenciais para se conectar ao seu Conta da AWS. Você pode usar suas AWS CLI credenciais se tiver AWS CLI instalado. Também é possível usar as credenciais armazenadas anteriormente em um perfil nas configurações globais do aplicativo associadas ao projeto. Se necessário, escolha Navegar até configurações do projeto para associar um perfil diferente ao projeto. Se necessário, escolha Configurações globais para criar um novo perfil. Para obter mais informações, consulte Gerenciando perfis no AWS Schema Conversion Tool.

  4. Na página Serviço de envio de e-mail, faça o seguinte:

    • Se você estiver reinstalando apenas o esquema do pacote de extensões, escolha Ignorar esta etapa por enquanto e, em seguida, Próximo.

    • Se você estiver instalando AWS serviços e tiver uma função Lambda existente, poderá fornecê-la. Caso contrário, o assistente a cria para você. Quando concluir, escolha Next.

  5. Na página Serviço de emulação de tarefas, faça o seguinte:

    • Se você estiver reinstalando apenas o esquema do pacote de extensões, escolha Ignorar esta etapa por enquanto e, em seguida, Próximo.

    • Se você estiver instalando AWS serviços e tiver uma função Lambda existente, poderá fornecê-la. Caso contrário, o assistente a cria para você. Quando concluir, escolha Next.

  6. Na página Emulação de funções, escolha Criar pacote de extensão. As mensagens são exibidas com o status das operações do pacote de extensões.

    Quando terminar, escolha Concluir.

nota

Para atualizar um pacote de extensão e substituir os componentes antigos do pacote de extensão, certifique-se de usar a versão mais recente do AWS SCT. Para obter mais informações, consulte Instalando e configurando AWS Schema Conversion Tool.

Configurando funções para o pacote de AWS SCT extensão

O pacote de extensão contém funções que você deve configurar antes de usar. A constante CONVERSION_LANG define o idioma que o service pack usa. As funções estão disponíveis para inglês e alemão.

Para definir o idioma como inglês ou alemão, faça a seguinte alteração no código da função. Encontre a seguinte declaração constante:

CONVERSION_LANG CONSTANT VARCHAR := '';

CONVERSION_LANGPara definir como inglês, altere a linha para o seguinte:

CONVERSION_LANG CONSTANT VARCHAR := 'English';

CONVERSION_LANGPara definir como inglês, altere a linha para o seguinte:

CONVERSION_LANG CONSTANT VARCHAR := 'Deutsch';

Defina essa configuração para as seguintes funções:

  • aws_sqlserver_ext.conv_datetime_to_string

  • aws_sqlserver_ext.conv_date_to_string

  • aws_sqlserver_ext.conv_string_to_date

  • aws_sqlserver_ext.conv_string_to_datetime

  • aws_sqlserver_ext.conv_string_to_datetime

  • aws_sqlserver_ext.parse_to_date

  • aws_sqlserver_ext.parse_to_datetime

  • aws_sqlserver_ext.parse_to_time