chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

供應鏈場景使用ClickHouse最佳實踐

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-18 15:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于ClickHouse的基礎(chǔ)概念這里就不做太多的贅述了,ClickHouse官網(wǎng)都有很詳細說明。結(jié)合供應鏈數(shù)字化團隊在使用ClickHouse時總結(jié)出的一些注意事項,尤其在命名方面要求研發(fā)嚴格遵守約定,對日常運維有很大的幫助,也希望對讀者有啟發(fā)。

目前供應鏈數(shù)字化ck集群用來存儲實時數(shù)據(jù),先通過下面這張圖表了解下ClickHouse數(shù)據(jù)來源。

wKgZomaYvr6AfXDtAACYKYUhf1k339.png

圖中標注1和2的位置是供應鏈數(shù)字化研發(fā)在開發(fā)業(yè)務功能時改動量比較多的部分,隨著需求變多,DTS任務和數(shù)據(jù)庫表也越來越多。 通過定義研發(fā)使用約定,使我們的DTS任務、表、表字段看起來很整潔。

有哪些好處呢?

1、根據(jù)ck表名快速找到對應的DTS任務及消費jdq topic / 當然通過jdq也可快速找到對應的ck表(對不了解業(yè)務的人幫助很大)。

2、通過ck表字段即可知道該字段來自哪個業(yè)務表哪個字段(字段數(shù)據(jù)不對,聯(lián)系業(yè)務值班先排查業(yè)務庫的字段是否正確)。

3、快速統(tǒng)計到團隊 或 某個ck集群有多少DTS任務(運維時不會遺漏,一目了然)

一 建表約定

1.1 表命名約定

表命名要求: 1、本地表命名必須_local結(jié)尾 2、分布式表命名必須以_all結(jié)尾;

--創(chuàng)建本地表, 使用on cluster default 在每個節(jié)點上都創(chuàng)建一張本地表
CREATETABLE本地表名 on cluster 集群名稱
(
...
    ts                   DateTime Default now() COMMENT '時間搓',
    version              UInt64 COMMENT '版本號'
) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/test_local', 
    '{replica}',version)
[PARTITIONBYexpr]-- 數(shù)據(jù)分區(qū)規(guī)則
[ORDERBYexpr]-- 排序鍵
[SAMPLEBYexpr]-- 采樣鍵
[SETTINGS index_granularity = 8192, ...]-- 額外參數(shù)

參數(shù)解釋說明:
PARTITION BY toYYYYMM(tmsCreateTime) 按照月份分
ReplicatedReplacingMergeTree(參數(shù)1,參數(shù)2,參數(shù)3)
ORDER BY (參數(shù)1,參數(shù)2, ....); 參數(shù)1,參數(shù)2,參數(shù)3....等組成業(yè)務主鍵 

----創(chuàng)建分布式表
CREATE TABLE IF NOT EXISTS 庫名.分布式表名 on cluster default AS 本地表名 
ENGINE = Distributed (default,庫名,本地表名,sipHash64(分片鍵));


建表示例腳本:

CREATE TABLE reports_prestore_outbound_fulltrace_local on cluster `default`
(
    `sm_so_no` String COMMENT '訂單號',
    `sm_waybill_code` String COMMENT '青龍運單號',
    `sm_so_type` Int64 DEFAULT 0 COMMENT '訂單類型',
    `st_so_status` Int64 DEFAULT 0 COMMENT '訂單狀態(tài)(1初始、2定位完成、3定位失敗、5揀貨中、6出庫完成、7取消、8轉(zhuǎn)病單、9站點已收貨、10已妥投、11再投中、12已拒收)',
        ?
  	`st_delivery_time` DateTime COMMENT '妥投時間',
   	`st_redeliver_time` DateTime COMMENT '再投時間',
   	`st_reject_time` DateTime COMMENT '拒收時間',
   	`version` UInt64 COMMENT '更新版本號',
    `ts` DateTime DEFAULT now() COMMENT '時間戳'
)
ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/waybill_data_center/reports_prestore_outbound_fulltrace_local',
 '{replica}', version)
PARTITION BY toYYYYMM(so_create_time)
ORDER BY (sm_so_no,sm_waybill_code)
TTL so_create_time + toIntervalMonth(1)
SETTINGS index_granularity = 8192;

CREATE     TABLE     IF     NOT     EXISTS   `reports_prestore_outbound_fulltrace_all`     on     cluster     default     AS     `reports_prestore_outbound_fulltrace_local`
ENGINE     =     Distributed     (default,waybill_data_center,reports_prestore_outbound_fulltrace_local,sipHash64(sm_so_no));	

1.2 分區(qū)鍵設(shè)置

視情況大表按天分區(qū),小表按月分區(qū)。分區(qū)鍵盡量使用date和datetime字段,避免string類型的分區(qū)鍵

分區(qū)粒度根據(jù)業(yè)務特點決定,不宜過粗或過細。 建議使用toYYYYMMDD()按天分區(qū),如果數(shù)據(jù)量很少,100w左右,建議使用toYYYYMM()按月分區(qū),過多的分區(qū)會占用大量的資源,會因為文件系統(tǒng)中的文件數(shù)量過多和需要打開的文件描述符過多,導致 SELECT 查詢效率不佳

1.3 分片鍵設(shè)置

分布式表分片鍵需要采用hash函數(shù),應避免數(shù)據(jù)熱點,集中寫入某個分片;

分片鍵盡量使用表中區(qū)分粒度較細的字段,可以時多個字段的組合,如:id / order_no

1.4 排序鍵/主鍵設(shè)置

1、有序可以保證很高的壓縮比及加速查詢,寫入數(shù)據(jù)建議提前排序再寫入數(shù)據(jù);

2、若未指定默認為排序建,主鍵不保證唯一性。主鍵過長會拖慢寫入性能,并且會造成過多的內(nèi)存占用(主鍵常駐內(nèi)存)。

1.5 字段使用約定

1、字段類型能用數(shù)字型的字段盡量用數(shù)字型,避免使用string

2、表字段命名:${業(yè)務表縮寫}_${業(yè)務表字段},如: 業(yè)務表ob_shipment_m 縮寫:osm, ck表字段則以osm_開頭。 注意:業(yè)務表的縮寫需要使用字典方式管理

3、日期字段建議默認值為1970-01-01,時間字段默認值為1970-01-01 08:00:00,使用到的地方排除掉默認值即可

4、表中必須包含:ts(時間搓)、version(flink寫入jdq的時間,單位:)字段。

version— 版本列。類型為 UInt*, Date 或 DateTime??蛇x參數(shù)。 在數(shù)據(jù)合并的時候,ReplacingMergeTree 從所有具有相同排序鍵的行中選擇一行留下: 如果 version 列未指定,保留最后一條。 如果 version 列已指定,保留 version 值最大的版本

5、盡量不使用Nullable類型

可以非NUll的盡量非NUll并在代碼中賦予默認值,數(shù)量字段默認值為0,狀態(tài)字段默認值建議使用有符號int時為-127、無符號int時為0,字符串建議默認值為空字符串。

設(shè)置成Nullable對性能影響也沒有多大,可能是因為我們數(shù)據(jù)量比較小。不過官方已經(jīng)明確指出盡量不要使用Nullable類型,因為Nullable字段不能被索引,而且Nullable列除了有一個存儲正常值的文件,還會有一個額外的文件來存儲Null標記。

1.6 新增列操作方式

本地表的修改直接執(zhí)行即可。如果要對分布式表進行修改,需分如下情況進行:

?如果沒有數(shù)據(jù)寫入,您可以先修改本地表,然后修改分布式表。

?如果數(shù)據(jù)正在寫入,您需要區(qū)分不同的類型進行操作。

修改類型 操作步驟
增加Nullable的列 1.修改本地表。 2.修改分布式表。
修改列的數(shù)據(jù)類型(類型可以相互轉(zhuǎn)換)
刪除Nullable列 1.修改分布式表。 2.修改本地表。
增加非Nullable的列 1.停止數(shù)據(jù)的寫入。 2.執(zhí)行 SYSTEM FLUSH DISTRIBUTED dbName.distributedTableName 3.修改本地表。 4.修改分布式表。 5.重新進行數(shù)據(jù)的寫入。
刪除非Nullable的列
修改列的名稱

添加表字段SQL示例參考:

ALTER TABLE reports_prestore_outbound_fulltrace_local on  cluster default ADD COLUMN  st_redeliver_time DateTime COMMENT '再投時間';
ALTER TABLE reports_prestore_outbound_fulltrace_all on  cluster default ADD COLUMN  st_redeliver_time DateTime COMMENT '再投時間';

1.7 DDL執(zhí)行注意事項

1.mutation(delete,update)操作比較重,盡量避免執(zhí)行此類操作;

2.清理過期數(shù)據(jù),應使用TTL,或者drop partition;

3.分布式DDL,分片副本節(jié)點串行執(zhí)行,出現(xiàn)阻塞會導致后面所有DDL無法正常執(zhí)行,建議輪詢各分片執(zhí)行DDL,尤其是變更字段類型,不建議直接on cluster default進行變更;

4.optimize table table_name final手動觸發(fā)合并慎用,盡量按分區(qū)操作。

二 數(shù)據(jù)寫入約定

結(jié)合供應鏈的使用場景,這里在flink層加工完數(shù)據(jù)后沒有直接將數(shù)據(jù)寫入ClickHouse集群,而是發(fā)送到JDQ隊列中。這樣做的優(yōu)勢 1、加工和存儲解藕 2、JDQ消息共享;

若數(shù)據(jù)需要做主備存儲,我們只需要創(chuàng)建新的DTS任務訂閱JDQ消息,將消息寫入到備用的ClickHouse集群即可。

wKgaomaYvsGAIIpsAABVKGzuWNs309.png

2.1 DTS任務命名約定

任務名規(guī)則:sc_digital_${集群ID}_${分布式表名}

使用"sc_digital_"前綴加分布式模型名稱,如:sc_digital_c4omjd8fl7_reports_prestore_outbound_fulltrace_all

2.2 DTS所屬項目空間

創(chuàng)建DTS任務時,任務需要放在《數(shù)字化-DTS任務空間》下。

2.3 DTS寫入批次設(shè)置

DTS任務批次寫入默認值“40W/1分鐘”。這里需要根據(jù)實際情況適當調(diào)下。

建議:每次插入50W行左右數(shù)據(jù), 最多不可超過100W行. 總之CK不像MySQL要小事務. 
比如1000W行數(shù)據(jù), MySQL建議一次插入1W左右, 使用小事務, 執(zhí)行1000次. CK建議20次,每次50W. 
這是MergeTree引擎原理決定的, 頻繁少量插入會導致data part過多, 合并不過來.

2.4 DTS消費JDQ的等級

默認消費JDQ的等級為L3。消費等級要根據(jù)業(yè)務實際使用場景做相應調(diào)整。以下等級劃分標準(來源于JDQ等級調(diào)整說明):

wKgZomaYvsKAEKslAAMtKLSdLwQ438.png

三 數(shù)據(jù)查詢約定

針對易出問題的flink-CK鏈路進行雙流,物理隔離,遇到問題可將查詢請求一鍵切換至備用CK集群。

wKgaomaYvsOAY--0AAEPnvUtYeU156.png

3.1 盡量prewhere替代where

值不變得字段必須使用prewhere特性提升查詢性能

注意:prewhere目前只能用于MergeTree系列的表引擎

3.2 where條件,盡量包含分區(qū)鍵,和主鍵索引前綴字段

盡量遵循最左原則,如果跳過最左前綴字段,使用其他字段查詢,也會走索引過濾一些數(shù)據(jù),但是效果不好;

3.3 避免使用Select *

避免使用 SELECT * 操作,這是一個非常影響的操作。應當對列進行裁剪,只選擇你需要的列,因為字段越少,消耗的 IO 資源就越少,從而性能就越高。

3.4 where、group by 順序

where和group by中的列順序,要和建表語句中order by的列順序統(tǒng)一,并且放在最前面使得它們有連續(xù)不間斷的公共前綴,否則會影響查詢性能。

3.5 JOIN 性能不是很好,應避免使用

替代方案:業(yè)務設(shè)計使用大寬表,或使用in替代多變關(guān)聯(lián),或使用字典,但需注意內(nèi)存占用;如必須使用join,右表選小表(hash join 右表會全部加載到內(nèi)存);

3.6 使用final去重

使用final去重查詢,盡量不要用argMax

3.7 二級索引

1、可變值字段不能添加二級索引。按此字段做條件查詢會先走索引在合并數(shù)據(jù),查出而外的中間態(tài)數(shù)據(jù)。

2、 增加二級索引只對后續(xù)新增數(shù)據(jù)生效。如需對歷史數(shù)據(jù)也走索引,需要按分區(qū)刷新數(shù)據(jù)

創(chuàng)建二級索引示例

Alter table reports_prestore_outbound_fulltrace_local ON cluster default 
    ADD INDEX idx_belong_province_code belong_province_code TYPE set(0) GRANULARITY 5;
Alter table reports_prestore_outbound_fulltrace_local ON cluster default 
    ADD INDEX idx_st_delivery_time st_delivery_time TYPE minmax GRANULARITY 5;

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)字化
    +關(guān)注

    關(guān)注

    8

    文章

    9530

    瀏覽量

    63587
  • 供應鏈
    +關(guān)注

    關(guān)注

    3

    文章

    1718

    瀏覽量

    40004
  • House
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6794
  • click
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2088
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RFID標簽在服裝供應鏈管理中的應用

    二、RFID標簽在服裝供應鏈管理中的優(yōu)勢高效率:RFID可以快速批量讀取服裝信息,大幅縮短操作時間,提高供應鏈管理效率。準確性:RFID減少了人工操作的錯誤率,提高了服裝供應鏈管理的準確性和可靠性
    的頭像 發(fā)表于 07-14 17:02 ?187次閱讀
    RFID標簽在服裝<b class='flag-5'>供應鏈</b>管理中的應用

    安富利:供應鏈強則企業(yè)強

    外圍局勢風云變幻的當下,供應鏈的安全與穩(wěn)定受到前所未有的重視。對于注重持續(xù)創(chuàng)新的硬科技企業(yè)而言,情況更是如此。面對復雜多變的市場環(huán)境,硬科技企業(yè)能夠破浪前行、韌性增長的“武功秘籍”之一,正是供應鏈
    發(fā)表于 03-25 18:09 ?236次閱讀
    安富利:<b class='flag-5'>供應鏈</b>強則企業(yè)強

    AI大模型在工業(yè)領(lǐng)域的供應鏈管理方向的應用

    AI 大模型在工業(yè)領(lǐng)域的供應鏈管理中具有精準預測、個性化需求預測、動態(tài)實時調(diào)整和供應商管理風險評估與預警等功能,幫助企業(yè)提高供應鏈效率和應對市場變化。
    的頭像 發(fā)表于 02-14 11:40 ?579次閱讀
    AI大模型在工業(yè)領(lǐng)域的<b class='flag-5'>供應鏈</b>管理方向的應用

    RFID技術(shù)在PC組件供應鏈管理中的應用

    岳冉基于RFID技術(shù)的PC組件供應鏈管理解決方案,該方案通過為PC組件粘貼RFID標簽,并利用RFID讀寫器進行信息讀取和傳輸,實現(xiàn)了對PC組件從生產(chǎn)、倉儲、物流到銷售等供應鏈各個環(huán)節(jié)的實時監(jiān)控和管理。
    的頭像 發(fā)表于 02-06 15:48 ?458次閱讀
    RFID技術(shù)在PC組件<b class='flag-5'>供應鏈</b>管理中的應用

    兆芯最佳實踐應用場景解決方案發(fā)布

    《兆芯最佳實踐應用場景解決方案》現(xiàn)已正式發(fā)布,掃描下方二維碼或點擊閱讀原文即可獲取下載。
    的頭像 發(fā)表于 01-13 14:45 ?591次閱讀

    天合光能入選國家級數(shù)字化供應鏈案例

    近日,工業(yè)和信息化部公示“2024年實數(shù)融合典型案例名單”,天合光能以“基于產(chǎn)銷協(xié)同一體化的供應鏈精細數(shù)字化管控”成功入選國家級數(shù)字化供應鏈案例,這是繼國家綠色供應鏈、全國供應鏈創(chuàng)新與
    的頭像 發(fā)表于 01-13 11:48 ?734次閱讀

    同星智能即將亮相第六屆汽車新供應鏈大會

    同星一周展會TOSUN.EXHIBIT第六屆汽車新供應鏈大會第六屆汽車新供應鏈大會將于2025年1月14-15日在上海舉辦,本屆汽車新供應鏈大會以“共建生態(tài),協(xié)同出?!睘楹诵淖h題,既是對當前汽車整車
    的頭像 發(fā)表于 01-10 20:04 ?808次閱讀
    同星智能即將亮相第六屆汽車新<b class='flag-5'>供應鏈</b>大會

    保隆科技榮獲東風日產(chǎn)“最佳供應鏈合作伙伴”

    近日,東風日產(chǎn)在廣州隆重舉行了2024年供應鏈合作伙伴大會,此次大會匯聚了眾多行業(yè)精英。保隆科技董事長張祖秋受邀出席并在會上發(fā)表講話,共同見證了保隆科技榮獲“最佳供應鏈合作伙伴”這一殊榮的時刻
    的頭像 發(fā)表于 01-03 11:33 ?576次閱讀

    利用Minitab應對供應鏈中斷問題

    供應鏈中斷是不可避免的,但積極的措施和數(shù)據(jù)驅(qū)動的戰(zhàn)略可以減輕其影響。Minitab全面的數(shù)據(jù)分析和問題解決工具使組織能夠分析、優(yōu)化和調(diào)整其供應鏈,以應對不可預見的挑戰(zhàn),確保面對中斷時的彈性和連續(xù)性。
    的頭像 發(fā)表于 01-02 17:16 ?459次閱讀

    保隆科技榮獲東風日產(chǎn)最佳供應鏈合作伙伴

    近日,東風日產(chǎn)在廣州舉行2024年供應鏈合作伙伴大會,保隆科技張祖秋董事長應邀出席并在大會發(fā)言,保隆科技被授予“最佳供應鏈合作伙伴”,這是東風日產(chǎn)對保隆科技長期以來良好合作、提供優(yōu)秀產(chǎn)品和優(yōu)質(zhì)服務的高度肯定。
    的頭像 發(fā)表于 12-30 17:22 ?808次閱讀

    奧托立夫榮膺東風日產(chǎn)“2024年度最佳供應鏈合作伙伴”

    近日,東風日產(chǎn)供應鏈合作伙伴大會在廣州隆重召開,吸引了近700家業(yè)界精英共襄盛舉,共謀未來發(fā)展新篇章。在此次大會中,奧托立夫憑借其長期以來的杰出表現(xiàn),榮獲了東風日產(chǎn)頒發(fā)的“2024年度最佳供應鏈合作伙伴”獎項,彰顯了雙方合作的深
    的頭像 發(fā)表于 12-27 11:35 ?735次閱讀

    菜鳥與麥當勞中國發(fā)布智慧供應鏈新成果

    近日,菜鳥與麥當勞中國攜手發(fā)布了智慧供應鏈的新成果——“一箱一碼”項目。這一項目標志著國內(nèi)餐飲行業(yè)首次大規(guī)模落地應用“一箱一碼”數(shù)字化實踐,展現(xiàn)了雙方在供應鏈數(shù)字化領(lǐng)域的深度合作與創(chuàng)新。 通過引入
    的頭像 發(fā)表于 12-03 13:55 ?712次閱讀

    智能制造裝備行業(yè)的供應鏈特點分析

    智能制造裝備行業(yè)供應鏈涉及多個環(huán)節(jié),包括原材料采購、生產(chǎn)制造、物流配送和售后服務等,其特點包括復雜性與多樣性、全球化與分散性、技術(shù)密集型和快速變化性。供應鏈面臨的挑戰(zhàn)包括數(shù)據(jù)孤島、信息不對稱、供應鏈中斷風險和成本控制難度大等。
    的頭像 發(fā)表于 11-28 10:15 ?842次閱讀
    智能制造裝備行業(yè)的<b class='flag-5'>供應鏈</b>特點分析

    活動回顧 艾體寶 開源軟件供應鏈安全的最佳實踐 線下研討會圓滿落幕!

    艾體寶與Mend舉辦研討會,聚焦開源軟件供應鏈安全,邀請行業(yè)專家分享合規(guī)管理、治理之路及最佳實踐,圓桌討論加深理解,助力企業(yè)更安全穩(wěn)健發(fā)展。
    的頭像 發(fā)表于 10-30 17:52 ?824次閱讀
    活動回顧 艾體寶 開源軟件<b class='flag-5'>供應鏈</b>安全的<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b> 線下研討會圓滿落幕!

    激活數(shù)字新動能 厚植新質(zhì)生產(chǎn)力|普羅格智慧供應鏈平臺亮相武漢兩場科技盛會

    近期,“武漢市中小企業(yè)數(shù)字化轉(zhuǎn)型供需對接會”、“2024年湖北省暨武漢市科技活動周”兩場盛會落下帷幕。作為中國領(lǐng)先的一站式供應鏈數(shù)智化科技服務商,普羅格受邀參會,與業(yè)內(nèi)專家共探企業(yè)供應鏈數(shù)字化典型應用場景與數(shù)字化轉(zhuǎn)型創(chuàng)新
    的頭像 發(fā)表于 07-22 16:00 ?705次閱讀
    激活數(shù)字新動能 厚植新質(zhì)生產(chǎn)力|普羅格智慧<b class='flag-5'>供應鏈</b>平臺亮相武漢兩場科技盛會