欢迎来到 黄石市某某过滤设备教育中心
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
DataWorks开发ODPS SQL开发生产环境自动补全ProjectName
  来源:黄石市某某过滤设备教育中心  更新时间:2024-05-04 22:14:58

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/

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


友情链接《英雄联盟》11.18打野劫怎么玩?11.18打野劫玩法推荐《子弹风暴》的枪械,玩法与任务设计魔兽世界 7.0牧师神器及套装幻化指引《魔兽争霸3冰封王座》守护大法师v1.2.2正式版LOL7周年豪礼疯狂送 西部魔影获取全指南!原神喂猫成就怎么做 喂猫任务攻略暗黑破坏神3局域网破解版游戏下载口袋妖怪究极绿宝石5.5改性格需要什么条件 5.5性格更改详细教程介绍分享黑炭头,DNF黑炭头怎么样【新仙剑奇侠之挥剑问情】献祭队测评--主测水龙葵,内有最新礼包兑换码,新手必备攻略dnf游戏助手荣誉截图删除不了(新版手机dnf助手荣誉截图在哪里)在海贼开DNF免费游戏加速器,流星游戏加速器最好用免费游戏加速器众星之子_索拉卡如何一天完成拼多多砍价助力?天天炫斗布鲁觉醒雷霆领主技能使用技巧DNF手游称号教他做人怎么样 教他做人获取方法魔兽世界 7.0牧师神器及套装幻化指引十大破解游戏软件排名 破解游戏软件盒子大全游侠本周手游推荐:大佬们都在玩什么?第五期lolS9稻草人天赋符文怎么加点_lolS9稻草人天赋符文加点攻略dnf手游刷什么赚泰拉石 DNF手游泰拉石获取途径分享传奇找服网LOL暗爪乌迪尔技能加点顺序【魔兽世界】橙杖任务详细流程 - 巨龙之怒,泰蕾苟萨的寄魂杖~lol游戏内如何回复好友消息(lol对局内回复好友怎么按键)走,去海山新春游园会!77233游戏盒官方《羊了个羊》第二关攻略9月23日 羊了个羊第二关怎么过DNF珍贵材料解析:浓缩的纯洁之骸的获取与用途阴阳师如何快速获得勾玉 获得勾玉的途径DNF雾神尼版本男气功装备天赋加点推荐DNF阿修罗怎么加点 110级阿修罗刷图加点攻略《魔兽》纳格兰竞技场任务奖励必看!英雄联盟手游 必得内测资格攻略!link是什么意思?有哪些用法?阴阳师破碎符咒有什么用 破碎符咒怎么获得版本新贵数据谈—寒冰射手是杂技还是大招?DNF:2万代币券怎么花合适?新春礼包非唯一选择,劳动合同最佳魔兽世界10.0法师天赋怎么点 10.0法师天赋加点攻略
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.239

Copyright © 2024 Powered by 黄石市某某过滤设备教育中心   sitemap