欢迎来到 陇南市某某环保机械设备教育中心
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
DataWorks开发ODPS SQL开发生产环境自动补全ProjectName
  来源:陇南市某某环保机械设备教育中心  更新时间:2024-04-29 03:24:21

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/

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


友情链接《魔兽世界》团队副本及地下城成就奖励坐骑介绍剑网3万花门派跟宠前置任务攻略 WH跟宠攻略求生之路2(L4D2)怎么局域网联机图文攻略我的世界手机版能去哪里 手机版能去天堂和地狱吗什么加速器是免费的?免费加速器推荐幻塔201避难所密码是什么-201避难所电子密码一览求生之路2(L4D2)怎么局域网联机图文攻略变态手游app平台哪个好 变态手游app十大排行榜1月28日《5pk传奇》1.85英雄合击删档测试关于部分商城道具提前下架和提前删除的公告王者荣耀高端大气的英文名字451个洛奇英雄传法师(洛奇英雄传法师新职业)DNF狗CH装备曝光,自用增幅21武器,一身装备无人超越!《王者荣耀》西施FMVP游龙清影台词合集介绍阴阳师:热门地域鬼王如何挤进前三百?五大山翻山阵容及打法攻略周年庆召唤锦鲤空投活动在哪 和平精英召唤锦鲤空投活动入口光遇远古战场在哪里win10玩dnf闪退怎么办 win10玩dnf闪退解决方法【详解】英雄联盟韩信说的什么台词,有句激励人的名言忘了 好象是韩信说的琴瑟仙女怎么打?琴瑟仙女出装攻略? 世界看点变态游戏盒子哪个好用?变态游戏盒子排名西洽会·企业家访谈 | 中冶赛迪集团副总经理张勇:加快高质量发展 扩容开放合作的“朋友圈”英雄联盟手游S12剑圣符文怎么点 S12剑圣符文加点推荐地下城与勇士什么样的装备才能进行锻造,锻造武器地下城与勇士DNF职业联赛16进8开战,圣职者、联合队第一人出战光遇冥想现在在哪里仙境传说爱如初见商人职业介绍DNF毕业装备下魔界三姐妹(战法、魔道、元素)15秒打桩测试《黑暗之魂3》人物剧情身世及关系解析在叙事过程中如何提高所谓的“画面感”?战地2最新版《dnf》金秋版本便利性改版了吗 金秋版本便利性改版总览lol诺手怎么玩好?dnf仓库锁怎么解除 dnf仓库锁解除账号金库密码5步教程2022不用网络也能玩的手机游戏有哪些 单机手机游戏盘点伊苏6修改器风灵月影版单机手机游戏排行推荐2023 好玩的单机游戏免费下载大全AppsFlyer《广告平台综合表现报告》:经济下行趋势导致用于拉新的广告消耗预算缩减《原神》鱼饵制作攻略
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.1875

Copyright © 2024 Powered by 陇南市某某环保机械设备教育中心   sitemap