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

建立高性能風(fēng)險(xiǎn)數(shù)據(jù)集市的分步指南

譯文
大數(shù)據(jù)
開(kāi)發(fā)人員追求數(shù)據(jù)驅(qū)動(dòng)的管理,他們的目標(biāo)是在數(shù)據(jù)平臺(tái)開(kāi)發(fā)中滿足四個(gè)需求:監(jiān)控和警報(bào)、查詢和分析、儀表板和數(shù)據(jù)建模。出于這些目的,他們基于Greenplum和CDH構(gòu)建了數(shù)據(jù)處理架構(gòu)。其中最重要的部分是風(fēng)險(xiǎn)數(shù)據(jù)集市。

譯者 | 李睿

審校 | 重樓

開(kāi)發(fā)人員追求數(shù)據(jù)驅(qū)動(dòng)的管理,他們的目標(biāo)是在數(shù)據(jù)平臺(tái)開(kāi)發(fā)中滿足四個(gè)需求:監(jiān)控和警報(bào)、查詢和分析、儀表板和數(shù)據(jù)建模。出于這些目的,他們基于Greenplum和CDH構(gòu)建了數(shù)據(jù)處理架構(gòu)。其中最重要的部分是風(fēng)險(xiǎn)數(shù)據(jù)集市。

風(fēng)險(xiǎn)數(shù)據(jù)集市:Apache Hive

以下介紹風(fēng)險(xiǎn)數(shù)據(jù)集市是如何按照數(shù)據(jù)流工作的:

(1)業(yè)務(wù)數(shù)據(jù)被導(dǎo)入Greenplum進(jìn)行實(shí)時(shí)分析以生成商業(yè)智能(BI)報(bào)告。這些數(shù)據(jù)的一部分也會(huì)進(jìn)入Apache Hive進(jìn)行查詢和建模分析。

(2)風(fēng)險(xiǎn)控制變量在Elasticsearch中通過(guò)消息隊(duì)列實(shí)時(shí)更新,同時(shí)Elasticsearch也將數(shù)據(jù)攝取到Hive中進(jìn)行分析。

(3)將風(fēng)險(xiǎn)管理決策數(shù)據(jù)從MongoDB傳遞給Hive進(jìn)行風(fēng)控分析和建模。

這是風(fēng)險(xiǎn)數(shù)據(jù)集市的三個(gè)數(shù)據(jù)源。

整個(gè)架構(gòu)是用CDH 6.0構(gòu)建的,其中的工作流程可分為實(shí)時(shí)數(shù)據(jù)流和離線風(fēng)險(xiǎn)分析。

  • 實(shí)時(shí)數(shù)據(jù)流:來(lái)自Apache Kafka的實(shí)時(shí)數(shù)據(jù)將被Apache Flink清理,然后寫入Elasticsearch。Elasticsearch會(huì)匯總接收到的部分?jǐn)?shù)據(jù),并將其發(fā)送給風(fēng)險(xiǎn)管理作為參考。
  • 線下風(fēng)險(xiǎn)分析:基于CDH解決方案,利用Sqoop對(duì)其進(jìn)行線下數(shù)據(jù)攝取。然后將這些數(shù)據(jù)與來(lái)自MongoDB的第三方數(shù)據(jù)放在一起。然后,經(jīng)過(guò)數(shù)據(jù)清洗之后,將所有這些數(shù)據(jù)輸入Hive中進(jìn)行日常的批量處理和數(shù)據(jù)查詢。

簡(jiǎn)要概述一下,這些組件支持?jǐn)?shù)據(jù)處理平臺(tái)的四個(gè)功能:

如上圖所見(jiàn),Apache Hive是這個(gè)架構(gòu)的核心。但在實(shí)踐中,Apache Hive執(zhí)行分析需要幾分鐘,因此下一步是提高查詢速度。

是什么拖慢了查詢速度?

外部表中的巨大數(shù)據(jù)量

基于Hive的數(shù)據(jù)集市現(xiàn)在承載著超過(guò)300TB的數(shù)據(jù)。大約有2萬(wàn)個(gè)表和500萬(wàn)個(gè)字段。將它們?nèi)糠旁谕獠勘碇惺蔷S護(hù)密集型的。此外,數(shù)據(jù)攝取可能是一個(gè)令人頭疼的問(wèn)題。

更大的平面表

由于風(fēng)險(xiǎn)管理中規(guī)則引擎的復(fù)雜性,企業(yè)在變量的推導(dǎo)上投入了大量的資金。在某些維度上,有數(shù)千個(gè)甚至更多的變量。因此,Hive中一些常用的平面表有超過(guò)3000個(gè)字段。因此,可以想象這些查詢是多么耗時(shí)。

不穩(wěn)定的接口

日常離線批處理產(chǎn)生的結(jié)果將定期發(fā)送到Elasticsearch集群 (這些更新中的數(shù)據(jù)量很大,接口調(diào)用可能會(huì)過(guò)期) 。這一過(guò)程可能導(dǎo)致高I/O并引入垃圾收集器抖動(dòng),從而進(jìn)一步導(dǎo)致接口服務(wù)不穩(wěn)定。

此外,由于風(fēng)控分析師和建模工程師使用Hive和Spark,不斷擴(kuò)展的數(shù)據(jù)架構(gòu)也拖累了查詢性能。

統(tǒng)一查詢網(wǎng)關(guān)

在此需要一個(gè)統(tǒng)一的網(wǎng)關(guān)來(lái)管理異構(gòu)數(shù)據(jù)源。這就是為什么介紹Apache Doris的原因

但這不會(huì)讓事情變得更復(fù)雜嗎?事實(shí)上并沒(méi)有。

可以將各種數(shù)據(jù)源連接到Apache Doris,并簡(jiǎn)單地對(duì)其進(jìn)行查詢。這是由Apache Doris的多目錄特性實(shí)現(xiàn)的:它可以與各種數(shù)據(jù)源接口,包括像Apache Hive、Apache Iceberg和Apache Hudi這樣的數(shù)據(jù)湖,以及像MySQL、Elasticsearch和Greenplum這樣的數(shù)據(jù)庫(kù)。這恰好涵蓋了工具箱。

在Apache Doris中創(chuàng)建Elasticsearch Catalog和Hive Catalog。這些目錄映射到Elasticsearch和Hive中的外部數(shù)據(jù),因此可以使用Apache Doris作為統(tǒng)一網(wǎng)關(guān)跨這些數(shù)據(jù)源執(zhí)行查詢。此外,使用Spark-Doris- connector來(lái)實(shí)現(xiàn)Spark和Doris之間的數(shù)據(jù)通信。所以基本上,用Apache Doris代替Apache Hive作為數(shù)據(jù)架構(gòu)的中心樞紐。

這對(duì)數(shù)據(jù)處理效率有何影響?

  • 監(jiān)控和警報(bào):這是關(guān)于對(duì)實(shí)時(shí)數(shù)據(jù)查詢。使用Apache Doris中的Elasticsearch Catalog訪問(wèn)Elasticsearch集群中的實(shí)時(shí)數(shù)據(jù)。然后直接在Apache Doris中執(zhí)行查詢。它能夠在幾秒鐘內(nèi)返回結(jié)果,而不是使用Hive時(shí)的幾分鐘級(jí)別的響應(yīng)時(shí)間。
  • 查詢和分析:在Hive中有20,000個(gè)表,所以將它們?nèi)坑成涞紿ive中的外部表是沒(méi)有意義的。這需要花費(fèi)一大筆維護(hù)費(fèi)用。與其相反,利用Apache Doris 1.2的Multi Catalog特性。它支持目錄級(jí)別的數(shù)據(jù)映射,因此可以簡(jiǎn)單地在Doris中創(chuàng)建一個(gè)Hive Catalog。然后再進(jìn)行查詢。這將查詢操作從Hive的日常批量處理工作量中分離出來(lái),從而減少資源沖突。
  • 儀表板:使用Tableau和Doris提供儀表板服務(wù)。這將查詢響應(yīng)時(shí)間縮短到幾秒和幾毫秒,而在“Tableau + Hive”時(shí)則需要幾分鐘。
  • 建模:使用Spark和Doris進(jìn)行聚合建模。Spark-Doris-Connector允許數(shù)據(jù)的相互同步,因此來(lái)自Doris的數(shù)據(jù)也可以用于建模以進(jìn)行更準(zhǔn)確的分析。

生產(chǎn)環(huán)境中的集群監(jiān)控

在生產(chǎn)環(huán)境中測(cè)試了這個(gè)新架構(gòu),為此建立了兩個(gè)集群。

配置:

生產(chǎn)集群:4個(gè)前端+ 8個(gè)后端,m5d.16xlarge

備份集群:4個(gè)前端+ 4個(gè)后端,m5d.16xlarge

以下是監(jiān)控板:

如上圖所示,查詢速度很快。預(yù)計(jì)它至少需要10個(gè)節(jié)點(diǎn),但在實(shí)際情況中,主要通過(guò)Catalogs進(jìn)行查詢,因此可以用相對(duì)較小的集群大小來(lái)處理這個(gè)問(wèn)題。兼容性也很好。它不會(huì)影響現(xiàn)有系統(tǒng)的其余部分。

快速數(shù)據(jù)集成指南

為了加速?gòu)腍ive到Apache Doris 1.2.2的常規(guī)數(shù)據(jù)攝取,以下有一個(gè)解決方案:

主要部件:

  • Dolphin Scheduler 3.1.4
  • SeaTunnel 2.1.3

對(duì)于當(dāng)前的硬件配置,使用DolphinScheduler的Shell腳本模式,并定期調(diào)用SeaTunnel腳本。數(shù)據(jù)同步任務(wù)的配置文件:

SQL 
  env{
 spark.app.name = “hive2doris-template”
  spark.executor.instances = 10
 spark.executor.cores = 5
 spark.executor.memory = “20g”
 }
 spark {
  spark.sql.catalogImplementation = “hive”
 }
 source {
  hive {
  pre_sql = “select * from ods.demo_tbl where dt=’2023-03-09’”
  result_table_name = “ods_demo_tbl”
  }
 }

 transform {
 }
 
 sink {
  doris {
  fenodes = “192.168.0.10:8030,192.168.0.11:8030,192.168.0.12:8030,192.168.0.13:8030”
  user = root
  password = “XXX”
  database = ods
  table = ods_demo_tbl
  batch_size = 500000
  max_retries = 1
  interval = 10000
  doris.column_separator = “\t”
  }
 }

這一解決方案消耗更少的資源和內(nèi)存,但在查詢和數(shù)據(jù)攝取方面帶來(lái)更高的性能。

更低的存儲(chǔ)成本

  • 之前:Hive中的原始表有500個(gè)字段。它按天劃分為多個(gè)分區(qū),每個(gè)分區(qū)有1.5億條數(shù)據(jù)。在HDFS中存儲(chǔ)需要810G存儲(chǔ)空間。
  • 之后:為了數(shù)據(jù)同步,使用SeaTunnel在YARN上調(diào)用Spark。它可以在40分鐘內(nèi)完成,并且攝取的數(shù)據(jù)只占用270G的存儲(chǔ)空間。

更少的內(nèi)存使用和更高的查詢性能

  • 之前:Hive中對(duì)上述表進(jìn)行GROUP BY查詢,占用720個(gè)內(nèi)核,占用YARN 1.44T,響應(yīng)時(shí)間為162秒。
  • 之后在Doris中使用Hive Catalog執(zhí)行聚合查詢,設(shè)置exec_mem_limit=16G,在58.531秒后收到結(jié)果。也嘗試將表放入Doris,并在Doris本身進(jìn)行同樣的查詢,只需要0.828秒。

其對(duì)應(yīng)語(yǔ)句如下:

  • Hive查詢,響應(yīng)時(shí)間:162秒。
SQL 
 select count(*),product_no FROM ods.demo_tbl where dt='2023-03-09'
 group by product_no;
  • 在Doris中使用Hive Catalog查詢,響應(yīng)時(shí)間:58.531秒。
SQL 
 set exec_mem_limit=16G;
 select count(*),product_no FROM hive.ods.demo_tbl where dt=’2023-03-09’
 group by product_no;
  • 直接在Doris查詢,響應(yīng)時(shí)間:0.828秒。
SQL 
 select count(*),product_no FROM ods.demo_tbl where dt=’2023-03-09’
 group by product_no;

更快的數(shù)據(jù)攝取

  • 之前:Hive的原始表有40個(gè)字段。它按天劃分為多個(gè)分區(qū),每個(gè)分區(qū)有11億條數(shù)據(jù)。在HDFS中存儲(chǔ)需要806G的存儲(chǔ)空間。
  • 之后:為了數(shù)據(jù)同步,使用SeaTunnel在YARN上調(diào)用Spark??梢栽?1分鐘內(nèi)完成(每分鐘1億條),并且所攝取的數(shù)據(jù)僅占用378G的存儲(chǔ)空間。

結(jié)語(yǔ)

構(gòu)建高性能風(fēng)險(xiǎn)數(shù)據(jù)集市的關(guān)鍵步驟是利用Apache Doris的Multi Catalog特性來(lái)統(tǒng)一異構(gòu)數(shù)據(jù)源。這不僅提高了查詢速度,而且還解決了以前的數(shù)據(jù)架構(gòu)帶來(lái)的許多問(wèn)題。

  • 部署Apache Doris允許將日常批處理工作負(fù)載與臨時(shí)查詢解耦,因此它們不必爭(zhēng)奪資源。這將查詢響應(yīng)時(shí)間從幾分鐘縮短到幾秒鐘。
  • 采用基于Elasticsearch集群構(gòu)建數(shù)據(jù)攝取接口,這在傳輸大量離線數(shù)據(jù)時(shí)可能會(huì)導(dǎo)致垃圾收集器抖動(dòng)。當(dāng)將接口服務(wù)數(shù)據(jù)集存儲(chǔ)在Doris上時(shí),在數(shù)據(jù)寫入過(guò)程中沒(méi)有發(fā)現(xiàn)抖動(dòng),并且能夠在10分鐘內(nèi)傳輸1000萬(wàn)行代碼。
  • Apache Doris已經(jīng)在許多場(chǎng)景下進(jìn)行了優(yōu)化,包括平面表。與ClickHouse相比,Apache Doris 1.2在SSB-Flat-table基準(zhǔn)測(cè)試中的速度快了一倍,在TPC-H基準(zhǔn)測(cè)試中快了幾十倍。
  • 在集群擴(kuò)展和更新方面,過(guò)去在修改配置后的恢復(fù)時(shí)間窗口很大。但是Doris支持熱插拔和易于擴(kuò)展,所以可以在幾秒鐘內(nèi)重新啟動(dòng)節(jié)點(diǎn),并最大限度地減少集群擴(kuò)展對(duì)用戶造成的干擾。

原文標(biāo)題:Step-By-Step Guide to Building a High-Performing Risk Data Mart,作者:Jacob Chow

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2022-05-29 22:56:13

數(shù)據(jù)安全元數(shù)據(jù)

2023-08-02 09:59:51

2018-05-08 18:26:49

數(shù)據(jù)庫(kù)MySQL性能

2017-01-06 08:51:31

2023-07-12 08:24:19

Java NIO通道

2022-01-29 14:09:45

編程語(yǔ)言PythonTaichi

2024-09-25 08:46:31

2022-11-23 15:57:40

測(cè)試開(kāi)發(fā)Java

2023-02-09 16:22:29

云計(jì)算CIO云服務(wù)

2022-10-18 14:04:01

LinuxLVM

2024-10-18 09:16:45

2010-03-12 08:33:55

Greenplum數(shù)據(jù)引擎數(shù)據(jù)倉(cāng)庫(kù)

2023-09-22 11:48:37

2022-08-23 09:00:00

Web測(cè)試工具自動(dòng)化

2024-10-12 08:00:00

機(jī)器學(xué)習(xí)Docker

2025-05-12 00:00:00

2023-08-05 15:12:54

Kubernetes命令

2019-10-17 09:23:49

Kafka高性能架構(gòu)

2014-11-25 10:03:42

JavaScript

2012-12-17 13:51:22

Web前端JavaScriptJS
點(diǎn)贊
收藏

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