Usar a AWS CLI para recriar um banco de dados do AWS Glue e suas tabelas
Não é possível renomear um banco de dados do AWS Glue diretamente, mas você pode copiar a definição, modificar a definição e usá-la para recriar o banco de dados com um nome diferente. Da mesma forma, é possível copiar as definições das tabelas do banco de dados antigo, modificar as definições e usar as definições modificadas para recriar as tabelas no novo banco de dados.
nota
O método apresentado não copia o particionamento da tabela.
O procedimento a seguir para o Windows pressupõe que a AWS CLI esteja configurada para saída JSON. Para alterar o formato de saída padrão na AWS CLI, execute aws configure
.
Para copiar um banco de dados do AWS Glue usando a AWS CLI
-
Em um prompt de comando, execute o comando da AWS CLI a seguir para recuperar a definição do banco de dados do AWS Glue que você deseja copiar.
aws glue get-database --name
database_name
Para obter mais informações sobre o comando
get-database
, consulte get-database. -
Salve a saída JSON em um arquivo com o nome do novo banco de dados (por exemplo,
) na área de trabalho.new_database_name
.json -
Abra o arquivo
em um editor de textos.new_database_name
.json -
No arquivo JSON, execute as seguintes etapas:
-
Remova a entrada externa
{ "Database":
e a chave de fechamento correspondente}
no final do arquivo. -
Altere a entrada
Name
para o nome do novo banco de dados. -
Remova o campo
CatalogId
.
-
-
Salve o arquivo.
-
Em um prompt de comando, execute o comando da AWS CLI a seguir para usar o arquivo de definição de banco de dados modificado para criar o banco de dados com o novo nome.
aws glue create-database --database-input "file://~/Desktop\
new_database_name
.json"Para obter mais informações sobre o comando
create-database
, consulte create-database. Para obter informações sobre como usar parâmetros da AWS CLI em um arquivo, consulte Carregar os parâmetros da AWS CLI de um arquivo no Guia do usuário da AWS Command Line Interface. -
Para verificar se o novo banco de dados foi criado no AWS Glue, execute o seguinte comando:
aws glue get-database --name
new_database_name
Agora você está pronto para obter a definição de uma tabela que deseja copiar para o novo banco de dados, modificar a definição e usar a definição modificada para recriar a tabela no novo banco de dados. Esse procedimento não altera o nome da tabela.
Para copiar uma tabela do AWS Glue usando a AWS CLI
-
Em um prompt de comando, execute o seguinte comando da AWS CLI.
aws glue get-table --database-name
database_name
--nametable_name
Para obter mais informações sobre o comando
get-table
, consulte get-table. -
Salve a saída JSON em um arquivo com o nome da tabela (por exemplo,
table_name
.json) na área de trabalho do Windows. -
Abra o arquivo em um editor de textos.
-
No arquivo JSON, remova a entrada externa
{"Table":
e a chave de fechamento correspondente}
no final do arquivo. -
No arquivo JSON, remova as seguintes entradas e os respectivos valores:
-
DatabaseName
: esta entrada não é necessária porque o comandocreate-table
da CLI usa o parâmetro--database-name
. -
CreateTime
-
UpdateTime
-
CreatedBy
-
IsRegisteredWithLakeFormation
-
CatalogId
-
VersionId
-
-
Salve o arquivo de definição da tabela.
-
Em um prompt de comando, execute o seguinte comando da AWS CLI para recriar a tabela no novo banco de dados:
aws glue create-table --database-name
new_database_name
--table-input "file://~/Desktop\table_name
.json"Para obter mais informações sobre o comando
create-table
, consulte create-table. A tabela agora aparece no novo banco de dados no AWS Glue e pode ser consultada no Athena.
-
Repita as etapas para copiar cada tabela adicional para o novo banco de dados no AWS Glue.