使用 Amazon CLI 重新创建 Amazon Glue 数据库及其表 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon CLI 重新创建 Amazon Glue 数据库及其表

无法直接重命名 Amazon Glue 数据库,但可以复制其定义,修改定义,然后使用该定义重新创建具有其他名称的数据库。同样,您可以复制旧数据库中的表定义,修改定义,然后使用修改后的定义在新数据库中重新创建表。

注意

所提供的方法不会复制表分区。

适用于 Windows 的以下过程假设 Amazon CLI 已针对 JSON 输出进行配置。要更改 Amazon CLI 中的默认输出格式,运行 aws configure

使用 Amazon CLI 复制 Amazon Glue 数据库
  1. 在命令提示符处,运行以下 Amazon CLI 命令检索要复制的 Amazon Glue 数据库的定义。

    aws glue get-database --name database_name

    有关 get-database 命令的更多信息,请参阅 get-database

  2. 将 JSON 输出保存到桌面上以新数据库名称命名的文件中(例如,new_database_name.json)。

  3. 在文本编辑器中打开 new_database_name.json 文件。

  4. 在 JSON 文件中,将 Name 条目更改为新数据库名称。

  5. 删除 CatalogId 字段。

  6. 保存该文件。

  7. 在命令提示符处,运行以下 Amazon CLI 命令使用修改后的数据库定义文件创建具有新名称的数据库。

    aws glue create-database --database-input "file://~/Desktop\new_database_name.json"

    有关 create-database 命令的更多信息,请参阅 create-database。有关从文件中加载 Amazon CLI 参数的更多信息,请参阅《Amazon Command Line Interface 用户指南》中的从文件中加载 Amazon CLI 参数

  8. 要验证是否已在 Amazon Glue 中创建新数据库,请运行以下命令:

    aws glue get-database --name new_database_name

现在,您可以随时获取要复制到新数据库的表的定义,修改定义,然后使用修改后的定义在新数据库中重新创建表。此过程不会更改表名称。

使用 Amazon CLI 复制 Amazon Glue 表
  1. 在命令提示符处,运行以下 Amazon CLI 命令。

    aws glue get-table --database-name database_name --name table_name

    有关 get-table 命令的更多信息,请参阅 get-table

  2. 将 JSON 输出保存到 Windows 桌面上以表名称命名的文件中(例如,table_name.json)。

  3. 在文本编辑器中打开该文件。

  4. 在 JSON 文件中,移除文件末尾的外部 {"Table": 条目和相应的右大括号 }

  5. 在 JSON 文件中,移除以下条目及其值:

    • DatabaseName - 此条目不是必需项,因为 create-table CLI 命令使用 --database-name 参数。

    • CreateTime

    • UpdateTime

    • CreatedBy

    • IsRegisteredWithLakeFormation

    • CatalogId

    • VersionId

  6. 保存表定义文件。

  7. 在命令提示符处,运行以下 Amazon CLI 命令在新数据库中重新创建表:

    aws glue create-table --database-name new_database_name --table-input "file://~/Desktop\table_name.json"

    有关 create-table 命令的更多信息,请参阅 create-table

    现在,该表出现在 Amazon Glue 的新数据库中,可以从 Athena 进行查询。

  8. 重复上述步骤,将每个附加表复制到 Amazon Glue 的新数据库中。