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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

阿里云离线数据仓库

發(fā)布時間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云离线数据仓库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

阿里云離線數(shù)據(jù)倉庫

  • 第1章 數(shù)據(jù)倉庫概念
    • 第2章 項目需求及架構(gòu)設(shè)計
      • 2.1 項目需求分析
      • 2.2 阿里云技術(shù)框架
        • 2.2.1 技術(shù)選型
        • 2.2.2 系統(tǒng)數(shù)據(jù)流程設(shè)計
  • 第3章 數(shù)據(jù)生成模塊
    • 3.1 埋點數(shù)據(jù)基本格式
    • 3.2 事件日志數(shù)據(jù)
      • 3.2.1 商品列表頁(loading)
      • 3.2.2 商品曝光(display)
      • 3.2.3 商品詳情頁(newsdetail)
      • 3.2.4 購物車(cart)
      • 3.2.5 廣告(ad)
      • 3.2.6 消息通知(notification)
      • 3.2.7 評論(comment)
      • 3.2.8 收藏(favorites)
      • 3.2.8 點贊(praise)
      • 3.2.10 錯誤日志(error)
    • 3.3 啟動日志數(shù)據(jù)(start)
  • 第4章 數(shù)據(jù)采集模塊
    • 4.5 Flume安裝及使用
    • 4.6 DataHub安裝及使用
      • 4.6.1 DataHub 簡介
  • 4.8 DataWorks 和 MaxCompute
    • 4.8.1 簡介
  • 第5章 用戶數(shù)據(jù)行為數(shù)倉搭建
    • 5.1 數(shù)倉分層概念
      • 5.1.1 數(shù)倉分層
      • 5.1.2 數(shù)倉分層優(yōu)點
      • 5.1.3 數(shù)倉命名規(guī)范
    • 5.5 DataHub 推送數(shù)據(jù)到MaxCompute
    • 5.6 明細數(shù)據(jù)層(DWD層)
      • 5.6.1 日志格式分析
      • 5.6.2 自定義UDTF(解析具體事件字段)
      • 5.6.5 數(shù)據(jù)導(dǎo)入腳本
      • 5.7.3 數(shù)據(jù)導(dǎo)入腳本
    • 5.8 應(yīng)用數(shù)據(jù)層(ADS層)
  • 第6章 業(yè)務(wù)數(shù)倉理論
    • 6.1 表的分類
      • 6.1.1 實體表
      • 6.1.2 維度表
      • 6.1.3 事務(wù)型事實表
      • 6.1.4 周期型事實表
    • 6.2 同步策略
      • 6.2.1 實體表同步策略
      • 6.2.2 維度表同步策略
      • 6.2.3 事務(wù)型事實表同步策略
      • 6.2.4 周期型事實表同步策略
  • 第7章 業(yè)務(wù)數(shù)倉搭建
    • 7.1 業(yè)務(wù)數(shù)倉架構(gòu)圖
    • 7.2 RDS 服務(wù)器準備
      • 7.2.1 RDS 服務(wù)器購買
      • 7.5.3 每日增量表同步
      • 7.5.4 每日新增及變化表同步
    • 7.6 DWD層
      • 7.6.2 手動將數(shù)據(jù)導(dǎo)入 DWD 層
    • 7.7 DWS層
    • 7.8 ADS層
  • 第8章 數(shù)據(jù)導(dǎo)出與作業(yè)調(diào)度
    • 8.1 創(chuàng)建結(jié)果數(shù)據(jù)庫
    • 8.2 創(chuàng)建商品銷售數(shù)據(jù)同步節(jié)點
  • 第9章 數(shù)據(jù)可視化

第1章 數(shù)據(jù)倉庫概念

  • 數(shù)據(jù)倉庫定義(Data Warehouse),是為企業(yè)所有決策制定過程,提供所有系統(tǒng)數(shù)據(jù)支持的戰(zhàn)略集合。
  • 數(shù)據(jù)倉庫好處:可以幫助企業(yè)改進業(yè)務(wù)流程、控制成本、提高產(chǎn)品質(zhì)量等。
  • 數(shù)據(jù)倉庫做什么:清洗、轉(zhuǎn)義、分類、重組、合并、拆分,統(tǒng)計等。
  • 數(shù)據(jù)倉庫輸出到哪:報表系統(tǒng)、用戶畫像、推薦系統(tǒng)、機器學(xué)習(xí)、風(fēng)控系統(tǒng)等。
  • 第2章 項目需求及架構(gòu)設(shè)計

    2.1 項目需求分析

  • 采集埋點日志數(shù)據(jù):用戶行為數(shù)據(jù)倉庫,用戶來到網(wǎng)站/APP的行為(干了那些事),包括一些異常或故障。(以文件的形式存儲)
  • 采集業(yè)務(wù)數(shù)據(jù)庫中數(shù)據(jù):業(yè)務(wù)數(shù)倉,網(wǎng)站/APP中的各功能組件運行時所產(chǎn)生的數(shù)據(jù)。 (以MySQL數(shù)據(jù)庫的形式存儲)
  • 數(shù)據(jù)倉庫的搭建(用戶行為數(shù)倉、業(yè)務(wù)數(shù)倉)
  • 分析統(tǒng)計各種業(yè)務(wù)指標:比如日活躍用戶、新增用戶、交易額等。
  • 對結(jié)果進行可視化展示
  • 2.2 阿里云技術(shù)框架

    2.2.1 技術(shù)選型

    2.2.2 系統(tǒng)數(shù)據(jù)流程設(shè)計

    第3章 數(shù)據(jù)生成模塊

    3.1 埋點數(shù)據(jù)基本格式

  • 公共字段:比如基本所有安卓手機都包含的字段。
  • 業(yè)務(wù)字段:埋點上報的字段,有具體的業(yè)務(wù)類型。
  • 3.2 事件日志數(shù)據(jù)

    3.2.1 商品列表頁(loading)

    3.2.2 商品曝光(display)

    事件標簽:display

    3.2.3 商品詳情頁(newsdetail)

    事件標簽:newsdetail

    3.2.4 購物車(cart)

    事件名稱:cart

    3.2.5 廣告(ad)

    事件名稱:ad

    3.2.6 消息通知(notification)

    事件標簽:notification

    3.2.7 評論(comment)

    評論表標簽:comment

    3.2.8 收藏(favorites)

    收藏標簽:favorites

    3.2.8 點贊(praise)

    點贊標簽:praise

    3.2.10 錯誤日志(error)

    錯誤日志標簽:error,幫助發(fā)現(xiàn)問題,進行改善提升。

    3.3 啟動日志數(shù)據(jù)(start)

    啟動日志標簽:start

    第4章 數(shù)據(jù)采集模塊

    4.5 Flume安裝及使用

    Flume 是 Cloudera 提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。Flume 基于流式架構(gòu),靈活簡單。

  • Source:主要負責(zé)采集工作,采用 TailDir 組件用于監(jiān)控文件或文件夾的變化。
  • Channel:扮演數(shù)據(jù)管道的角色,對數(shù)據(jù)進行緩沖。采用非持久化的 Memory類型。
  • 4.6 DataHub安裝及使用

    4.6.1 DataHub 簡介

  • Flume 部分已經(jīng)可以輸出后,就開始搭建真正需要輸出的目的地—DataHub,即阿里云數(shù)據(jù)總線服務(wù)。 通俗來說這個 DataHub
  • 類似于傳統(tǒng)大數(shù)據(jù)解決方案中 Kafka 的角色,提供了一個數(shù)據(jù)隊列功能。 對于離線計算,DataHub 除了提供了一個緩沖的隊列作用。
  • 同時由于DataHub提供了各種與其他阿里云上下游產(chǎn)品的對接功能,所以DataHub又扮演了一個數(shù)據(jù)的分發(fā)樞紐工作。
  • DataHub 輸入組件包括
    Flume:主流的開源日志采集框架。
    DTS:類似 Canal,日志實時監(jiān)控采集框架。
    Logstash:也是日志采集框架,通常和 Elasticsearch、Kibana 集合使用。
    Fluentd:Fluentd 是一個實時開源的數(shù)據(jù)收集器。
    OGG:實時監(jiān)控 Oracle 中數(shù)據(jù)變化。

    DataHub 輸出組件包括
    RDS:類似于傳統(tǒng) MySQL 數(shù)據(jù)庫。
    DB:面向分析型的分布式數(shù)據(jù)庫。
    MaxCompute:離線分析框架。
    Elasticsearch:數(shù)據(jù)分析,倒排索引。
    StreamCompute:實時分析框架。
    TableSotre:類似于 Redis,KV 形式存儲數(shù)據(jù)。
    OSS:類似于 HDFS,存儲圖片,視頻。

    4.8 DataWorks 和 MaxCompute

    4.8.1 簡介

    MaxCompute(大數(shù)據(jù)計算服務(wù))是阿里巴巴自主研發(fā)的海量數(shù)據(jù)處理平臺,主要提供數(shù)據(jù)上傳和下載通道,提供 SQL 及 MapReduce 等多種計算分析服務(wù),同時還提供完善的安全解決方案。

    DataWorks(數(shù)據(jù)工場,原大數(shù)據(jù)開發(fā)套件)是基于 MaxCompute 計算引擎的一站式大數(shù)據(jù)工場,它能幫助您快速完成數(shù)據(jù)集成、開發(fā)、治理、服務(wù)、質(zhì)量、安全等全套數(shù)據(jù)研發(fā)工作。

    圖27-1:37

    盤古:分布式文件系統(tǒng),相當(dāng)于Hadoop 中的 HDFS。
    伏羲:分布式調(diào)度系統(tǒng),相當(dāng)于Hadoop 中的 YARN。
    MaxCompute Engine:統(tǒng)一計算引擎,相當(dāng)于MR、Tez等計算引擎。

    MaxCompute 和 DataWorks 一起向用戶提供完善的ETL 和數(shù)倉管理能力,以及 SQL、MR、Graph 等多種經(jīng)典的分布式計算模型,能更快速地解決用戶海量數(shù)據(jù)計算問題,有效降低企業(yè)成本,保障數(shù)據(jù)安全。

    第5章 用戶數(shù)據(jù)行為數(shù)倉搭建

    5.1 數(shù)倉分層概念

    5.1.1 數(shù)倉分層

    圖29-1:37

  • ODS層:原始數(shù)據(jù)層,存放原始數(shù)據(jù),直接加載原始日志、數(shù)據(jù)、數(shù)據(jù)保持原貌不做處理(備份)。
  • DWD層:對ODS層數(shù)據(jù)進行清洗(去除空值,臟數(shù)據(jù),超過極限范圍的數(shù)據(jù))
  • DWS層:以DWD層為基礎(chǔ),進行輕度匯總。
  • ADS層:為各種統(tǒng)計報表提供數(shù)據(jù)。
  • 5.1.2 數(shù)倉分層優(yōu)點

  • 把復(fù)雜問題簡單化:將一個復(fù)雜的任務(wù)分解成多個步驟來完成,每一層只處理單一的步驟,比較簡、并且方便定位問題。
  • 減少重復(fù)開發(fā):規(guī)范數(shù)據(jù)分層,通過的中間層數(shù)據(jù),能夠減少極大的重復(fù)計算,增加一次計算結(jié)果的復(fù)用性。
  • 隔離原始數(shù)據(jù):不論是數(shù)據(jù)的異常還是數(shù)據(jù)的敏感性,使真實數(shù)據(jù)與統(tǒng)計數(shù)據(jù)解耦開。
  • 5.1.3 數(shù)倉命名規(guī)范

    • ODS層命名為ods前綴。
    • DWD層命名為dwd前綴。
    • DWS層命名為dws前綴。
    • ADS層命名為ads前綴。
    • 維度表命名為dim前綴。
    • 每日全量導(dǎo)入命名為df(day full)后綴。
    • 每日增量導(dǎo)入命名為di(day increase)后綴。

    5.5 DataHub 推送數(shù)據(jù)到MaxCompute

    之前 Flume 中的數(shù)據(jù)利用 DataHub Sink 把數(shù)據(jù)寫入到了 DataHub 中,DataHub 中提供了很多的其他第三方的 DataConnector 可以連接各種例如:MaxCompute,ElasticSearch,ADB,RDS等數(shù)據(jù)庫。

    所以就要建立 DataConnector 把數(shù)據(jù)推送到 MaxCompute 中。

    5.6 明細數(shù)據(jù)層(DWD層)

    DWD 層主要是對ODS層數(shù)據(jù)進行清洗(去除空值,臟數(shù)據(jù),超過極限范圍的數(shù)據(jù))。DWD 層處理后的表,能夠成為非常明確可用的基礎(chǔ)明細數(shù)據(jù)。

    5.6.1 日志格式分析

    1)日志格式:服務(wù)器時間 | json
    2)其中 json 包括:
    cm:公共字段的 key;
    ap:app 的名稱;
    et:具體事件。

    5.6.2 自定義UDTF(解析具體事件字段)

    開發(fā) UDTF 有兩個方法:

    • 方法1:在本地 IDEA 中創(chuàng)建工程,開發(fā)代碼,打包,把 JAR 上傳到 DataStudio 成為資源 JAR 包。然后基于資源 JAR 包,聲明函數(shù)。
    • 方法2:直接在 FunctionStudio 中開發(fā),然后在線打包發(fā)布程序,聲明函數(shù)。相比而言,從發(fā)布流程上來說,利用 FunctionStudio 更快捷方便。但是從 IDEA 開發(fā)角度來說,網(wǎng)頁版本的 FunctionStudio,肯定不如客戶端的功能強大、反應(yīng)速度流暢。不多也可以兩者配合起來使用。

    p34:未詳細學(xué)習(xí)。

    5.6.5 數(shù)據(jù)導(dǎo)入腳本

    1)在流程中加入一個數(shù)據(jù)開發(fā)腳本

    去重有兩種方式:
    1.按照某一個字段進行 group by;
    2.開窗函數(shù)。
    向 dws_uv_detail_d 表中插入數(shù)據(jù),數(shù)據(jù)來源于一個子查詢;
    子查詢里是一個開窗,對于 mid(設(shè)備id)進行開窗,開窗之后只取第一條。

    INSERT OVERRITE TABLE dws_uv_detail_d PARTITION (ds,hh,mm) SELECTmid,user_id,version_code,version_name,lang,source,os,area,model,brand,sdk_version,email,height_width,network,lng,lat,event_time,ds,hh,mm from (select*,ROW_NUMBER() OVER(PARTITION BY mid ORDER BY event_tion asc) AS rn from dwd_start_logwhere ds='20191008' ) st where rn = 1;

    5.7.3 數(shù)據(jù)導(dǎo)入腳本

    DWS 層一般圍繞某個主題進行聚合、拼接處理。
    針對統(tǒng)計日活的需求,DWS 主要的工作就進行以日為單位的去重操作。

    1)在流程中加入一個數(shù)據(jù)開發(fā)腳本
    在數(shù)據(jù)開發(fā)中,新建一個ODPS SQL
    圖39-00:18

    5.8 應(yīng)用數(shù)據(jù)層(ADS層)

    統(tǒng)計各個渠道的 uv 個數(shù)

    第6章 業(yè)務(wù)數(shù)倉理論

    6.1 表的分類

    6.1.1 實體表

    實體表:一般是指一個實現(xiàn)存在的業(yè)務(wù)對象,比如用戶、商品、商家、銷售員等等。

    6.1.2 維度表

    維度表:一般是指對應(yīng)一些業(yè)務(wù)狀態(tài),編號的解釋表。也可以稱之為碼表。比如地區(qū)表,訂單狀態(tài),支付方式,審批狀態(tài),商品分類等等。

    6.1.3 事務(wù)型事實表

    事務(wù)型事實表:一般指隨著業(yè)務(wù)發(fā)生不斷產(chǎn)生的數(shù)據(jù)。特點是一旦發(fā)生不會再變化。一般比如:交易流水,操作日志,出庫入庫記錄等等。

    6.1.4 周期型事實表

    周期型事實表,一般指隨著業(yè)務(wù)發(fā)生不斷產(chǎn)生的數(shù)據(jù)。
    與事務(wù)型不同的是,數(shù)據(jù)會隨著業(yè)務(wù)周期性的推進而變化。
    比如訂單,其中訂單狀態(tài)會周期性變化。再比如,請假、貸款申請,隨著批復(fù)狀態(tài)在周期性變化。

    6.2 同步策略

    數(shù)據(jù)同步策略的類型包括:全量表、增量表、新增及變化表。

    • 全量表:存儲完整的數(shù)據(jù)。
    • 增量表:存儲新增加的數(shù)據(jù)。
    • 新增及變化表:存儲新增加的數(shù)據(jù)和變化的數(shù)據(jù)。

    6.2.1 實體表同步策略

    實體表:比如用戶、商品、商家、銷售員等。
    實體表數(shù)據(jù)量比較小:通常可以做每日全量,就是每天存一份完整數(shù)據(jù),及每日全量。

    6.2.2 維度表同步策略

    維度表:比如訂單狀態(tài),審批狀態(tài),商品 分類。
    維度表數(shù)據(jù)量比較小:通常可以做每日全量,就是每天存一份完整數(shù)據(jù)。即每日全量。
    說明:

  • 針對可能會有變化的狀態(tài)數(shù)據(jù)可以存儲每日全量。
  • 沒變化的客觀世界的維度(比如性別,地區(qū),民族,政治成分,鞋子尺碼)可以只存一份固定值。
  • 6.2.3 事務(wù)型事實表同步策略

    事務(wù)型事實表:比如交易流水,操作日志,出庫入庫記錄等。
    因為數(shù)據(jù)不會變化,而且數(shù)據(jù)量巨大,所以每天只同步新增數(shù)據(jù)即可,所以可以做成每日增量表,即每日創(chuàng)建一個分區(qū)存儲。

    6.2.4 周期型事實表同步策略

    周期型事實表:比如,訂單、請假、貸款申請等。
    這類表從數(shù)據(jù)量的角度,存每日全量的話,數(shù)據(jù)量太大,冗余也太大。如果每日增量無法反應(yīng)數(shù)據(jù)變化,則導(dǎo)每日新增及變化量,包括了當(dāng)日的新增和修改。

    第7章 業(yè)務(wù)數(shù)倉搭建

    7.1 業(yè)務(wù)數(shù)倉架構(gòu)圖

    7.2 RDS 服務(wù)器準備

    7.2.1 RDS 服務(wù)器購買

    阿里云關(guān)系型數(shù)據(jù)庫(Relational DataBase Service, 簡稱 RDS)是一種穩(wěn)定可靠、可彈性伸縮的在線數(shù)據(jù)庫服務(wù)器。

    7.5.3 每日增量表同步

    1)同步策略:每日增量
    每日新增的表包括:ods_order_detail

    每日增量的區(qū)別就是要按照日期進行過濾,只篩選出今天新產(chǎn)生的數(shù)據(jù)。
    條件:

    DATE_FORMAT(create_time,'%Y%m%d') = '${bizdate}'

    7.5.4 每日新增及變化表同步

    1)同步策略:每日新增及變化
    每日新增及變化的表包括:ods_order_info

    條件:如果創(chuàng)建時間是當(dāng)日或者操作時間是當(dāng)日,則滿足條件。

    DATE_FORMAT(create_time, '%Y%m%d')='${bizdate}' or DATE_FORMAT(operate_time, '%Y%m%d')='${bizdate}'

    7.6 DWD層

    DWD 層,一般是對 ODS 層數(shù)據(jù)進行一定的清洗加工,如果是面對關(guān)系導(dǎo)入過來的數(shù)據(jù)表,還要把原本的關(guān)系型表結(jié)構(gòu),進行一定程度的維度退化。作為更易處理的明細數(shù)據(jù)。

    比如:
    ODS 地區(qū) + ODS 省份 => DWD 省份地區(qū)
    ODS 商品信息 + ODS 品牌 + ODS 商品一級分類 + ODS 商品二級分類 + ODS商品三級分類 => DWD 商品信息

    7.6.2 手動將數(shù)據(jù)導(dǎo)入 DWD 層

    1)在臨時查詢中執(zhí)行

    Insert overwrite table dwd_order_info_di partition(ds) Select id,total_amont,order_status,user_id,payment_way,out_trade_no,province_id,create_time,operate_time,ds from ods_order_info_di where ds='${bizdate}' and id is not null; //過濾條件:id不能為空insert overwrite table dwd_order_detail_di partition(ds) select od.id,order_id,oi.user_id,sku_idsku_name,order_price,sku_num,oi.province_id,od.create_time,od.ds from ods_order_detail_di od join ods_order_info_di oi and od.ds = '${bizdate}' and od.id is not null;//商品表 insert overwrite table dim_sku_info_df partition(ds) select sku.id,sku.spu_id,sku.price,sku.sku_name,sku.sku_desc,sku.weight,sku,tm_id,tm.tm_name,sku.category3_id,c2.id category2_id,c1.id cate gory1_id,c3.name category3_name,c2.name category2_name,c1.name category1_name,sku.create_time,sku.ds from (select *form ods_sku_info_dfwhere ds='${bizdate}' and id is not null ) sku join ods_base_category3_df c3 on sku.category3_id = c3.id and c3.ds = '${bizdate}' join ods baase category2 df c2 on c3.category2_id = c2.id and c2.ds = '${bizdate}' join ods_base_category1_df c1 on c2.category1_id = c1.id and c1.ds = '${bizdate}' join ods_base_trademark_df tm on tm.tm_id = sku.tm_id and tm.ds = '${bizdate}';insert overwrite table dim_user_info_df partition(ds) select id,name,birthday,gender,email,user_level,create_time,ds from ods_user_info_df where ds='${bizdate}' and id is not null;insert overwrite table dim_base_province_df partition(ds) select p.id,p.name,p.region_id,r.region_name,p.ds from ods_base_province_df p join ods_base_region_df r on p.region_id = r.id and p.ds='${bizdate}' and r.ds = '${bizdate}';

    7.7 DWS層

    DWS 層主要指針對明細粒度的數(shù)據(jù)進行短周期的匯總。DWS 公共匯總層是面向分析對象的主題聚集建模。

    在本教程中,最終的分析目標為:最近一天某個類目、某個地區(qū)、某類人群購買商品的銷售總額、購買力分析。因此,我們可以以最終交易成功的商品、買家、地區(qū)等角度對最近一天的數(shù)據(jù)進行組合 ,組合成為涵蓋多個維度的事實寬表。

    7.8 ADS層

    ADS 層主要是指針對某一個特定的維度進行的匯總。

    在本課程中,主要分析三個需求:用戶各個年齡段統(tǒng)計、地區(qū)銷售統(tǒng)計、熱門商品排行。所以主要是針對年齡、地區(qū)、商品進行匯總統(tǒng)計,統(tǒng)計四個指標下單數(shù)、購買商品個數(shù)、銷售額、平均客單價。

    第8章 數(shù)據(jù)導(dǎo)出與作業(yè)調(diào)度

    將 MaxCompute 中的計算完的結(jié)果,需要導(dǎo)入到RDS數(shù)據(jù)庫中,用于后續(xù)的可視化。

    8.1 創(chuàng)建結(jié)果數(shù)據(jù)庫

    1)在 RDS 服務(wù)器中,新建一個 gmall_adb 數(shù)據(jù)庫,用來保存之后從 MaxCompute 中的結(jié)果數(shù)據(jù)。

    8.2 創(chuàng)建商品銷售數(shù)據(jù)同步節(jié)點

    將ADS層數(shù)據(jù)導(dǎo)出到 MaxCompute。
    1)數(shù)據(jù)開發(fā) -> 數(shù)據(jù)集成 -> 新建數(shù)據(jù)集成節(jié)點 -> 數(shù)據(jù)同步

    數(shù)據(jù)集成:用于 MaxCompute 對外的輸入輸出。
    數(shù)據(jù)開發(fā):是 MaxCompute 內(nèi)部層與層之間的腳本編寫。

    第9章 數(shù)據(jù)可視化

    總結(jié)

    以上是生活随笔為你收集整理的阿里云离线数据仓库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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