日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

applicaiton.yml 日志配置_底层基于Apache Hudi的DLA最佳实践 海量、低成本日志分析...

發(fā)布時(shí)間:2025/3/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 applicaiton.yml 日志配置_底层基于Apache Hudi的DLA最佳实践 海量、低成本日志分析... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景信息

日志作為一種特殊的數(shù)據(jù),對(duì)處理歷史數(shù)據(jù)、診斷問題以及了解系統(tǒng)活動(dòng)等有著非常重要的作用。對(duì)數(shù)據(jù)分析人員、開發(fā)人員或者運(yùn)維人員而言,日志都是其工作過程中必不可缺的數(shù)據(jù)來源。

通常情況下,為節(jié)約成本,我們會(huì)將日志設(shè)定一定的保存時(shí)間,只分析該時(shí)間段內(nèi)的日志,此類日志稱之為“熱”日志。這種做法,短期內(nèi)可以滿足使用需求,但從長(zhǎng)期來看,大量的歷史日志被擱置,無法發(fā)揮其價(jià)值。

對(duì)于許多企業(yè)而言,對(duì)日志分析的需求特征通常為低時(shí)效和低頻率。并且在一個(gè)企業(yè)中,為偶發(fā)性的日志分析去構(gòu)建一套完整的日志分析系統(tǒng),無論在經(jīng)濟(jì)成本還是運(yùn)維成本上都是不劃算的。如何在降低存儲(chǔ)成本的同時(shí)滿足大批量日志的分析需求,是擺在企業(yè)面前的一道難題。

實(shí)施方案

阿里云從用戶角度出發(fā),研發(fā)了一整套小而精的歷史日志數(shù)據(jù)分析方案。利用阿里云日志服務(wù) LOG(Log Service,簡(jiǎn)稱LOG/原SLS)來投遞日志,阿里云對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱OSS)來存儲(chǔ)日志,Data Lake Analytics(DLA)來分析日志。該方案有以下三個(gè)優(yōu)勢(shì):

  • LOG是針對(duì)實(shí)時(shí)數(shù)據(jù)一站式服務(wù),在阿里集團(tuán)經(jīng)歷大量大數(shù)據(jù)場(chǎng)景錘煉而成。提供日志類數(shù)據(jù)采集、智能查詢分析、消費(fèi)與投遞等功能,全面提升海量日志處理/分析能力。LOG強(qiáng)大的日志投遞能力,能夠從源頭對(duì)接各種類型的日志格式,并且穩(wěn)定地將日志投遞到指定的位置。

  • OSS低廉的存儲(chǔ)成本,能夠讓您的日志文件存儲(chǔ)任意長(zhǎng)的時(shí)間。

  • DLA強(qiáng)大的分析能力,Serverless的架構(gòu),按掃描量收費(fèi)。DLA可以對(duì)投遞到OSS上的日志按年、按月、按日進(jìn)行多維度的分區(qū),提高日志的命中率,降低掃描量,從而以極低的成本、極高的性能來完成大數(shù)據(jù)量歷史日志分析。

例如,服務(wù)部署在云服務(wù)器ECS(Elastic Compute Service,簡(jiǎn)稱ECS)集群上,該集群的每臺(tái)機(jī)器上都有一個(gè)記錄訪問情況的日志access.log。我們需要提取access.log中的信息,并將過濾后的信息存儲(chǔ)至OSS上。本文檔將以此為例,詳細(xì)為您介紹實(shí)施步驟。

前提條件

在開始實(shí)施步驟之前,需要先完成以下準(zhǔn)備工作。

  • 參考文檔LOG快速入門,開通日志服務(wù)、創(chuàng)建項(xiàng)目、創(chuàng)建日志庫(kù)。

  • 開通OSS服務(wù)、在日志服務(wù)項(xiàng)目所在的地域創(chuàng)建存儲(chǔ)空間。

  • 開通并初始化DLA服務(wù)。

實(shí)施步驟

步驟一:通過Logtail采集ECS日志

詳細(xì)操作請(qǐng)參見通過Logtail采集ECS日志。

根據(jù)本示例中的日志文件特點(diǎn),Logtail配置如下所示。

模式選擇完整正則模式,需要提供完整正則表達(dá)式。

步驟二:投遞日志到OSS

詳細(xì)操作請(qǐng)參見投遞日志到OSS,并且日志服務(wù)投遞OSS使用Parquet存儲(chǔ)的相關(guān)配置。

OSS投遞功能頁面,配置各項(xiàng)參數(shù):

參數(shù)說明:

  • OSS BucketOSS Prefix設(shè)置日志投遞到OSS的哪個(gè)目錄。

  • 修改分區(qū)格式,將分區(qū)列的名字填入到目錄中,格式為分區(qū)列名=分區(qū)列值

    如圖所示,修改分區(qū)格式默認(rèn)值,即一級(jí)分區(qū)列的列名為year,列值為%Y;二級(jí)分區(qū)列的列名為month,列值為%m;三級(jí)分區(qū)列的列名為day,列值為%d。

  • 存儲(chǔ)格式設(shè)置為parquet

  • 壓縮方式設(shè)置為snappy,使用snappy算法對(duì)數(shù)據(jù)做壓縮,可以減少OSS Bucket存儲(chǔ)空間使用量。

日志數(shù)據(jù)投遞到OSS中以后,就可以通過DLA讀取并分析OSS中的日志。

步驟三:在DLA中創(chuàng)建OSS連接

登錄DLA控制臺(tái),登錄DMS,在DLA中創(chuàng)建一個(gè)到OSS的連接。語法如下:

CREATE SCHEMA oss_log_schema with DBPROPERTIES( catalog='oss', location = 'oss://myappbucket/sls_parquet/' );

location:日志文件所在的OSS Bucket的目錄,需以/結(jié)尾表示目錄。myappbucket是OSS Bucket名字。

步驟四:在DLA中創(chuàng)建指向OSS日志文件的外表(分區(qū)表)

CREATE EXTERNAL TABLE sls_parquet ( content STRING, client STRING, process_id STRING, start_time STRING, total_time STRING, status STRING, original_sql STRING, rewritten_sql STRING ) PARTITIONED BY (year STRING, month STRING, day STRING) STORED AS PARQUET LOCATION 'oss://myappbucket/sls_parquet/';

注意:

  • 新建表中的列名要和生成的parquet文件中設(shè)置的列名一致。

  • 分區(qū)列的名稱、順序需要和步驟二:投遞日志到OSS中的分區(qū)列一致。更多創(chuàng)建分區(qū)表信息,請(qǐng)參見通過DLA創(chuàng)建OSS分區(qū)表。

步驟五:使用MSCK命令更新分區(qū)信息

外表創(chuàng)建成功后,執(zhí)行MSCK REPAIR TABLE將分區(qū)信息同步到DLA中。MSCK命令只能識(shí)別符合DLA分區(qū)列命名規(guī)則的目錄,即分區(qū)列的目錄名為分區(qū)列名=分區(qū)列值

class="code-tools"> class="theme-switch-btn">class="copy-btn">class="prettyprint linenums prettyprinted" style="">class="linenums">class="L0">class="lang-sql hljs">class="pln">MSCK class="hljs-keyword">REPAIR class="hljs-keyword">TABLE sls_parquetclass="pun">;class="pre-scrollbar-track" style="display: none;width: 100%;height: 4px;margin-bottom: 16px;"> class="pre-scrollbar-thumb" style="height: 100%;background-color: #d7d8d9;position: relative;">

步驟六:查詢分區(qū)表數(shù)據(jù)

分區(qū)信息同步完成后,使用SELECT語句對(duì)日志進(jìn)行查詢分析。例如,得到某一天查詢最慢的5條語句。

class="code-tools"> class="theme-switch-btn">class="copy-btn">class="prettyprint linenums prettyprinted" style="">class="linenums">class="L0">class="lang-sql hljs">class="pln">class="hljs-keyword">SELECT original_sqlclass="pun">,class="pln"> total_time class="L1">class="lang-sql hljs">class="pln">FROM sls_parquet class="L2">class="lang-sql hljs">class="pln">WHERE clientclass="pun">!=class="str">''class="pln"> class="L3">class="lang-sql hljs">class="pln">ORDER BY total_time DESC class="L4">class="lang-sql hljs">class="pln">LIMIT class="lit">5class="pun">;class="pre-scrollbar-track" style="display: none;width: 100%;height: 4px;margin-bottom: 16px;"> class="pre-scrollbar-thumb" style="height: 100%;background-color: #d7d8d9;position: relative;">

后續(xù)操作

上述示例中,日志數(shù)據(jù)投遞OSS的存儲(chǔ)格式為Parquet格式,除了Parquet格式,LOG還可以將投遞文件的格式設(shè)置為JSON和CSV。詳細(xì)的配置,請(qǐng)參見JSON格式和CSV格式。

JSON格式

當(dāng)投遞文件的格式設(shè)置為JSON且無壓縮時(shí),建表語句為:

CREATE EXTERNAL TABLE sls_json ( content STRING, client STRING, process_id STRING, start_time STRING, total_time STRING, status STRING, original_sql STRING, rewritten_sql STRING ) PARTITIONED BY (year STRING, month STRING, day STRING) STORED AS JSON LOCATION 'oss://myappbucket/sls_json/';

當(dāng)投遞文件的格式設(shè)置為JSON且使用標(biāo)準(zhǔn)Snappy壓縮時(shí),建表語句為:

CREATE EXTERNAL TABLE sls_json_snappy ( content STRING, client STRING, process_id STRING, start_time STRING, total_time STRING, status STRING, original_sql STRING, rewritten_sql STRING ) PARTITIONED BY (year STRING, month STRING, day STRING) STORED AS JSON LOCATION 'oss://myappbucket/sls_json_snappy/' TBLPROPERTIES( 'text.compression'='snappy', 'io.compression.snappy.native'='true' );

CSV格式

當(dāng)投遞文件的格式設(shè)置為CSV,不包含header,使用標(biāo)準(zhǔn)Snappy壓縮時(shí),建表語句為:

CREATE EXTERNAL TABLE sls_csv_snappy ( content STRING, client STRING, process_id STRING, start_time STRING, total_time STRING, status STRING, original_sql STRING, rewritten_sql STRING ) PARTITIONED BY (year STRING, month STRING, day STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES( 'separatorChar'=',', 'quoteChar'='"', 'escapeChar'='\\' ) STORED AS TEXTFILE LOCATION 'oss://myappbucket/sls_csv_snappy/' TBLPROPERTIES( 'text.compression'='snappy', 'io.compression.snappy.native'='true', 'skip.header.line.count'='0' );

當(dāng)投遞文件的格式設(shè)置為CSV無壓縮,且包含header時(shí),建表語句為:

CREATE EXTERNAL TABLE sls_csv ( content STRING, client STRING, process_id STRING, start_time STRING, total_time STRING, status STRING, original_sql STRING, rewritten_sql STRING ) PARTITIONED BY (year STRING, month STRING, day STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES( 'separatorChar'=',', 'quoteChar'='"', 'escapeChar'='\\' ) STORED AS TEXTFILE LOCATION 'oss://myappbucket/sls_csv/' TBLPROPERTIES( 'skip.header.line.count'='1' );

推薦

阿里云Data Lake Analytics是Serverless化的交互式聯(lián)邦查詢服務(wù)。使用標(biāo)準(zhǔn)SQL即可輕松分析與集成對(duì)象存儲(chǔ)(OSS)、數(shù)據(jù)庫(kù)(PostgreSQL/MySQL等)、NoSQL(TableStore等)數(shù)據(jù)源的數(shù)據(jù)。

Data Lake Analytics產(chǎn)品詳情頁:https://www.aliyun.com/product/datalakeanalytics

Data Lake Analytics 1元購(gòu)入口:https://common-buy.aliyun.com/?commodityCode=openanalytics_post#/buy

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的applicaiton.yml 日志配置_底层基于Apache Hudi的DLA最佳实践 海量、低成本日志分析...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。