You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Data Catalog中克隆abc-prod-db至abc-prod-db-bkup?

复制AWS Data Catalog数据库及表的最简方案

针对你要复制abc-prod-db到abc-prod-db-bkup(含25张带数据的表)的需求,推荐两种最简实现方式:

方法一:Glue控制台手动导出导入(适合小批量手动操作)

  • 导出源库元数据:打开AWS Glue控制台,进入数据库列表,找到abc-prod-db,点击右侧操作菜单的「导出」,选择JSON格式下载到本地。
  • 修改元数据文件:打开下载的JSON,全局替换所有DatabaseName字段值为abc-prod-db-bkup;同时根据数据存储位置,修改每个表StorageDescriptor下的Location路径为目标存储路径(比如S3的新前缀)。
  • 创建目标数据库:在Glue控制台点击「添加数据库」,输入名称abc-prod-db-bkup完成创建。
  • 导入元数据:进入abc-prod-db-bkup的详情页,点击「导入表」,上传修改后的JSON文件,完成表结构的复制。
  • 同步表数据:如果数据存在S3,直接在S3控制台用「复制」或aws s3 sync同步对应路径;如果是RDS等数据库,可配置Glue一次性作业批量读取源表写入目标表。

方法二:AWS CLI脚本批量处理(适合自动化场景)

  • 先创建目标数据库:
    aws glue create-database --database-input '{"Name": "abc-prod-db-bkup"}'
    
  • 批量复制表元数据(需提前安装jq工具处理JSON):
    # 获取源库所有表名
    TABLES=$(aws glue get-tables --database-name abc-prod-db --query 'TableList[].Name' --output text)
    
    for TABLE in $TABLES; do
        # 获取源表完整定义
        TABLE_DEF=$(aws glue get-table --database-name abc-prod-db --name $TABLE)
        # 修改库名和数据路径
        MODIFIED_DEF=$(echo "$TABLE_DEF" | jq '.TableInput.DatabaseName = "abc-prod-db-bkup"' | jq '.TableInput.StorageDescriptor.Location = "s3://your-target-bucket/abc-prod-db-bkup/"')
        # 创建目标表
        aws glue create-table --database-name abc-prod-db-bkup --table-input "$(echo "$MODIFIED_DEF" | jq '.TableInput')"
    done
    
  • 同步数据:S3数据用s3 sync批量同步:
    aws s3 sync s3://your-source-bucket/abc-prod-db/ s3://your-target-bucket/abc-prod-db-bkup/
    

注意事项

  • 若表包含分区,元数据导入会自动携带分区定义,但需同步分区对应的数据路径。
  • 确保操作账号拥有Glue数据库/表的读写权限,以及对应存储服务的访问权限。

内容的提问来源于stack exchange,提问作者PPSATO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 22:12:30