当前位置: 首页 > news >正文

dolphinscheduler中一个脚本用于从列定义中提取列名列表

dolphinscheduler中,我们从一个mysql表导出数据,上传到hdfs, 再创建一个临时表,所以需要用到列名定义和列名列表。
原来定义两个变量,不仅繁锁,还容易出现差错,比如两者列序不对。
所以考虑只定义列定义变量,前一个任务从列定义中提取列名生成一个变量供后面任务使用。

一个从列定义中提取列名列表的脚本。
比如列定义:

  id varchar(32) COMMENT '个人客户id',customer_id varchar(32) COMMENT '客户ID',code varchar(50) COMMENT '客户编号',name varchar(100) COMMENT '客户名称',status tinyint COMMENT '客户状态'

提取的列名列表:

 t.id,t.customer_id,t.code,t.name, t.status 

脚本:

columns1=`echo "${colDefs}" | sed  's/\s*\([a-z|A-Z|0-9|_]\+\)[^,]*/t.\1/g'`
echo "#{setValue(slctColums=${columns1})}"
echo "parsed columns: $columns1"

dolphinscheduler示例
在这里插入图片描述
后面的任务就可以用select ${slctColumns} from table1 t 使用参数了

r后记:发现有点问题如: salary decimal(28,2) COMMENT ‘可支配余月收入’,
会变成
t.salary,t.2
所以,后面再sed一次掉这种

columns1=`echo "${colDefs}" | sed 's/\s*\([a-z|A-Z|0-9|_]\+\)[^,]*/t.\1/g'  | sed 's/t\.[0-9]\+,//g'`
echo "#{setValue(slctColums=${columns1})}"
echo "parsed columns: $columns1"
http://www.lryc.cn/news/607385.html

相关文章:

  • 香港正式启动稳定币牌照制度!推动中国的人民币国际化?
  • SQL中的LEFT JOIN
  • 微服务的编程测评系统9-竞赛新增-竞赛编辑
  • Flask一个用户同时只能在一处登录实现
  • Linux网络:多路转接 epoll
  • CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)
  • iPhone 恢复出厂设置是否会删除所有内容?
  • iPhone查看App日志和系统崩溃日志的完整实用指南
  • 用落霞归雁的思维框架推导少林寺用什么数据库?
  • Syzkaller实战教程6:[重要]初始种子加载机制剖析第二集
  • 使用 Docker 部署 Label Studio 时本地文件无法显示的排查与解决
  • 无人机自动跟随模块技术分析
  • Docker 实战 -- Nextcloud
  • 【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)
  • Java 日期时间处理:分类、用途与性能分析
  • 前端学习日记(十七)
  • Ant 构建java项目
  • FastDDS (SharedMemory)
  • webpack面试题及详细答案80题(41-60)
  • C++ 前缀和、双指针
  • Node.js中Buffer的用法
  • 嵌入式第十七课!!!!位运算!!!
  • 考取锅炉司炉工证需要学习哪些专业知识?
  • Linux 用户与组管理:从配置文件到实操命令全解析
  • golang的函数
  • YOLO V11 + BotSort行人追踪定位项目
  • 风光储并离网切换仿真模型(下垂控制一次调频)
  • 详解K8s集群搭建:从环境准备到成功运行
  • 【问题思考总结】CART树如何剪枝?从CART树的生成到剪枝以及为什么CTt一定小于Ct?【图文】
  • 在多租户或多服务共享 Redis 时,如何做逻辑隔离或权限控制?