全部产品
分析型数据库

8.2 数据导入任务生产指南

更新时间:2017-06-07 13:26:11   分享:   

在使用分析型数据库时,稳定的数据导入是非常重要的生产要素。一般新用户经常在进行首次的数据导入时因为操作不当无法成功,或成功后无法稳定运行。这里我们来看一下建立一个生产化的数据导入任务的注意事项。

数据的准备方面

想要稳定的导入数据,首先要在数据的源头稳定的产出数据。一份对于分析型数据库来说稳定的数据至少要满足:

  • 数据所在的项目名(对应源头为ODPS)/文件访问路径(对应源头为OSS,暂不支持)/服务器连接串(对应源头为RDS,暂不支持)和表名与LOAD DATA命令的中的源头一致并保持稳定。

  • 数据表的字段名,在源头上与在分析型数据库上的配置一致,源头表可以比分析型数据库有更多的字段,但是不能比分析型数据库表缺少字段。

  • 源头表进行导入的分区的数据不能为空,进行导入的数据主键不能有NULL值,HASH分区键不能存在大量NULL值或同样的HASH分区键的数据条数过多,例如超过了每个分区的平均数据量的三倍。否则不仅会对查询性能造成影响,在极端情况下也会导致数据导入时间过长或者失败。

调用导入命令

在数据产出后,可以通过MySQL连接的方式或者HTTP Rest-API的方式调用数据导入命令,这时应该注意:

  • 调用命令时,命令所引用的源头表/分区的数据已经完整的产出完毕,并且若源头是ODPS/OSS,应该不在有任何在源头的写入操作。所以通常需要一个良好的离线任务调度系统(例如阿里云DPC中的数据开发平台)来进行相关的任务运行和调度。

  • 调用命令时,要确保命令所引用的源头表/分区已经对ALIYUN$garuda_build@aliyun.com授予足够的权限并未开启保护模式等阻止数据流出的安全策略。

  • 调用命令时分析型数据库中该表没有正在运行的导入任务,否则会返回失败。

查询数据导入状态和解决导入中的问题

在生产系统中查询数据导入状态,通常更多的是通过HTTP API进行的查询的,这里如果有一个较好的离线任务调度系统,那么实现难度并不大。

在数据导入的过程中,经常会因为出现各种错误而导致导入中断,具体的错误处理可以见附录一:错误码中。

本文导读目录
本文导读目录
以上内容是否对您有帮助?