欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

日常數(shù)據(jù)需求講解1-數(shù)據(jù)表存儲(chǔ)優(yōu)化

1.數(shù)據(jù)表存儲(chǔ)優(yōu)化

背景

當(dāng)前有這樣一張網(wǎng)關(guān)日志表,30+字段,每天存儲(chǔ)515tb,每小時(shí)全量5tb,要花費(fèi)近600塊/天,需要去進(jìn)行存儲(chǔ)優(yōu)化,全量714億。

思路

第一步評(píng)估影響

看看下游有誰(shuí)在用(血緣),怎么用(下游腳本讀了多少天的數(shù)據(jù)),有沒(méi)有報(bào)表等服務(wù)在用,如果出了問(wèn)題能不能復(fù)現(xiàn)回滾,業(yè)務(wù)方查詢分區(qū)最多多少天,元數(shù)據(jù)表則從之前做好的dwd去取,如果沒(méi)有則需要問(wèn)平臺(tái)側(cè)要元數(shù)據(jù)信息自己加工。

CREATE TABLE `xx`.`dwd_meta_table_detail_df`(
  `cata_log` string COMMENT '集群or數(shù)據(jù)源', 
  `db_name` string COMMENT '庫(kù)名', 
  `table_name` string COMMENT '表名', 
  `join_name` string COMMENT '關(guān)聯(lián)用name', 
  `layer` string COMMENT '分層', 
  `creator` string COMMENT '表創(chuàng)建人id', 
  `creator_name` string COMMENT '表創(chuàng)建人姓名', 
  `comments` string COMMENT '表描述', 
  `table_update_time` string COMMENT '表同步時(shí)間', 
  `tbl_type` string COMMENT '內(nèi)部/外部/視圖', 
  `tbl_inputformat` string COMMENT '表的inputformat', 
  `tbl_outputformat` string COMMENT '表的outputformat', 
  `tbl_loc` string COMMENT '表的存儲(chǔ)位置', 
  `tbl_owner` string COMMENT '表的負(fù)責(zé)人:可選值為項(xiàng)目/用戶', 
  `file_total_fromfile` bigint COMMENT '文件總數(shù): 計(jì)算方法為根據(jù)表所在的路徑的文件信息統(tǒng)計(jì)得到', 
  `size_total_fromfile` double COMMENT '存儲(chǔ)量:這里是邏輯存儲(chǔ)量,未考慮副本,單位為MB;計(jì)算方法為根據(jù)表所在的路徑的文件信息統(tǒng)計(jì)得到', 
  `file_add_fromfile` bigint COMMENT '新增文件數(shù):計(jì)算方法為昨天的文件總數(shù)-前天的文件總數(shù)', 
  `size_add_fromfile` double COMMENT '(根據(jù)文件)新增存儲(chǔ)量:單位為MB, 計(jì)算方法為昨天的文件規(guī)模-前天的文件規(guī)模', 
  `open_total` bigint COMMENT '文件打開(kāi)次數(shù):計(jì)算方法為從底層取open_add_all字段', 
  `audit_total` bigint COMMENT '所有操作的執(zhí)行次數(shù):計(jì)算方法為從底層去audit_add_all字段', 
  `open_lasttime` string COMMENT '文件的最后打開(kāi)時(shí)間:計(jì)算方法為底層取open_lasttime_max字段', 
  `audit_lasttime` string COMMENT '文件的最后操作時(shí)間:計(jì)算方法為底層取audit_lasttime_max字段', 
  `tbl_create_time` string COMMENT '創(chuàng)建時(shí)間', 
  `tbl_creator` string COMMENT '文件的創(chuàng)建人', 
  `partition_tbl` string COMMENT '是否是分區(qū)表', 
  `tbl_ref_num` bigint COMMENT 'job,query引用的job個(gè)數(shù)(注意開(kāi)發(fā)模式和任務(wù)模式的job算兩個(gè))', 
  `tbl_visit_num` bigint COMMENT 'job,query的訪問(wèn)次數(shù)', 
  `account_id` string COMMENT '項(xiàng)目ID', 
  `catalog_id` string COMMENT 'catalog_id', 
  `catalog_name` string COMMENT 'catalog_name', 
  `catalog_type` string COMMENT 'catalog_type', 
  `refer_count` bigint COMMENT '引用次數(shù)(元數(shù)據(jù)中心)', 
  `read_count` bigint COMMENT '讀取次數(shù)(元數(shù)據(jù)中心)', 
  `storage_type` string COMMENT '存儲(chǔ)格式', 
  `lzo_compressed` string COMMENT '是否是lzo壓縮', 
  `impala_sync` string COMMENT 'impala 同步情況', 
  `last_modified_time` bigint COMMENT '變更時(shí)間', 
  `transient_last_ddl_time` bigint COMMENT '表變更時(shí)間', 
  `lifecycle` string COMMENT '表生命周期', 
  `partition_lifecycle` string COMMENT '分區(qū)生命周期', 
  `themedomain` string COMMENT '主題域', 
  `domainlevel` string COMMENT '表分層', 
  `changetimes` bigint COMMENT '修改次數(shù)', 
  `cpu_cost` double COMMENT 'cpu消耗', 
  `memory_cost` double COMMENT '內(nèi)存消耗', 
  `file_average_size` double COMMENT '文件平均大小', 
  `file_add_fromfile_30` bigint COMMENT '30天新增文件數(shù)', 
  `size_add_fromfile_30` double COMMENT '30天新增存儲(chǔ)量', 
  `open_total_30` bigint COMMENT '30天文件打開(kāi)數(shù)', 
  `cpu_budget` double COMMENT 'cpu 元', 
  `memory_budget` double COMMENT 'memory 元', 
  `storage_budget` double COMMENT 'storage 元', 
  `offline` string COMMENT '是否下線', 
  `unvistied` string COMMENT '30天無(wú)訪問(wèn)', 
  `tbl_owner_email` string COMMENT '表owner email', 
  `changetimes_30` bigint COMMENT '', 
  `file_open_num_lastscancycle_sum` bigint COMMENT '近掃描周期內(nèi)文件累計(jì)打開(kāi)次數(shù)', 
  `tbl_ref_num_lastscancycle_average` double COMMENT '近掃描周期內(nèi)表平均引用JOB次數(shù)', 
  `tbl_visit_num_lastscancycle_sum` bigint COMMENT '近掃描周期內(nèi)表累計(jì)被訪問(wèn)次數(shù)', 
  `file_open_num` bigint COMMENT '當(dāng)天的文件打開(kāi)次數(shù)', 
  `themedomainsw` string COMMENT '主題域(英文)', 
  `domainlevelsw` string COMMENT '表分層(英文)', 
  `tbl_write_num` bigint COMMENT '當(dāng)天表write次數(shù)', 
  `tbl_write_num_all` bigint COMMENT '累計(jì)的表write次數(shù)', 
  `tbl_write_num_lastscancycle_sum` bigint COMMENT '最近一個(gè)掃描周期累計(jì)的表write次數(shù)', 
  `offline_level` bigint COMMENT '表推薦下線級(jí)別:0:不推薦 1:弱推薦 2:強(qiáng)推薦', 
  `hot_reserve` string COMMENT '數(shù)據(jù)溫?zé)岜A魰r(shí)間', 
  `delete_dir` string COMMENT '數(shù)據(jù)處理策略', 
  `last_scan_cycle_new_storage_size` double COMMENT '最近一個(gè)掃描周期的表新增存儲(chǔ)量', 
  `last_scan_cycle_new_file_num` bigint COMMENT '最近一個(gè)掃描周期的表新增文件數(shù)', 
  `tbl_last_scan_cycle_change_num` bigint COMMENT '最近一個(gè)掃描周期的表修改次數(shù)', 
  `reference_tbl_num` bigint COMMENT '被表引用次數(shù)', 
  `non_standard_path_num` bigint COMMENT '不規(guī)范路徑的分區(qū)數(shù)量', 
  `has_lifecycle` string COMMENT '是否已設(shè)置生命周期', 
  `has_owner` string COMMENT '是否有負(fù)責(zé)人', 
  `warm_size_total_from_file` double COMMENT '溫集群文件大小', 
  `par_num` bigint COMMENT '分區(qū)數(shù)量', 
  `little_file_count` bigint COMMENT '小文件數(shù)量', 
  `little_file_par_num` bigint COMMENT '小文件分區(qū)數(shù)量', 
  `offline_whitelist` string COMMENT '是否加入推薦下線白名單', 
  `lifecycle_whitelist` string COMMENT '是否加入生命周期永久保存', 
  `lifecycle_ticket_status` bigint COMMENT '生命周期永久保存審批狀態(tài),0:正常,1:審批中', 
  `offline_ticket_status` bigint COMMENT '下線白名單審批狀態(tài),0:正常,1:審批中', 
  `cold_reserve` string COMMENT '冷備保留天數(shù)', 
  `pg_id` bigint COMMENT '項(xiàng)目組id', 
  `file_merge_status` bigint COMMENT '小文件合并狀態(tài): 0:為開(kāi)啟,1:開(kāi)啟', 
  `implicit_type` string COMMENT '隱式類(lèi)型,hiveOnKudu,hiveOnHbase,hiveOnArctic...', 
  `zorder_columns` string COMMENT '表z-order屬性關(guān)聯(lián)的字段', 
  `reserve_par_num` string COMMENT '生命周期保留分區(qū)數(shù)')
  
 
 
 CREATE TABLE `xx`.`dwd_meta_table_lineage_detail_df`(
  `join_name` string COMMENT '關(guān)聯(lián)用表名', 
  `table_layer` string COMMENT '表分層', 
  `relation_table_id` string COMMENT '血緣表id', 
  `relation_type` bigint COMMENT '血緣類(lèi)型:-1-上游 1-下游', 
  `relation_cata_log` string COMMENT '血緣集群or數(shù)據(jù)源', 
  `relation_db_name` string COMMENT '血緣庫(kù)名', 
  `relation_table_name` string COMMENT '血緣表名', 
  `relation_layer` string COMMENT '血緣分層', 
  `lineage_update_time` string COMMENT '血緣同步時(shí)間', 
  `relation_join_name` string COMMENT '血緣表關(guān)聯(lián)用表名,庫(kù)名.表名')
  

第二步設(shè)計(jì)思路及前置評(píng)估

假設(shè)下游就一個(gè)節(jié)點(diǎn),且每日就是把明細(xì)數(shù)據(jù)抽取到下游表,我們發(fā)現(xiàn)這張表是一個(gè)hf的表,也就是說(shuō)每小時(shí)調(diào)度取所有數(shù)據(jù)(這里忽略數(shù)據(jù)源),看創(chuàng)建時(shí)間是跑了30+分鐘,消耗資源,我們點(diǎn)擊api下游發(fā)現(xiàn)也沒(méi)報(bào)表使用,跟業(yè)務(wù)方溝通他們也只是用來(lái)存儲(chǔ)30天數(shù)據(jù)用于數(shù)據(jù)排查,同時(shí)期望能看到當(dāng)天的數(shù)據(jù),因此當(dāng)天調(diào)度沒(méi)辦法變動(dòng)。

操作

簡(jiǎn)單修改辦法:將3天分區(qū)生命周期變?yōu)?天生命周期,同時(shí)將下游腳本改為讀取上游表最新分區(qū)。3天存儲(chǔ)降為1天,節(jié)省400塊/天

ALTER TABLE atest.table_test2 SET TBLPROPERTIES ('LIFECYCLE'='1')


下游表改造
取t+1數(shù)據(jù)

insert overwrite table xxxx.xxxx partition(pt='${bizdate}')
select xxxx
      ,xxxx
from atest.table_test2
where substr(時(shí)間,1,10)<'${bizdate_0}'
and pt='${bizdate_0}'
and hr='02'

長(zhǎng)期修改辦法

步驟一:走增量同步由于是日志數(shù)據(jù),因此不需要考慮到數(shù)據(jù)回刷,同時(shí)一小時(shí)調(diào)度也浪費(fèi)資源,還是log數(shù)據(jù)直接接入中間沒(méi)處理,因此通過(guò)flink cdc3 訂閱binlog將數(shù)據(jù)導(dǎo)入kafka,同時(shí)使用flink將數(shù)據(jù)跑入離線表中,歷史數(shù)據(jù)則放入一個(gè)單獨(dú)分區(qū)中存放,超過(guò)30天的數(shù)據(jù)則放入habse等,或者這張數(shù)據(jù)表保留近1-2年數(shù)據(jù)開(kāi)到730分區(qū)。

圖為flink cdc3 conf/mysql2xxx.yaml截圖

實(shí)時(shí)把明細(xì)數(shù)據(jù)導(dǎo)入離線

create  table `ods_ri` (
  `message` varchar
  ) 
with (
  'connector' = 'kafka',
  'topic' = 'community_monitor_collect_result',
  'properties.bootstrap.servers' = 'kafka-xxxxx:9092',
  'properties.group.id' = 'GID_community_monitor_task',
  'scan.topic-partition-discovery.interval' = '10s',
  'format' = 'raw',
  'scan.startup.mode' = 'timestamp',
  'scan.startup.timestamp-millis' = '1720713600000'
);

create  table `dwd_ri` (
    xx varchar ,
    xx varchar,
    xx varchar,
    xx varchar,
    xx varchar,
    xx varchar,
    xx varchar,
    xx varchar,
    pt varchar ,
    hr varchar 
  ) 
with (
  'PATH' = 'hdfs://xxxxxxxxxx',
  'connector' = 'yshoppingRisk',
  'endPoint' = 'http://service.cn-hangzhou/api',
);



insert into dwd_ri  

select JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx')  as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,JSON_VALUE(message,'$.xx') as xx
      ,DATE_FORMAT(FROM_UNIXTIME(cast(substring(json_value(message,'$.ts'),1,10) as bigint)),'yyyyMMdd') pt
      ,DATE_FORMAT(FROM_UNIXTIME(cast(substring(json_value(message,'$.ts'),1,10) as bigint)),'HH') hr
from ods_ri

下游操作

--因?yàn)榭苫貪L數(shù)據(jù)所以將下游設(shè)置為30天
ALTER TABLE xxxx.xxxx SET TBLPROPERTIES ('LIFECYCLE'='30')


insert overwrite table xxxx.xxxx partition(pt='${bizdate}')
select xxxx
      ,xxxx
from atest.table_test2
where pt='${bizdate}'
#數(shù)據(jù)人的面試交流地##牛客創(chuàng)作賞金賽##數(shù)據(jù)人offer決賽圈怎么選##Java##數(shù)據(jù)分析#
全部評(píng)論

相關(guān)推薦

點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
1
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
牛客企業(yè)服務(wù)