更新时间:2024-10-14 GMT+08:00

执行导出数据

前提条件

需要确保每一个CN和DN所在服务器到GDS服务器的IP和端口是互通的。

操作步骤

  1. 执行数据导出。

    1
    INSERT INTO  [foreign table 表名] SELECT * FROM [源表名];
    
    • 编写批处理任务脚本,实现并发批量导出数据。并发量视机器资源使用情况而定。可通过几个表测试,监控资源利用率,根据结果提高或减少并发量。常用资源监控命令有:内存和CPU监控top命令,IO监控命令iostat,网络监控命令sar等。
    • 仅支持单个内表导出,不支持多表Join联合导出,不支持单表的聚集、排序、子查询、limit等操作结果导出。
    • 本版本中GDS导出已经支持CN RETRY(当前特性是实验室特性,使用时请联系华为工程师提供技术支持),当出现DN故障或者GTM故障导致的网络错误发生时会触发CN RETRY。注意要保证GDS 和内核版本一致或者都高于此版本。

任务示例

  • 示例1:将表reasons的数据通过外表foreign_tpcds_reasons导出到数据文件中。
    1
    openGauss=# INSERT INTO foreign_tpcds_reasons SELECT * FROM reasons;
    
  • 示例2:通过条件过滤(r_reason_sk =1),向数据文件中导出部分数据。
    1
    openGauss=# INSERT INTO foreign_tpcds_reasons SELECT * FROM reasons WHERE r_reason_sk=1;
    
  • 示例3:对于特殊的数据类型如RAW类型,在导出之后是一个二进制文本,导入工具无法识别。需使用RAWTOHEX()函数将其转换为16进制文本导出。
    1
    openGauss=# INSERT INTO foreign_blob_type_tab SELECT RAWTOHEX(c) FROM blob_type_tab;