自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

生產(chǎn)環(huán)境的數(shù)據(jù)表變更很麻煩?那這個(gè)功能你應(yīng)該用的上

大數(shù)據(jù)
在數(shù)據(jù)開(kāi)發(fā)中,我們經(jīng)常會(huì)碰到要對(duì)一些生產(chǎn)環(huán)境的表進(jìn)行一些變更,包括增加字段等操作,但是生產(chǎn)環(huán)境的表又不能隨意變更,因?yàn)橥@些表格存在復(fù)雜的上下游關(guān)系,所以一般都會(huì)需要經(jīng)過(guò)測(cè)試,通過(guò)測(cè)試驗(yàn)證的代碼才能提交到線上。

離線開(kāi)發(fā)是大數(shù)據(jù)平臺(tái)的基礎(chǔ)模塊,提供大規(guī)模數(shù)據(jù)存儲(chǔ)與計(jì)算能力,幫助數(shù)據(jù)開(kāi)發(fā)人員完成數(shù)據(jù)加工工作,例如將數(shù)據(jù)從源頭表加工成明細(xì)表,再加工成匯總表等??蛇x擇搭載其它大數(shù)據(jù)產(chǎn)品,實(shí)現(xiàn)數(shù)據(jù)集成、數(shù)據(jù)研發(fā)、數(shù)據(jù)治理、數(shù)據(jù)服務(wù)等功能,靈活滿足客戶的各類場(chǎng)景。

1、實(shí)際場(chǎng)景?

在數(shù)據(jù)開(kāi)發(fā)中,我們經(jīng)常會(huì)碰到要對(duì)一些生產(chǎn)環(huán)境的表進(jìn)行一些變更,包括增加字段等操作,但是生產(chǎn)環(huán)境的表又不能隨意變更,因?yàn)橥@些表格存在復(fù)雜的上下游關(guān)系,所以一般都會(huì)需要經(jīng)過(guò)測(cè)試,通過(guò)測(cè)試驗(yàn)證的代碼才能提交到線上。

例如,當(dāng)前線上調(diào)度任務(wù)中運(yùn)行著如下的代碼,代碼中的表intern_new.ods_user_info被下游所使用,代碼示例如下:


insert overwrite table intern_new.dim_user_info_p
partition (ds='2021-07-25')
select id as user_id,
name as user_name,
province,
age
from intern_new.ods_user_info
where ds='2021-07-25';

此時(shí)需要對(duì)該表進(jìn)行邏輯修改或增加字段等操作,通常來(lái)說(shuō)會(huì)有兩種方式進(jìn)行線上表的修改:

  • 第一種,開(kāi)發(fā)人員選擇新建一個(gè)臨時(shí)表,并復(fù)制出現(xiàn)有代碼,先進(jìn)行測(cè)試驗(yàn)證。當(dāng)驗(yàn)證通過(guò)時(shí),再將該表更新,并更新代碼,然后將任務(wù)提交上線。
  • 第二種,開(kāi)發(fā)人員選擇直接修改該表,并修改原有代碼,修改完成后,將任務(wù)提交上線。?

對(duì)于上述兩種方法,第一種方法更可靠,能保證所有操作不影響線上數(shù)據(jù),也不影響下游,但是會(huì)多一些額外的工作;第二種方法可以節(jié)約額外的創(chuàng)建臨時(shí)表,以及代碼反復(fù)拷貝修改的時(shí)間,但是特別容易出紕漏,影響線上數(shù)據(jù)。

為了更好解決上述問(wèn)題,數(shù)開(kāi)平臺(tái)支持?jǐn)?shù)據(jù)測(cè)試功能。數(shù)據(jù)測(cè)試功能通過(guò)引入“${db}”占位符,來(lái)解決db自動(dòng)替換的問(wèn)題,能夠控制同一份代碼根據(jù)運(yùn)行環(huán)境不同,自動(dòng)進(jìn)行部分參數(shù)替換,實(shí)現(xiàn)操作離線表或測(cè)試表的功能,以及操作默認(rèn)HDFS文件或測(cè)試HDFS集群文件的功能。當(dāng)前可生效在離線開(kāi)發(fā)和自助分析兩個(gè)子產(chǎn)品中,解決了數(shù)據(jù)開(kāi)發(fā)過(guò)程中的線上數(shù)據(jù)和開(kāi)發(fā)數(shù)據(jù)隔離問(wèn)題。

2、實(shí)踐內(nèi)容

假設(shè)現(xiàn)在有一張dwd表為”gl_dwd.ods_user_info“,該表是由“gl_ods_user_info”任務(wù)每天下午15:27:00產(chǎn)出,需要將這張表加工為dim維表。

圖片

涉及的產(chǎn)品模塊:離線開(kāi)發(fā)、自助分析

數(shù)據(jù)開(kāi)發(fā)的流程:

圖片

第一步:通過(guò)自助分析創(chuàng)建測(cè)試表

首先我們需要通過(guò)自助分析,在gl_dwd_dev庫(kù)中建一張測(cè)試用的dim維表,dim維表的表結(jié)構(gòu):

字段

?字段類型

字段描述

user_id

string

用戶id

?user_name

string

用戶姓名

province

string

省份

age

int

年齡

dim維表的建表語(yǔ)句示例:


CREATE TABLE gl_dwd_dev.gly_dim_user_info_p (
user_id STRING COMMENT '用戶id',
user_name STRING COMMENT '用戶姓名',
province STRING COMMENT '省份',
age INT COMMENT '年齡')
PARTITIONED BY (ds STRING COMMENT '時(shí)間分區(qū)')
STORED AS PARQUET;

操作效果頁(yè)面如下,點(diǎn)擊運(yùn)行:

圖片

看到“運(yùn)行成功”的提示,則說(shuō)明測(cè)試庫(kù)中的dim維表已經(jīng)成功創(chuàng)建~

第二步:通過(guò)離線開(kāi)發(fā)創(chuàng)建任務(wù)

我們通過(guò)離線開(kāi)發(fā)創(chuàng)建任務(wù),使得ods表的數(shù)據(jù)能夠?qū)懭雂im維表。

先新建一個(gè)任務(wù),然后在畫布中拖入SQL節(jié)點(diǎn),進(jìn)入SQL編輯頁(yè)面后輸入下方代碼,將gl_dwd.ods_user_info表的數(shù)據(jù)寫入gl_dwd_dev.gly_dim_user_info_p這張表中:

圖片

然后通過(guò)在開(kāi)發(fā)模式下運(yùn)行節(jié)點(diǎn),若運(yùn)行結(jié)果為成功,則表示代碼能夠正常執(zhí)行,代碼驗(yàn)證通過(guò)以后,我們可以去自助分析對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。

通過(guò)select語(yǔ)句,檢查dim表中是否確實(shí)有了新的數(shù)據(jù),select語(yǔ)句示例如下:

SELECT * from gl_dwd_dev.gly_dim_user_info_p where ds='2022-07-10';

點(diǎn)擊運(yùn)行后,運(yùn)行成功,可在運(yùn)行結(jié)果中查看數(shù)據(jù),一共有200條記錄,說(shuō)明數(shù)據(jù)正確。

圖片

至此,我們就成功地通過(guò)離線開(kāi)發(fā),創(chuàng)建了一個(gè)開(kāi)發(fā)任務(wù),并且利用測(cè)試模式,完成了代碼和表結(jié)構(gòu)的驗(yàn)證!下一步,就可以將通過(guò)測(cè)試的測(cè)試庫(kù)的表克隆到離線庫(kù),并將任務(wù)提交上線,讓離線庫(kù)中的我們真正的生產(chǎn)表也能有產(chǎn)出的數(shù)據(jù)。

第三步:通過(guò)表克隆將測(cè)試完成的表結(jié)構(gòu)克隆到離線庫(kù)中

仍然在離線開(kāi)發(fā),點(diǎn)擊頁(yè)面左上角的表克隆,選擇待克隆的庫(kù)表,以及目標(biāo)庫(kù),即gl_dwd_dev庫(kù)下在上一步驟中新建的dim維表,要將其克隆到離線庫(kù)gl_dwd中,選擇好以后點(diǎn)擊克隆檢驗(yàn),檢驗(yàn)通過(guò)后,即可點(diǎn)擊下一步:

圖片

系統(tǒng)會(huì)自動(dòng)生成對(duì)應(yīng)表的DDL語(yǔ)句:

圖片

點(diǎn)擊“執(zhí)行”,會(huì)提示執(zhí)行成功,即已經(jīng)在gl_dwd庫(kù)中生成了與gl_dwd_dev庫(kù)中dim表結(jié)構(gòu)一致、表名也一致的表。

第四步:將任務(wù)提交上線并設(shè)置調(diào)度

(1)提交上線:

最后,就是將通過(guò)測(cè)試的任務(wù)提交上線并設(shè)置調(diào)度,讓它能夠按時(shí)產(chǎn)出數(shù)據(jù),提供給下游使用。

這里需要注意的是,我們用到的gl_dwd.ods_user_info表是任務(wù)gl_ods_user_info的產(chǎn)出表,這張表同時(shí)又是任務(wù)gly_demo的輸入表,這兩個(gè)任務(wù)均為每日調(diào)度產(chǎn)出,因此在實(shí)際數(shù)據(jù)加工的過(guò)程中,我們就需要保證,在任務(wù)gly_demo運(yùn)行之前,同一調(diào)度周期內(nèi),任務(wù)gl_ods_uers_info必須已經(jīng)成功產(chǎn)出數(shù)據(jù),因此形成任務(wù)依賴關(guān)系:gl_ods_user_info-----> gly_demo,即任務(wù)gly_demo必須依賴任務(wù)gl_ods_user_info。

離線開(kāi)發(fā)支持通過(guò)自動(dòng)解析任務(wù)的產(chǎn)出表,智能推薦任務(wù)依賴。在編輯調(diào)度頁(yè)面,點(diǎn)擊智能依賴,系統(tǒng)會(huì)自動(dòng)計(jì)算并推薦上游任務(wù)及節(jié)點(diǎn),點(diǎn)擊確定后,就可以看到頁(yè)面新增了任務(wù)依賴,表示該任務(wù)會(huì)在其依賴的任務(wù),即gl_ods_user_info任務(wù)的實(shí)例產(chǎn)出后,才會(huì)開(kāi)始運(yùn)行。

將任務(wù)調(diào)度信息設(shè)置完成之后,任務(wù)就會(huì)開(kāi)始按照計(jì)劃執(zhí)行時(shí)間生成實(shí)例,在實(shí)際執(zhí)行時(shí),就會(huì)執(zhí)行如下代碼,將數(shù)據(jù)插入到“gl_dwd.gly_dim_user_info_p”表中:


insert overwrite table gl_dwd.gly_dim_user_info_p
partition (ds='${azkaban.flow.1.days.ago}')
select id as user_id,
name as user_name,
province,
age
from gl_dwd.ods_user_info
where ds='${azkaban.flow.1.days.ago}';

(2)驗(yàn)證數(shù)據(jù):

最后再來(lái)到自助分析,驗(yàn)證我們的數(shù)據(jù)是否成功地寫入了離線庫(kù)gl_dwd中,即查看gly_dim_user_info_p表中2022-07-10分區(qū)是否有完整的200條記錄:

圖片

運(yùn)行結(jié)果顯示,離線庫(kù)中的dim表已經(jīng)擁有了正確的數(shù)據(jù)。至此,我們的離線開(kāi)發(fā)任務(wù)就完成了開(kāi)發(fā)、驗(yàn)證與上線的全部過(guò)程!

3、總結(jié)

以上通過(guò)一個(gè)簡(jiǎn)單案例完成了數(shù)據(jù)測(cè)試功能,引入“${db}”占位符,實(shí)現(xiàn)了db自動(dòng)替換,解決了數(shù)據(jù)開(kāi)發(fā)過(guò)程中的線上數(shù)據(jù)和開(kāi)發(fā)數(shù)據(jù)隔離問(wèn)題。

在實(shí)際業(yè)務(wù)場(chǎng)景中,企業(yè)出于數(shù)據(jù)安全考慮往往存在著更復(fù)雜的數(shù)據(jù)存儲(chǔ)方式與數(shù)據(jù)測(cè)試規(guī)范,大數(shù)據(jù)開(kāi)發(fā)工作也逐漸往更規(guī)范、高效的方向發(fā)展,由此也對(duì)產(chǎn)品提出了更多的要求和挑戰(zhàn)。離線開(kāi)發(fā)產(chǎn)品也在不斷吸收來(lái)自數(shù)據(jù)開(kāi)發(fā)工作一線的用戶使用場(chǎng)景與姿勢(shì),不斷努力打磨產(chǎn)品,給用戶帶去更智能、更高效的大數(shù)據(jù)數(shù)據(jù)開(kāi)發(fā)與測(cè)試體驗(yàn)。

責(zé)任編輯:龐桂玉 來(lái)源: 網(wǎng)易有數(shù)
相關(guān)推薦

2018-07-10 16:05:05

2020-09-21 14:55:15

數(shù)據(jù)庫(kù)SQL技術(shù)

2022-12-30 08:31:27

MDC查詢?nèi)罩?/a>

2020-12-08 11:20:43

Windows微軟數(shù)據(jù)

2020-09-23 18:17:46

數(shù)據(jù)工具技術(shù)

2014-03-06 13:22:08

AndroidBeamNFC

2014-12-05 09:49:18

2022-05-06 08:00:00

APIBallerina編程語(yǔ)言

2013-05-13 10:13:38

2010-11-22 13:53:46

MySQL數(shù)據(jù)表

2023-11-24 08:17:38

金額類型存儲(chǔ)

2022-07-06 09:29:40

JMH性能測(cè)試

2010-06-09 16:55:47

MySQL數(shù)據(jù)表

2010-11-24 13:11:06

MySQL遍歷數(shù)據(jù)表

2010-11-29 13:22:45

sybase數(shù)據(jù)表

2020-03-27 16:02:42

數(shù)據(jù)安全信息安全5G

2009-09-07 16:13:14

LINQ to SQL

2024-07-26 10:50:51

SpringScrew數(shù)據(jù)庫(kù)

2022-01-18 08:29:58

Oracle數(shù)據(jù)庫(kù)后端開(kāi)發(fā)

2018-07-09 08:35:45

Windows 10WindowsBug
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)