Usar la AWS CLI para recrear una base de datos de AWS Glue y sus tablas
No es posible cambiar el nombre de una base de datos de AWS Glue directamente, pero puede copiar su definición, modificarla y utilizarla para volver a crear la base de datos con un nombre diferente. Del mismo modo, puede copiar las definiciones de las tablas en la base de datos antigua, modificarlas y utilizarlas para volver a crear las tablas en la base de datos nueva.
nota
Con el método presentado no se copian las particiones de las tablas.
En el siguiente procedimiento para Windows se supone que la AWS CLI está configurada para la salida JSON. Para cambiar el formato de salida predeterminado en la AWS CLI, ejecute aws configure
.
Para copiar una base de datos de AWS Glue mediante la AWS CLI
-
En el símbolo del sistema, ejecute el siguiente comando de la AWS CLI para recuperar la definición de la base de datos de AWS Glue que desea copiar.
aws glue get-database --name
database_name
Para obtener más información acerca del comando
get-database
, consulte get-database. -
Guarde la salida JSON en un archivo con el nombre de la nueva base de datos (por ejemplo,
) en su escritorio.new_database_name
.json -
Abra el archivo
en un editor de texto.new_database_name
.json -
Siga los siguientes pasos en el archivo JSON:
-
Elimina la entrada
{ "Database":
exterior y el corchete de cierre correspondiente}
al final del archivo. -
Cambie la entrada
Name
por el nuevo nombre de la base de datos. -
Quite el campo
CatalogId
.
-
-
Guarde el archivo.
-
En el símbolo del sistema, ejecute el siguiente comando de la AWS CLI para usar el archivo de definición de base de datos modificado a fin de crear la base de datos con el nombre nuevo.
aws glue create-database --database-input "file://~/Desktop\
new_database_name
.json"Para obtener más información acerca del comando
create-database
, consulte create-database. Para obtener información acerca de cómo cargar los parámetros de la AWS CLI desde un archivo, consulte Carga de los parámetros de la AWS CLI desde un archivo en la Guía del usuario de la AWS Command Line Interface. -
Para comprobar que la base de datos nueva se ha creado en AWS Glue, ejecute el siguiente comando:
aws glue get-database --name
new_database_name
Ahora está listo para obtener la definición de una tabla que desea copiar en la base de datos nueva, modificar la definición y usar la definición modificada para volver a crear la tabla en la base de datos nueva. Con este procedimiento no se cambia el nombre de la tabla.
Para copiar una tabla de AWS Glue mediante la AWS CLI
-
En el símbolo del sistema, ejecute el siguiente comando de la AWS CLI.
aws glue get-table --database-name
database_name
--nametable_name
Para obtener más información acerca del comando
get-table
, consulte get-table. -
Guarde la salida JSON en un archivo con el nombre de la tabla (por ejemplo,
table_name
.json) en el escritorio de Windows. -
Abra el archivo en un editor de texto.
-
En el archivo JSON, elimine la entrada exterior
{"Table":
y el corchete de cierre correspondiente}
al final del archivo. -
En el archivo JSON, elimine las siguientes entradas y sus valores:
-
DatabaseName
: esta entrada no es necesaria porque el comando de la CLIcreate-table
usa el parámetro--database-name
. -
CreateTime
-
UpdateTime
-
CreatedBy
-
IsRegisteredWithLakeFormation
-
CatalogId
-
VersionId
-
-
Guarde el archivo de definición de la tabla.
-
En el símbolo del sistema, ejecute el siguiente comando de la AWS CLI para volver a crear la tabla en la base de datos nueva:
aws glue create-table --database-name
new_database_name
--table-input "file://~/Desktop\table_name
.json"Para obtener más información acerca del comando
create-table
, consulte create-table. La tabla aparece ahora en la base de datos nueva en AWS Glue y se puede consultar desde allí.
-
Repita los pasos para copiar cada tabla adicional a la base de datos nueva en AWS Glue.