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

从Aurora导出大几何数据至Redshift的高效方案咨询

问题描述

需要将Aurora PostgreSQL中包含大几何数据列的表迁移至Redshift,采用CSV导出+Copy命令的常规方案时,大几何数据会被拆分为多行导致加载失败。已尝试以下操作但未解决:

  • 修改CSV分隔符(逗号、|、制表符),仍出现拆分
  • 改用JSON格式,但Redshift不支持JSON加载几何数据
  • 转换为EWKT格式后导出CSV,依旧拆分
  • 导出为文本格式,文件体积暴涨至1.9G(原70M)
  • 用Python导出DataFrame:字符数<32767的几何数据正常,>32767的无法在CSV中正常存储,EWKT格式也超字符限制

需求:不考虑联邦查询,提供跨VPC、跨账号的快速小量空间数据迁移方案(POC需求,优先速度)

快速解决方案

方案1:Aurora原生COPY导出带引号包裹的CSV(最快速POC)

步骤1:Aurora端导出数据

直接用PostgreSQL原生COPY命令导出,强制用双引号包裹所有字段,彻底避免换行拆分:

COPY (
    SELECT 
        id, 
        ST_AsEWKT(geometry_column) AS geometry_ewkt
    FROM your_target_table
)
TO '/tmp/aurora_export.csv'
WITH (
    FORMAT CSV,
    HEADER,
    QUOTE '"',
    ESCAPE '"',
    DELIMITER '|'
);

步骤2:上传至跨账号S3

将导出文件上传到双方账号都能访问的S3桶:

  • 给S3桶添加跨账号权限,允许Redshift所在账号的IAM角色读取
  • 跨VPC场景可通过S3 VPC端点访问,POC阶段可临时开启S3公网访问(测试后关闭)

步骤3:Redshift端加载数据

用COPY命令加载,匹配导出时的参数:

COPY redshift_target_table (id, geometry_column)
FROM 's3://your-cross-account-bucket/aurora_export.csv'
IAM_ROLE 'arn:aws:iam::[redshift-account-id]:role/your-redshift-role'
FORMAT CSV
HEADER
DELIMITER '|'
QUOTE '"'
ESCAPE '"';

优势:无需额外工具,原生命令严格控制格式,Redshift能正确识别大字段,全程耗时短。

方案2:Base64编码二进制几何数据(适合超大规模几何)

步骤1:Aurora端导出Base64编码的WKB数据

将几何数据转为WKB二进制后用Base64编码,避免传输问题:

COPY (
    SELECT 
        id, 
        encode(ST_AsBinary(geometry_column), 'base64') AS geometry_wkb_base64
    FROM your_target_table
)
TO '/tmp/aurora_wkb_export.txt'
WITH (
    FORMAT TEXT,
    DELIMITER '\t'
);

步骤2:上传至S3

同方案1的上传配置。

步骤3:Redshift端加载并转换

先加载编码后的数据,再解码转为几何类型:

-- 加载数据
COPY redshift_target_table (id, geometry_wkb_base64)
FROM 's3://your-cross-account-bucket/aurora_wkb_export.txt'
IAM_ROLE 'arn:aws:iam::[redshift-account-id]:role/your-redshift-role'
FORMAT TEXT
DELIMITER '\t';

-- 转换为Redshift几何字段
UPDATE redshift_target_table
SET geometry_column = ST_GeomFromWKB(decode(geometry_wkb_base64, 'base64'));

-- 可选:删除临时编码列
ALTER TABLE redshift_target_table DROP COLUMN geometry_wkb_base64;

优势:比EWKT体积小,适合超大几何数据,避免字符数限制问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:10:30