文档首页 > > 开发指南> 导入数据> 从OBS并行导入数据> 执行导入数据

执行导入数据

分享
更新时间: 2019/06/24 GMT+08:00

背景信息

在执行数据导入前,您可以参考以下最佳实践方法进行合理的设计部署,最大化的使用系统资源,以提高数据导入性能。

  • OBS的数据导入性能,多数场景受限于网络的并发访问速率,因此在OBS服务器上最好部署多个桶,使用多桶并发导入,提高DN数据传输利用率。
  • 并发导入场景,与单表导入相似,至少应保证I/O性能大于网络最大速率。
  • 若导入表存在索引,在数据导入过程中,将增量更新索引信息,影响数据导入性能。建议在执行数据导入前,先删除相关表的索引。在数据导入完成后,再重新创建索引。

操作步骤

  1. DWS数据库中,创建目标表,用于存储从OBS导入的数据。建表语法请参考CREATE TABLE

    目标表的表结构和OBS上将要导入的数据源文件的字段要保持一一对应,即字段个数、字段类型要一致。并且,目标表和创建的外表的表结构也要保持一致,字段名称可以不一样。

  2. (可选)若导入表存在索引,在数据导入过程中,将增量更新索引信息,影响数据导入性能。建议在执行数据导入前,先删除相关表的索引。在数据导入完成后,再重新创建索引。
  3. 执行数据导入。

    INSERT INTO [目标表名] SELECT * FROM [foreign table 表名];
    • 若出现以下类似信息,说明数据导入成功。请查询错误信息表,查看是否存在数据格式错误,详细操作请参见处理错误表
      INSERT 0 20
    • 若出现数据加载错误,请参见处理错误表,并重新执行数据导入。

示例

创建一个名为product_info的表,示例如下:

DROP TABLE IF EXISTS product_info;
CREATE TABLE product_info
(
    product_price                integer        not null,
    product_id                   char(30)       not null,
    product_time                 date           ,
    product_level                char(10)       ,
    product_name                 varchar(200)   ,
    product_type1                varchar(20)    ,
    product_type2                char(10)       ,
    product_monthly_sales_cnt    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)                   
) 
with (
orientation = column,
compression=middle
) 
DISTRIBUTE BY HASH (product_id);

执行以下命令将外表product_info_ext的数据导入到目标表product_info 中:

INSERT INTO product_info SELECT * FROM product_info_ext;
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区