开发者社区> 问答> 正文

分析型数据库数据导入任务生产指南是什么?


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

数据的准备方面


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


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

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

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


调用导入命令


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

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

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

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


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


在生产系统中查询数据导入状态,通常更多的是通过HTTP API进行的查询的,这里如果有一个较好的离线任务调度系统,那么实现难度并不大。
在数据导入的过程中,经常会因为出现各种错误而导致导入中断,具体的错误处理可以见附录一:错误码中。

展开
收起
nicenelly 2017-10-31 13:46:29 1727 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载