<select id="getDbsByUser" resultType="java.lang.String" parameterType="java.lang.String" databaseId="mysql">
select NAME from DBS GROUP BY NAME order by NAME
</select>
<select id="getTablesByDbNameAndUser" resultType="map" parameterType="map" databaseId="mysql">
select t2.TBL_NAME as NAME, t2.TBL_TYPE as TYPE, t2.CREATE_TIME as CREATE_TIME, t2.LAST_ACCESS_TIME as LAST_ACCESS_TIME, t2.OWNER as OWNER
from TBLS t2, DBS t3 where 1=1 and t2.DB_ID=t3.DB_ID and t3.NAME = #{dbName,jdbcType=VARCHAR}
order by NAME;
</select>
一.应用场景
首先感谢社区各位大佬的指点,学习到很多。
知因智慧是一家toB金融公司,里面需要大量的ETL过程,原先用Shell脚本连接各种Hql,Spark等等,XXL- Job调度,可能一个模块就被一个大的脚本包含住了,耦合性特别强,调度这块也有问题,无法监控中间的报错,2019下半年时看到社区开源组件,一直研究怎么跟公司整合。
希望借助社区的力量,结合公司实际情况,打通公司级数据中台的流程,目前数据建设主要集中在元数据管理,数据仓库ETL流程,数据质量,任务调度这几个方面。
二. 解决的问题
基于LDAP管理用户,代理服务模块修改,以组为单位共用账户,公司的整个数据开发人员不多,基于这种方式可以支撑下去。
因为资源有限,有些权限管理很繁琐,放开一些权限:
filesystem.path 存储日志,脚本的权限,统一根据nfs挂载,把目录权限统一根据用户随意修改。
linkis-metadata元数据管理,把Hive相关权限放开(HiveMetaDao.xml):
因为环境是CDH-5.16.2 编译部署DSS和Linkis是根据原生的版本号,大部分服务都没有问题,但是有的服务有些问题,因为CDH会把组件重新编译,有的指令会改变。
原先发生过Hive 和 Spark应该支持的函数,到Scriptis上运行脚本,不支持,这是因为得把两个服务相关的Hive 和 Spark jar 都变成后缀带有CDH的。
Linkis Hive引擎对tez的支持:
自定义变量的支持:
CustomVariableUtils 工具类中,Shell关枚举都要添加上。
ScriptFsWriter Shell相关 def listCompactions(): Array[Compaction] = Array(PYScriptCompaction(),QLScriptCompaction(),ScalaScriptCompaction(),ShellScriptCompaction()) WorkspaceUtil 工具类正则有问题,无法修改名称,中间有.符号去除
............................................. AppJointEntranceJob.scala override def run(): Unit = { if(!isScheduled) return info(s"$getId starts to run") getLogListener.foreach(_.onLogUpdate(this, LogUtils.generateInfo(s"$getId starts to execute."))) startTime = System.currentTimeMillis getExecutor match { case appjointEntranceEngine:AppJointEntranceEngine => appjointEntranceEngine.setJob(this) appjointEntranceEngine.setInstance(Sender.getThisInstance) } Utils.tryAndErrorMsg(transition(Running))(s"transition $getId from Scheduler to Running failed.")
三.最佳实践
我以公司标签库为例,讲述下操作流程。
对企业数据进行挖掘和分析,建立标签特征体系,创建个性化的多层级标签,并在此基础上进行细分和精准营销场景应用,有利于对企业/集团进行深入经营,充分挖掘企业/集团潜力,提升企业/集团价值。以此为目标的标签库的构建,将有利于了解和深耕企业/集团,可更好地助力于企业金融服务。
这是执行流程图,中间调度过程,Hql,Spark目前运行在DSS平台上。
其中一个企业经营特别的跑批流程。
CDH-5.16.2
Hadoop-2.6
Hive-1.1
Spark-2.2
kafka_2.11-1.0.1