分層優(yōu)點(diǎn):復(fù)雜的東西可以簡單化、解耦(屏蔽層作用)、提高復(fù)用、方便管理
SA 貼源? 數(shù)據(jù)組織結(jié)構(gòu)與源系統(tǒng)保持一致
shm 歷史層? 針對(duì)不同特征的數(shù)據(jù)做不同算法,目的都是為了得到一份完整的數(shù)據(jù)
PDM 明細(xì)層 做最細(xì)粒度的數(shù)據(jù)明細(xì),最高擴(kuò)展性和靈活性,企業(yè)級(jí)的數(shù)據(jù)標(biāo)準(zhǔn),源系統(tǒng)之間的打通
BDM 業(yè)務(wù)層 針對(duì)集市經(jīng)常放在一起用到的數(shù)據(jù)做提前預(yù)處理,做維度的橫向拆合,來源的縱向拆合,形成業(yè)務(wù)大寬表
基礎(chǔ)層? 針對(duì)集市主題做定制化整合,部門級(jí)的數(shù)據(jù)標(biāo)準(zhǔn)
集市層? 基礎(chǔ)層和關(guān)系層基礎(chǔ)上加工出基礎(chǔ)原子指標(biāo)
匯總層? 集市層的原子指標(biāo)基礎(chǔ)上增加業(yè)務(wù)限定、統(tǒng)計(jì)周期、統(tǒng)計(jì)粒度計(jì)算出來的派生指標(biāo)
報(bào)表、指標(biāo)層? 基礎(chǔ)指標(biāo)或派生指標(biāo)的邏輯計(jì)算加工而成
埋點(diǎn)行為數(shù)據(jù)組成
公共字段
業(yè)務(wù)字段:埋點(diǎn)上報(bào)的字段
事件
"et": [ //事件 { "ett": "1506047605364", //客戶端事件產(chǎn)生時(shí)間 "en": "display", //事件名稱 啟動(dòng)和事件日志是根據(jù)事件名稱的不同 "kv": { //事件結(jié)果,以 key-value 形式自行定義 "goodsid": "236", "action": "1", "extend1": "1", "place": "2", "category": "75" } } ]
項(xiàng)目經(jīng)驗(yàn)總結(jié)
1.shell 中單引號(hào)和雙引號(hào)的區(qū)別? ''不轉(zhuǎn)義變量? “”轉(zhuǎn)義變量
反引號(hào) `執(zhí)行引號(hào)中命令
2.tez優(yōu)點(diǎn):
可以將多個(gè)有依賴的作業(yè)(任務(wù))組合成一個(gè)完整的DAG作業(yè),只需一次讀寫HDFS,效率更高。
3.ods層:
啟動(dòng)日志表:只有一個(gè)字段line保存json
事件日志表:只有一個(gè)字段,按dt分區(qū)
4.自定義UDF,可以自己埋點(diǎn)打印日志,方便調(diào)試。
函數(shù)定義
public Text evaluate(Text input, int startIndex, int length) {
// 在函數(shù)開始處打印日志
System.out.println("Executing SubstringUDF...");
// 打印輸入?yún)?shù)
System.out.println("Input: " + input.toString());
System.out.println("Start index: " + startIndex);
System.out.println("Length: " + length);
// 執(zhí)行子字符串操作
String result = input.toString().substring(startIndex, startIndex + length);
// 在函數(shù)結(jié)束處打印日志
System.out.println("Substring: " + result);
System.out.println("SubstringUDF execution completed.");
// 返回結(jié)果
return new Text(result);
}
打成jar包并注冊(cè)
$ javac -cp /path/to/hive/lib/hive-exec-x.x.x.jar SubstringUDF.java
$ jar -cvf substringudf.jar SubstringUDF.class
$ hive
hive> ADD JAR /path/to/substringudf.jar;
使用文章來源:http://www.zghlxwxcb.cn/news/detail-476169.html
-- 創(chuàng)建測(cè)試表
CREATE TABLE employees (
name STRING,
salary INT
);
-- 插入測(cè)試數(shù)據(jù)
INSERT INTO employees VALUES
('John Doe', 5000),
('Jane Smith', 6000),
('Michael Johnson', 7000);
-- 使用自定義 UDF 函數(shù)獲取員工姓名的子字符串
SELECT name, substring_udf(name, 1, 4) AS substring_name FROM employees;
輸出結(jié)果文章來源地址http://www.zghlxwxcb.cn/news/detail-476169.html
Executing SubstringUDF...
Input: John Doe
Start index: 1
Length: 4
Substring: John
SubstringUDF execution completed.
到了這里,關(guān)于數(shù)倉用戶行為數(shù)據(jù)分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!