ClickHouse高可用实践 演讲人:贺钰城联想开源优化架构师 Contents 目录 生产制造企业的数据现状 clickhouse集群架构 clickhouse数据集成问题 clickhouse查询并发性能的提升 01生产制造企业的数据现状 生产制造企业数据库使用现状 1、业务系统分散采用了不同的关系型数据库 2、现有大数据平台处理能力T+1 3、数据量不断积累,关系型数据库无法满足需求 谜一样的数据流向 迷一样的sql SELECTBILLING,BILLING_DATE,DN,DN_ITEM,SHIP_DATE,PSD_CHURN,FAMILY,DESCRIPTION,PSD,LINE_PSD,PSD_AI_ADJ,AI_PSD_FLAG,PSD_COMMENT,REASON_CODE,FPSD,FG_DATE,MOT,VSBED,TRAZTD, SHIPTO_COUNTRY,DIS_CHANNEL,MTM,SO,SO_ITEM,SHIPPING_POINT,ROUTE,PRIORITY,DELIVERY_BLOCK,L_DELIVERY_BLOCK, CREDIT,SOLD2_KUNNR,SOLD2_NAME1,SHIP2_KUNNR,SHIP2_NAME1,CREATE_DATE,Z_CRCAD,Z_CRGID,LINE_QTY,ORDER_QTY,SO_TYPE,FSD,SOLD2_LAND1,AUTLF,PSTYV,GRKOR,INCO1,SELF_PICK,BSTKD,WAERK,AUDAT,AEDAT_H,ROUTE2MARKET,BSARK,ZZODMCAD,ECC_REASON,SALES_ORG,DIVISION,HIERARCHY, MATERIAL_GROUP,PLANT,SALES_OFFICE,MFG_SO_NUM,MFG_SO_ITEM_NUM,PO_NUM,PO_ITEM_NUM,PO_VENDOR_NUM,REJECT_CODE,T1.SITE,T1.SITE_TYPE,KZTLF,CREDIT_REL_DATE,DB_REL_DATE,REGION,SUB_REGION,BRAND,BRAND_BACKLOG,PG_BACKLOG,SUB_BRAND,SERIES,PRODUCT_GROUP,MARKET_NAME,AGING_M3, AGING_TTL,FWD_BAU,M1M2_LT,M3_LT,M1M2_STATUS,M3_STATUS,OTS_LT,OTS_STATUS,PSD_RSD,NO_PSD,MISS_CRAD,PSD_PASTDUE,PSD_LT,DEL_ACCURACY,FIRST_FG_DATE,TIE_FG_DATE,MARKET,TERRITORY,M1M2_SLA,M3_SLA,E2E_SLA,PSD_STATUS,ORDER_TYPE,GEO,SUBGEO,SYS_CREATED_DATE,OTS_SLA,AGE_ORDER, STATUS,DN_CREATE_DATE,COUNTRY,M1M2_DEADLINE,M3_DEADLINE,DETRACTOR,REL_DATE,MFG_SITEID,MOT_CHANGE,BACKLOG_TYPE,MACHINE_TYPE,ERNAM,BRGEW,PRE_DOCASCONTRACT_NUM,IFNULL(GLN,GLOBAL_LOC)ASGLN,END_CUST_IDASEND_CUSTID,END_CUST_NAME,CMWAE,ZSBBLT,S_REPID,S_REPNAME,FACE_REPID, 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 LEFTJOINSCI.CONF_PSD_WEEKS3ONT1.PSDBETWEENS3.DAYS_STARTANDS3.DAYS_ENDLEFTJOINSCI.CONF_WEIGHT_UNIT_TRANS4ONT1.GEWEI=S4.GEWEI LEFTJOINSCI.MID_FF_PC_BAACKLOG_CURRS5ONCOALESCE(T1.BILLING_DATE_NEW,T1.CREATE_DATE_NEW)=S5.GDATUANDT1.WAERK=S5.FCURRLEFTJOINSCI.SC_DIM_SITE_CMLS6ONT1.SCI_SITE_ID=S6.SITE_ID 生产制造企业数据处理的痛点 1、需要解决由于大数据量下UPDATE死锁问题 2、数据化运营的今天更需要数据分析的及时性 3、由于UPDATE丢失了原始数据,无法分析历史 4、分析师要面对上千行的sql发呆 解决方案 1、数据已事件方式录入,减少更新数据带来的问题。 2、使用OLAP引擎来解决,解决查询性能的问题。 3、一张大宽表可以让数据更明晰,减少sql的复杂度 02clickhouse集群架构 ClickHouse集群架构 03clickhouse数据集成问题 数据集成-通过JDBC写入 来数据给你,你自己处理 Clickhouse:你要累死我呀,别人还要用呢 数据写入越来越慢 通过JDBC接口写入,HTTP模式 有没有比HTTP更快的方式?TCP?Orelse?无法实现数据压缩 数据中重复数据多岂不是很浪费资源?为什么不能先压缩了再传输呢? 数据量过大容易导致OOM 数据写入越来越慢 数据量大,通过HTTP处理不过来 服务器压力大,太多的INSERT请求 如何解决-seatunnel 原来 来数据给你,你自己处理 Clickhouse:你要累死我呀,别人还要用呢 现在 数据帮你生成文件了,你接收一下就可以用了 Clickhouse:OK 我们为什么不行 Sink-Clickhouse,通过JDBC处理数据 Sink-ClickhouseFile,通过文件传输数据 04clickhouse查询并发性能的提升 ReplicatedMergeTree (shard2) ReplicatedMer geTree (replica1) ReplicatedMergeTree (shard1) 数据查询的痛 数据查询 Distributed 数据写入 ReplicatedMer geTree (replica1) Distributed Distributed Nginx Distributed 数据查询 ReplicatedMer geTree (replica1) ReplicatedMergeTree (shard2) ReplicatedMer geTree (replica1) Distributed ReplicatedMergeTree (shard1) 数据写入 数据查询的架构调整 Projection ALTERTABLEuser_logADDPROJECTIONp_ugg ( SELECT whoappcode,xwhen GROUPBY who ); ALTERTABLEuser_logMATERIALIZEPROJECTIONp_ugg; Projection •ClickHouseProjections包含两大类:normal与aggregate •使用查询定义Projection,新建的Projection仅影响后续的写入数据 •对历史数据构建Projection需要进行Materialize操作 •查询无需任何改动即可使用Projection优化 •可对单表增加多个Projection,查询将择优使用 —THANKS— 感谢您的观看 输入标题Title 输入标题Title