全部产品
阿里云办公

5.3 数据导入最佳实践

更新时间:2018-10-09 07:33:40

提高导入效率

数据导入运行时会运行Map Reduce任务并行的构建索引和数据,为避免长尾任务,需要确保建表时分区列选择正确,没有明显分区数据倾斜。

另外导入运行时的并行任务数和资源类型及实例个数有关,如果每日需要运行的导入任务较多,可选择配置较高的资源类型及较多的实例个数(具体参见“数据导入相关限制”)。 若提交的导入任务数超过当前资源类型及实例个数允许的并发度,该任务会进入排队状态。

提高数据导入后的磁盘利用率

导入后的数据会按分区个数均匀地存储在实例节点中,为确保磁盘使用最大化,建表时表的一级分区数应和实例个数成比例关系(0.5的整数倍),且一级分区数大于实例个数。如实例个数为8,表的分区数可为8(最少允许分区数),12,16,20,…256(最多允许分区数). 考虑到以后潜在的扩容,可适当设置较大的分区数。

取消运行中的导入任务

当某个导入任务正在运行但由于各种原因需要取消时,可执行以下命令取消导入。(<DB ID>可参见“附录一 元数据库数据字典”查询SCHEMATA表获得,<Job ID>在执行导入任务时已返回)

  1. ALTER DATABASE <DB Name> properties(databaseId='<DB ID>') KILL LOADDATA <Job ID>

重试失败的导入任务

当导入任务失败时(失败场景包括提交导入任务失败和任务执行失败,提交导入任务失败即执行LOAD DATA命令错误,任务执行失败可通过“5.2 数据导入状态查询”查看),可再次发起LOAD DATA请求(程序触发的话建议加上重试间隔),如果多次重试依然失败,联系技术支持解决。

注:运行中的导入任务无法再次发送LOAD DATA请求。

数据导入相关限制

并发导入的任务数和每日导入数据量都会根据资源类型和实例数量有相关quota限制,具体参见产品和业务限制