欢迎来到 包头市某某矿山设备有限责任公司
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
DataWorks开发ODPS SQL开发生产环境自动补全ProjectName
  来源:包头市某某矿山设备有限责任公司  更新时间:2024-05-04 02:04:11

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/

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


友情链接三国杀:谁是神系列最强武将?神司马懿第一,神周瑜倒数魔兽世界wlk猎人升级天赋点什么 wlk猎人练级天赋加点推荐拼多多砍价上限是什么?拼多多会上限吗?吞食天地-时空之轮II第7季英雄解锁转生版WLK怀旧服:前夕四系德鲁伊天赋与雕文推荐LOL第129位新英雄原画/技能曝光:很丑!但大招距离超远!宝石交易商:走进猫眼石的知识世界《魔兽世界》2022沙塔尔天空卫队声望速刷方法一览LOL合金装备 卢锡安皮肤视频合金弹头觉醒马克带什么武器 马克罗西用什么武器魔兽世界wlk各大声望奖励大全(tbc各声望奖励)《虐杀原形2》教小白寻找黑匣子等可收集物如何评价网易的《阴阳师》?地下城刃影护石毕业-dnf刃影护石哪三个毕业拼多多砍价上限是什么?拼多多会上限吗?原神荒海解密五个石头怎么还原 原神手游荒海五个机关解谜攻略无情角斗士的冰霜巨龙怎么获得(魔兽世界冰霜巨龙任务奖励)《魔兽世界》废物贩卖机器人制造器图纸任务在哪里介绍僵尸危机3手机版(ZombiesM)dnf110级搬砖图最高收益!搬砖地图有哪些?世界上有哪些至今未破的悬案?火炬之光2加点和技能 火炬之光2加点最低难度英雄 魔兽世界执政团之座打法攻略(组图)《dnf》次元玄晶怎么获取 次元玄晶获取方法勇士剑魂天涯明月刀首测开服日期确认丛刃艾克风靡韩服 十大强势套路全解析!下版本上分不学一手?热血传奇开服计划2019,求一个仿盛大传奇手游,7771热血传奇手游周年专幸福小农场红包版《英雄联盟》未来守护者杰斯技能加点推荐咸鱼之王太史慈觉醒技能解析曹五木评||还叫悟空《恰卜恰》(组诗)多宝玉石的功效:揭示其神奇作用及本质dnf强烈的气息怎么获得最快(dnf强烈的气息获得攻略)2024年热门动作格斗网游排行榜,动作格斗网络游戏排行榜前十名lol12.14版本中单艾克玩法出装推荐找sf传奇网站刚开一秒魔兽世界安其拉神殿怎么去?DNF属性收益分析(力量、属性强化、独立攻击篇)异常魔兽见闻录女主
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.2654

Copyright © 2024 Powered by 包头市某某矿山设备有限责任公司   sitemap