功能
每天晚上对单表前一天的segment进行定制化合并.
现有逻辑:
1.使用apache.caacite.avatica.remote.Driver获取connection。
2.获取对应表所有segment,定制化分组
3.sql形式执行merge segments(compact)
瓶颈:
1.近期发现该功能每次执行时长过长,需要优化。
2.本人对carbondata的了解不深,网上对这一块的描述有很少。
暂时的思路:
多线程执行合并操作。
问题:
1. 单表的并发,官网描述很少,只是说明了一个参数指定local_lock还是hdfs_lock(global)。对于我这种只操作segment的操作是锁全表,还是锁对应的需要合并的segments?
2. 一旦使用并发,就要考虑connection的获取甚至重用。carbonData对于这种jdbc的connection数量有限制吗?或者可以参考那个配置参数吗?
3. 这种任务的提交会被yarn调度吗?需要考虑任务提交的数量吗?考虑的话这个临界值需要参考什么?