Como usar pacotes de extensão com o 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. Para poder instalar o pacote de extensão da AWS SCT, converta o esquema de banco de dados.
Cada pacote de extensão da AWS SCT inclui os seguintes componentes:
Esquema de banco de dados: inclui funções, procedimentos e tabelas SQL 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 funções integradas não suportadas do banco de dados de origem. O nome desse esquema tem o seguinte formato:
aws_.database_engine_name_extFunções do AWS Lambda (para bancos de dados OLTP selecionados): incluem as funções do AWS Lambda que emulam a funcionalidade complexa de banco de dados, como a programação de trabalhos e o envio de e-mails.
Bibliotecas personalizadas para bancos de dados OLAP: incluem um conjunto de bibliotecas Java e Python que você pode usar para migrar scripts de extração, transformação e carregamento (ETL) do Microsoft SQL Server Integration Services (SSIS) para AWS Glue 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.jarexmlbeans-3.1.0.jar: para emular a funcionalidade do componente de origem XML.
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 Spark SQL.ssis_datetime.py: para emular funções integradas de data e hora.ssis_null.py: para emular as funções integradasISNULLeREPLACENULL.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.
É possível aplicar o pacote de extensão da AWS SCT de duas formas:
A AWS SCT aplica automaticamente o pacote de extensão quando você aplica um script do banco de dados de destino escolhendo Aplicar ao banco de dados no menu de contexto. A AWS SCT aplica o pacote de extensão antes de aplicar todos os outros objetos de 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 extensão da AWS SCT a um armazenamento de dados de destino, os componentes são sobrescritos e a AWS SCT exibe 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 extensão SQL Server para PostgreSQL na AWS SCT. Esse pacote de extensão emula o SQL Server Agent e o SQL Server Database Mail. Para obter mais informações, consulte Emulando o SQL Server Agent no PostgreSQL com um pacote de extensão e Emulando o SQL Server Database Mail no PostgreSQL com um pacote de extensão.
A seguir, você pode encontrar mais informações sobre como trabalhar com pacotes de extensão da AWS SCT.
Tópicos
Permissões para usar o pacote de extensão da AWS SCT
O pacote de extensão da AWS SCT para o Amazon Aurora emula envio de e-mails, agendamento de trabalhos, filas e outras operações usando funções do AWS Lambda. Quando você aplica o pacote de extensão AWS SCT ao seu banco de dados Aurora de destino, a AWS SCT cria uma nova função do AWS Identity and Access Management (IAM) e uma política do IAM embutida. Em seguida, a AWS SCT cria uma nova função do Lambda e configura seu cluster do 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 usuário do IAM:
iam:CreateRole: para criar um perfil do IAM para sua conta da AWS.iam:CreatePolicy: para criar uma nova política do IAM para sua conta da AWS.iam:AttachRolePolicy: para vincular a política especificada ao seu perfil do IAM.iam:PutRolePolicy: para atualizar um documento de política em linha incorporado em seu perfil do IAM.iam:PassRole: para passar o perfil do IAM especificado para o mecanismo de regras.iam:TagRole: para adicionar tags a um perfil do IAM.iam:TagPolicy: para adicionar tags a uma política do IAM.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 essa perfil do IAM ao seu cluster de banco de dados do Aurora.
O pacote de extensão da AWS SCT para o Amazon Redshift emula as funções básicas do data warehouse de origem que são necessárias ao aplicar objetos convertidos para o 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 ação iam:SimulatePrincipalPolicy na sua política do IAM.
A AWS SCT usa o simulador de políticas do IAM para verificar as permissões necessárias para instalar o pacote de extensão do Amazon Redshift. O simulador de políticas do IAM pode exibir uma mensagem de erro mesmo que você tenha configurado corretamente seu usuário do IAM. Este é um problema conhecido do simulador de políticas do IAM. Além disso, o simulador de políticas do IAM exibe uma mensagem de erro quando você não tem a ação iam:SimulatePrincipalPolicy na sua política do IAM. 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 de sistema SQL do banco de dados de origem necessárias para 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 bancos de dados OLTP é nomeado de acordo com o banco de dados de origem da seguinte forma:
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT -
MySQL:
AWS_MYSQL_EXT -
Oracle:
AWS_ORACLE_EXT -
PostgreSQL: :
AWS_POSTGRESQL_EXT
O esquema do pacote de extensões para aplicativos de data warehouse OLAP é nomeado de acordo com o armazenamento de dados de origem da seguinte forma:
-
Greenplum:
AWS_GREENPLUM_EXT -
Microsoft SQL Server:
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, a AWS SCT não pode converter recursos do banco de dados para recursos equivalentes no seu banco de dados. O pacote de extensão relevante da AWS SCT contém bibliotecas personalizadas que emulam algumas funcionalidades de banco de dados de origem no seu banco de dados de destino.
Se você estiver convertendo um banco de dados transacional, consulte Como usar as funções do AWS Lambda do pacote de extensão da AWS SCT.
Como aplicar o pacote de extensão
Você pode aplicar o pacote de extensão da AWS SCT usando o assistente de pacote de extensão ou aplicando 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
-
Na AWS Schema Conversion Tool, na árvore do banco de dados de destino, abra o menu de contexto (clique com o botão direito do mouse) e escolha Aplicar pacote de extensão a e escolha sua plataforma de banco de dados de origem.
O assistente do pacote de extensões é exibido.
-
Leia a página Bem-vindo e escolha Próximo.
-
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 etapa por enquanto só está disponível para bancos de dados de processamento de transações online (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 bancos de dados OLAP ou scripts de ETL. Você poderá usar suas credenciais da AWS Command Line Interface (AWS CLI), se tiver a AWS CLI instalada. Também é possível usar as credenciais armazenadas anteriormente em um perfil nas configurações globais do aplicativo associadas ao projeto. Se necessário, selecione Navegar até configurações globais para configurar ou associar um perfil diferente ao projeto da AWS SCT. Para obter mais informações, consulte Gerenciando perfis no AWS Schema Conversion Tool.
-
-
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 bancos de dados OLAP ou scripts de ETL. 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.
-
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
-
Especifique o bucket do Amazon S3 no seu perfil de serviço da AWS. Use essa etapa somente ao converter bancos de dados OLAP ou scripts de ETL. 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:
No exemplo anterior, substitua
111122223333:user/DataExtractionAgentNamepor seu nome de usuário do IAM. -
Converter seus esquemas de data warehouse de origem. Para obter mais informações, consulte Conversão de esquemas de data warehouse .
-
No painel do direito escolha o esquema convertido.
-
Abra o menu de contexto (clique com o botão direito do mouse) do elemento do esquema e escolha Aplicar ao banco de dados.
-
A AWS SCT gera pacotes de extensão com os componentes necessários e adiciona o esquema
aws_na árvore de destino. Em seguida, a AWS SCT aplica o código convertido e o esquema do pacote de extensão ao seu data warehouse de destino.database_engine_name_extSe usar uma combinação de Amazon Redshift e AWS Glue como plataforma de banco de dados de destino, a AWS SCT adiciona mais um esquema ao pacote de extensão.
Como usar as funções do AWS Lambda do pacote de extensão da AWS SCT
O pacote de extensão da AWS SCT contém funções do Lambda que oferecem e-mail, programação de trabalhos e outros recursos para bancos de dados hospedados no Amazon EC2.
Como usar as funções do AWS Lambda para emular a funcionalidade de banco de dados
Em alguns casos, os recursos do banco de dados não podem ser convertidos em recursos do Amazon RDS equivalentes. Por exemplo, a Oracle envia chamadas de e-mail que usam UTL_SMTP, e o Microsoft SQL Server pode usar um programador de trabalho. Se você hospedar e autogerenciar um banco de dados no Amazon EC2, poderá emular esses recursos substituindo os serviços da AWS por eles.
O assistente de pacote de extensão da AWS SCT ajuda você a instalar, criar e configurar funções do Lambda para emular e-mail, programação 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 de emulação de serviço da AWS têm suporte apenas para bancos de dados instalados e autogerenciados no Amazon EC2. Não instale os recursos de emulação de serviço se o seu banco de dados de destino estiver em uma instância de banco de dados do Amazon RDS.
Para aplicar o pacote de extensão usando o assistente de pacote de extensão
-
Na AWS Schema Conversion Tool, na árvore do banco de dados de destino, abra o menu de contexto (clique com o botão direito do mouse) e escolha Aplicar pacote de extensão a e escolha sua plataforma de banco de dados de origem.
O assistente do pacote de extensões é exibido.
-
Leia a página Bem-vindo e escolha Próximo.
-
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 os serviços da AWS, forneça as credenciais para se conectar à sua conta da Conta da AWS. Você poderá usar suas credenciais da AWS CLI, se tiver a AWS CLI instalada. 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.
-
-
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 os serviços da AWS e tiver uma função do Lambda existente, você poderá fornecê-la. Caso contrário, o assistente a cria para você. Quando concluir, escolha Next.
-
-
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 os serviços da AWS e tiver uma função do Lambda existente, você poderá fornecê-la. Caso contrário, o assistente a cria para você. Quando concluir, escolha Next.
-
-
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 da AWS SCT. Para obter mais informações, consulte Instalação e configuração do AWS Schema Conversion Tool.
Como configurar as funções para o pacote de extensão do AWS SCT
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 pacote de serviço 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 := '';
Para definir CONVERSION_LANG em inglês, altere a linha para o seguinte:
CONVERSION_LANG CONSTANT VARCHAR := 'English';
Para definir CONVERSION_LANG em 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_stringaws_sqlserver_ext.conv_date_to_stringaws_sqlserver_ext.conv_string_to_dateaws_sqlserver_ext.conv_string_to_datetimeaws_sqlserver_ext.conv_string_to_datetimeaws_sqlserver_ext.parse_to_dateaws_sqlserver_ext.parse_to_datetimeaws_sqlserver_ext.parse_to_time