欢迎来到 宿州市某某信息技术有限公司
全国咨询热线:020-123456789
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
DataWorks开发ODPS SQL开发生产环境自动补全ProjectName
  来源:宿州市某某信息技术有限公司  更新时间:2024-05-06 22:27:19

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

一、开开场景描述

DataWorks标准模式下 ,生产支持开发环境和生产环境隔离,环境开发环境和生产环境的自动数据库表命名有所区别 ,如果需要在开发环境访问生产环境的补全数据库表或者跨项目空间A访问项目空间B的表 ,需要根据以下命名规范严格区分数据库表名,开开避免误操作生产环境。生产

环境类型

标准模式

示例

开发环境

项目名_dev.表名

在projectA项目下创建一个开发库表user_info,环境则数据库表名为:projectA_dev.user_info。自动

生产环境

项目名.表名

在projectA项目下创建一个生产库表user_info ,补全则数据库表名为:projectA.user_info 。开开

跨项目开发环境

项目名_dev.表名

在projectB项目下创建一个开发库表user_info ,生产projectA需要访问该数据库表则数据库表名为 :projecB_dev.user_info 。环境

跨项目生产环境

项目名.表名

在projectB项目下创建一个开发库表user_info ,自动projectA需要访问该数据库表则数据库表名为:projectB.user_info。补全

开发环境SQL任务中需要使用【开发环境空间.表名】projectA_dev.user_info来使用表,发布到生产环境时 ,需要手动把开发环境空间改成生产环境空间名称projectA.user_info才能发布。

二 、实现方案

1、方案一使用赋值节点

1.1 方案思路

通过Python SDK get_project方法获取项目名称。然后使用赋值节点将上游节点任务的结果提供给下游节点使用。

1.2 方案存在的问题

赋值节点目前仅支持ODPS SQL 、SHELL和Python2三种赋值语言。使用Python2需要下载odps包。且在代码中连接odps需要指定AK和ProjectName。此方案虽然可以实现获取上游结果赋值给下游使用,但是灵活切换想看空间名称看起来无法满足用户场景。

那我们考虑使用DataWorks一般节点Pyodps手动添加上游输出参数的话。下游使用赋值节点或者参数节点是否可行呢?

时间测试发现此方案也存在问题。

因为节点上下文参数仅用于上游节点的节点上下文输出参数作为下游节点的节点上下文输入参数,无法直接将上游节点的查询结果传递到下游 ,如果您需要将上游节点的查询结果传递到下游节点 ,可以使用赋值节点。

2 、方案二使用流程参数

当整个业务流程需要对同一个变量统一赋值或替换其参数值时,您可以使用流程参数功能 。当流程参数的赋值与单个节点参数的赋值不一致时  ,流程参数的赋值会覆盖节点的参数赋值。

2.1 配置节点参数

本文以跨项目空间为例 。在项目空间bigdtata_ljw_test访问项目空间bigdatazjpoc下的表数据 。

  • 调度配置参数中设置参数

projectname=bigdatazjpoc_dev

  • 代码中引用参数配置

--代码中引用:当前的项目名称为bigdtata_ljw_test select * from ${ projectname}.user_info_delta;

配置如下图所示 :

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

2、配置流程参数

参数名称:projectname

参数值或者表达式  :bigdatazjpoc

⚠️ 注意:流程参数的名称需要和节点名称一致。

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

三、方案验证

由于节点中有设置参数 。在开发环境单节点测试需要使用冒烟测试或者高级运行。高级运行时此时参数使用的是bigdatazjpoc_dev及跨项目空间的开发环境。满足开发环境访问开发环境的需求。

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

开发环境整个业务流程测试是参数手动输入bigdatazjpoc_dev ,测试运行访问的同样是开发环境的表数据 。

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

提交到生产环境补数据运行,可以看到此时执行参数为流程参数配置的生产环境的project 。(忽略截图中运行失败,是由于权限问题 。)

这是由于当流程参数的赋值与单个节点参数的赋值不一致时 ,流程参数的赋值会覆盖节点的参数赋值 。流程参数我们配置即为跨项目空间对用的生产环境的项目空间。满足此场景 。

DataWorks开发ODPS SQL开发生产环境自动补全ProjectName

四 、总结

针对跨项目空间访问表数据和开发生产环境隔离访问表数据场景。不需要频繁修改项目空间名称可通过DataWorks流程参数功能实现。

原文链接 :http://click.aliyun.com/m/1000346941/

本文为阿里云原创内容,未经允许不得转载。


友情链接求生之路2怎么多人联机-求生之路2多人联机指南手机单机游戏破解版大全_破解版的单机手游_游戏破解版大全内购破解无限版dnf装备怎么净化仪式之地,魔兽世界典礼皮缠腰和歹徒之靴手套是什么副本容易出了魔兽世界要塞交易师攻略盘点:魔兽世界60年代十大逆天的装备特效DNF第四季《时空之门》新增内容问答魔兽怀旧服80级坐骑盘点(每个坐骑都要肝)红色警戒2共和国之辉专区问道手游鬼宠怎么获得 问道手游鬼宠获得攻略魔兽世界怒之煞一周可以打几次破解版手游游戏平台下载大全(十大破解版游戏app平台)DNF全职业技能分析忍者篇:有树叶飞舞的地方,火就会燃烧!无聊小游戏求生之路2怎么多人联机-求生之路2多人联机指南红色警戒2共和国之辉专区摩尔庄园手游7月10日神奇密码是什么 摩尔庄园手游会暴露身份证吗DNF:第2张神话转换券?体验服7.8版本更新,保底可拿4张转换券王者荣耀s11赛季结束时间预测 s11赛季到什么时候英雄联盟国服4月11日7.7版本停机更新公告私服發布,私服推薦,私服宣傳,私服列表《魔兽争霸3冰封王座》异界修神v2.6.6正式版《保卫萝卜4》白萝卜传奇第2关通关攻略赵信乱斗出装ap魔兽世界各职业典型幻化套装一览遗迹第7层在唐山开滦二中上学是一种怎样的体验?《暗黑破坏神3》死灵法师大型前瞻专题魔兽世界黑市竞标攻略 wow黑市竞标技巧分享骨折时大家是怎么熬过去的?魔兽世界编年史第二卷第三章试读:部落的崛起最好玩的彩虹堂小游戏魔兽世界风暴峭壁任务怎么开启-风暴峭壁任务开启攻略奥拉星玄武如何获得 玄武获得攻略大全想成为高手?先学会挨揍!个性十足的功夫游戏《赦免者》海山寺魔兽世界怀旧服1.12版本(60级)法师天赋加点推荐英雄联盟视角锁定([游戏本体]萌新玩lol只会视角半锁定玩,也太难受了)介绍_英雄联盟视角锁定([游戏本体]萌新玩lol只会视角半锁定玩,也太难受了)是什么魔兽世界如何设置字体 魔兽世界字体设置,WOW字体怎么改变啊王者荣耀S30黄忠怎么出装-S30黄忠出装推荐
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.1603

Copyright © 2024 Powered by 宿州市某某信息技术有限公司   sitemap