數(shù)據(jù)倉(cāng)庫(kù)指北

一枯冈、 Q&A

Q1:什么是維度苹威?
維就可以相當(dāng)于角度昆咽,當(dāng)說按什么維度看數(shù)據(jù)就是你想從什么角度分析數(shù)據(jù)。
Q2:什么是次留用戶,7日留存牙甫?
次留用戶指的是統(tǒng)計(jì)當(dāng)天的用戶仍是昨天的那個(gè)用戶掷酗,7日留存用戶指的就是統(tǒng)計(jì)當(dāng)天活躍的用戶是在7天前同樣活躍的用戶。
Q3:為什么做數(shù)據(jù)分層設(shè)計(jì)腹暖?
大數(shù)據(jù)處理時(shí)汇在,作為數(shù)據(jù)開發(fā)者,我們總會(huì)進(jìn)行各種表關(guān)聯(lián)或者表依賴脏答,如果沒有很好地規(guī)劃表依賴糕殉,則會(huì)造成我們的數(shù)據(jù)表關(guān)系混亂復(fù)雜亩鬼,不方便我們看清數(shù)據(jù)的整體生命周期及數(shù)據(jù)流向,甚至出現(xiàn)循環(huán)依賴的數(shù)據(jù)體系阿蝶,于是數(shù)據(jù)分層就很有必要雳锋,可以直觀看清數(shù)據(jù)流向,建造更加良好的數(shù)據(jù)體系羡洁。
Q4:數(shù)據(jù)分層的好處玷过?
1、清晰數(shù)據(jù)結(jié)構(gòu):每一個(gè)數(shù)據(jù)分層都有它的作用域和職責(zé)筑煮,在使用表的時(shí)候能更方便地定位和理解
2辛蚊、減少重復(fù)開發(fā):規(guī)范數(shù)據(jù)分層,開發(fā)一些通用的中間層數(shù)據(jù)真仲,能夠減少極大的重復(fù)計(jì)算
3袋马、統(tǒng)一數(shù)據(jù)口徑:通過數(shù)據(jù)分層,提供統(tǒng)一的數(shù)據(jù)出口秸应,統(tǒng)一對(duì)外輸出的數(shù)據(jù)口徑
4虑凛、復(fù)雜問題簡(jiǎn)單化:將一個(gè)復(fù)雜的任務(wù)分解成多個(gè)步驟來完成,每一層解決特定的問題
Q5:數(shù)據(jù)倉(cāng)庫(kù)起到什么作用软啼?
數(shù)據(jù)倉(cāng)庫(kù)桑谍,簡(jiǎn)稱DW,是各源系統(tǒng)數(shù)據(jù)及日志數(shù)據(jù)的匯總落地處祸挪,為企業(yè)決策做制定過程锣披,為產(chǎn)品業(yè)務(wù)改進(jìn)做支撐,控制成本和提高產(chǎn)品質(zhì)量匕积,而數(shù)據(jù)倉(cāng)庫(kù)也不是數(shù)據(jù)的最終目的地盈罐,而是為數(shù)據(jù)最終目的地做準(zhǔn)備,比如清洗闪唆、轉(zhuǎn)義盅粪、分類、重組悄蕾、合并票顾、拆分、統(tǒng)計(jì)帆调,數(shù)據(jù)要體現(xiàn)出價(jià)值奠骄,最終目的地則是為各類大數(shù)據(jù)應(yīng)用系統(tǒng)服務(wù),常用的有BI報(bào)表系統(tǒng)番刊、用戶畫像含鳞、推薦系統(tǒng)、風(fēng)控系統(tǒng)芹务。
Q6:OLAP和OLTP的區(qū)別蝉绷?
OLAP(On-Line Analytical Processing)鸭廷,即聯(lián)機(jī)分析處理,主要應(yīng)用在數(shù)據(jù)倉(cāng)庫(kù)熔吗,主要使用對(duì)象是決策者辆床,對(duì)響應(yīng)速度要求不高,強(qiáng)調(diào)多維分析能力桅狠,保留歷史數(shù)據(jù)讼载,數(shù)據(jù)大小一般是TB或PB級(jí)別。
OLTP(On-Line Transaction Processing)中跌,即聯(lián)機(jī)事務(wù)處理咨堤,主要應(yīng)用在數(shù)據(jù)庫(kù),主要使用對(duì)象是開發(fā)人員漩符,對(duì)實(shí)時(shí)性要求高吱型,保留數(shù)據(jù)最新狀態(tài),數(shù)據(jù)大小一般是GB級(jí)別陨仅。
Q7:大數(shù)據(jù)的數(shù)據(jù)來源?
埋點(diǎn)用戶行為數(shù)據(jù):如頁(yè)面瀏覽铝侵、點(diǎn)擊灼伤、評(píng)論等,主要體現(xiàn)在埋點(diǎn)事件的設(shè)計(jì)咪鲜,埋點(diǎn)事件的設(shè)計(jì)好壞程度直接影響了數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)狐赡,區(qū)分出公共字段和業(yè)務(wù)埋點(diǎn)事件參數(shù)
業(yè)務(wù)交互數(shù)據(jù):如登錄、訂單疟丙、商品等颖侄,主要體現(xiàn)在業(yè)務(wù)的數(shù)據(jù)庫(kù)中
日志數(shù)據(jù):如上報(bào)的性能日志等,主要體現(xiàn)在服務(wù)器日志文件中享郊,通過采集解析的方式拉取
Q8:歷史拉鏈表
是一種既能反應(yīng)數(shù)據(jù)的歷史變更狀態(tài)览祖,又能更大程度的節(jié)省數(shù)據(jù)存儲(chǔ)的一種數(shù)據(jù)模型表。常用于表內(nèi)屬性狀態(tài)經(jīng)常會(huì)變更炊琉,比如訂單表中的同個(gè)訂單在每天都會(huì)有不同的訂單狀態(tài)(例如:今天創(chuàng)建展蒂,明天下單,后天發(fā)貨)
下文有這種數(shù)據(jù)模型表的刷新思路方法苔咪。
Q9:數(shù)據(jù)集市锰悼?
數(shù)據(jù)集市可以理解為是一個(gè)微型的數(shù)據(jù)倉(cāng)庫(kù),具有更少的主題域团赏,服務(wù)對(duì)象更小箕般,可以是部門級(jí)別,而數(shù)據(jù)倉(cāng)庫(kù)則是服務(wù)于企業(yè)級(jí)別舔清。數(shù)據(jù)倉(cāng)庫(kù)可以統(tǒng)一規(guī)劃數(shù)據(jù)丝里,避免數(shù)據(jù)孤島曲初。
Q10:上卷和下鉆?
鉆相對(duì)于維來說的話丙者,就是可以改變維的層次复斥,變換分析的粒度。向上鉆取就是上卷械媒,向下鉆取就是下鉆目锭。
例如:把快游戲業(yè)務(wù)的內(nèi)購(gòu)流水按照時(shí)間維度進(jìn)行向上聚集匯總數(shù)據(jù),從而計(jì)算出天內(nèi)購(gòu)流水和月內(nèi)購(gòu)流水纷捞;把快游戲業(yè)務(wù)的內(nèi)購(gòu)流水沿著時(shí)間維向下細(xì)探到每個(gè)用戶產(chǎn)生的明細(xì)流水?dāng)?shù)據(jù)痢虹,這就叫做下鉆。
Q11:自然鍵和代理鍵主儡?
搞清楚一個(gè)問題奖唯,在數(shù)據(jù)層面,鍵一般是用來唯一標(biāo)識(shí)一個(gè)實(shí)體的所有屬性糜值。
自然鍵一般是已經(jīng)存在的數(shù)據(jù)丰捷,字段本身含有一定的業(yè)務(wù)意義,例如:身份證號(hào)
代理鍵一般是無實(shí)際業(yè)務(wù)意義的數(shù)據(jù)寂汇,只具有主鍵作用病往,例如:自增ID
在ETL過程中,數(shù)據(jù)倉(cāng)庫(kù)中商品維表中的商品ID可能是自然鍵骄瓣,而可以生成一個(gè)唯一標(biāo)識(shí)的鍵作為代理鍵停巷,而在前臺(tái)業(yè)務(wù)系統(tǒng)中,商品ID倒是作為代理鍵來著榕栏。
使用代理鍵的優(yōu)缺點(diǎn):優(yōu)點(diǎn)①能夠?qū)啥鄠€(gè)操作型系統(tǒng)的數(shù)據(jù)進(jìn)行整合時(shí)起到緩沖作用畔勤,因?yàn)椴煌瑯I(yè)務(wù)系統(tǒng)的同主題下可能會(huì)出現(xiàn)唯一標(biāo)識(shí)重復(fù),就需要有一個(gè)代理鍵來進(jìn)行整合唯一標(biāo)識(shí)扒磁;②代理鍵是整型的庆揪,減少了事實(shí)表中記錄的長(zhǎng)度,同樣的IO可以讀取更多的事實(shí)表記錄渗磅,整型字段做外鍵關(guān)聯(lián)效率也高嚷硫,提升性能;③使用代理鍵可用來處理緩慢變化維的情況始鱼,例如拉鏈表仔掸。缺點(diǎn)是使用代理鍵會(huì)增加ETL的復(fù)雜性,開發(fā)和維護(hù)成本高医清。

二起暮、數(shù)據(jù)倉(cāng)庫(kù)的一些數(shù)據(jù)表種類

  • 寬表
    顧名思義是字段比較多的數(shù)據(jù)庫(kù)大表,通常是把同個(gè)業(yè)務(wù)主題域的相關(guān)維度、指標(biāo)负懦、屬性都關(guān)聯(lián)放在同一張表筒捺,由于把不同內(nèi)容都放在一張表這本身就已經(jīng)破壞了表的設(shè)計(jì)范式,所以寬表會(huì)造成大量數(shù)據(jù)冗余纸厉,但查詢性能和效率就會(huì)提高和便捷系吭,相當(dāng)于以空間換時(shí)間,寬表設(shè)計(jì)場(chǎng)景可在數(shù)據(jù)挖掘模型訓(xùn)練前的數(shù)據(jù)準(zhǔn)備颗品,減少表關(guān)聯(lián)取數(shù)數(shù)量
  • 窄表
    嚴(yán)格按照數(shù)據(jù)設(shè)計(jì)三范式肯尺,盡量減少數(shù)據(jù)冗余,缺點(diǎn)是修改一個(gè)數(shù)據(jù)可能要經(jīng)常切換修改與之關(guān)聯(lián)的表對(duì)應(yīng)數(shù)據(jù)
  • 維度表
    維度表是存放著維度屬性的集合躯枢,維度數(shù)據(jù)固定且數(shù)據(jù)量不大则吟,可以把維度看成是分析數(shù)據(jù)的角度,就是按什么角度來分析數(shù)據(jù)
  • 事實(shí)表
    事實(shí)表是數(shù)據(jù)倉(cāng)庫(kù)結(jié)構(gòu)中的中央表锄蹂,按維度表分析事實(shí)的詳細(xì)數(shù)據(jù)氓仲,在事實(shí)表中的度量值有2種,一種是可以累計(jì)的度量值(比如:用戶明細(xì)記錄可計(jì)算用戶pv指標(biāo))得糜,另一種是非累計(jì)的度量值(這種匯總出來結(jié)果一般沒意義敬扛,但求其他指標(biāo)比如平均值就有意義這樣)
    事實(shí)表有三類:①事務(wù)型事實(shí)表,保留全部數(shù)據(jù)朝抖,采用增量同步策略舔哪,即每個(gè)分區(qū)來存儲(chǔ)增量數(shù)據(jù);
    ②周期性快照事實(shí)表槽棍,不會(huì)保留全部數(shù)據(jù),僅保留固定時(shí)間周期內(nèi)數(shù)據(jù)抬驴,采用全量同步策略炼七,即每個(gè)分區(qū)即最新全部數(shù)據(jù);
    ③累積型快照事實(shí)表布持,主要用于更新業(yè)務(wù)事實(shí)的變化豌拙,采用新增更新同步策略。

三题暖、數(shù)據(jù)倉(cāng)庫(kù)的層級(jí)劃分規(guī)范

數(shù)倉(cāng)分層設(shè)計(jì).jpg

表命名通用規(guī)范:層級(jí)前綴_主題域_表內(nèi)容

  • dwd層按傅,該層的粒度一般保持和ods層一樣,不過有時(shí)為了數(shù)據(jù)開發(fā)時(shí)易用性胧卤,會(huì)退化一些維度進(jìn)入事實(shí)表唯绍,減少事實(shí)表和維表的關(guān)聯(lián)提高性能。通常是解析ods層日志數(shù)據(jù)或者對(duì)ods層業(yè)務(wù)數(shù)據(jù)進(jìn)行維度建模枝誊。
    提供數(shù)據(jù)質(zhì)量况芒,做一些數(shù)據(jù)清洗的工作,比如去噪或去異常值叶撒。
  • dwm層绝骚,主要作用有2種:①對(duì)dwd層的數(shù)據(jù)按照維度進(jìn)行收斂耐版,做明細(xì)數(shù)據(jù)輕度聚合,出現(xiàn)一些業(yè)務(wù)統(tǒng)計(jì)指標(biāo)压汪。②把各個(gè)業(yè)務(wù)相關(guān)的可歸為同主題的dwd表關(guān)聯(lián)一起組成寬表獲取更豐富的字段信息粪牲,使用寬表模型,做明細(xì)數(shù)據(jù)橫向整合止剖。
  • dws層腺阳,在這層的數(shù)據(jù)表會(huì)比較少,根據(jù)業(yè)務(wù)線劃分生成字段較多的寬表滴须,比如充值統(tǒng)計(jì)舌狗、活躍統(tǒng)計(jì),一般是多天累計(jì)的分區(qū)表扔水,出現(xiàn)一些比如近30天的充值次數(shù)啊等指標(biāo)痛侍。這層重點(diǎn)在于提高數(shù)據(jù)易用性,起數(shù)據(jù)開發(fā)優(yōu)化作用魔市。

四主届、幾種常見數(shù)據(jù)模型

  • 星型模型
    是數(shù)據(jù)集市維度建模中的推薦方法,星型模型以事實(shí)表為中心待德,所有的維度表都直接連接在事實(shí)表上君丁,像星星一樣,按維度進(jìn)行匯總将宪,所以執(zhí)行效率會(huì)比較高些绘闷。維度建模的領(lǐng)域主要適用于數(shù)據(jù)集市,它的最大作用其實(shí)是為了解決數(shù)據(jù)倉(cāng)庫(kù)建模中的性能問題(join少則shuffle就少较坛,性能就越好)印蔗,維度建模很難能夠提供一個(gè)完整地描述真實(shí)業(yè)務(wù)實(shí)體之間的復(fù)雜關(guān)系的抽象方法
    維度建模
  • 雪花模型
    雪花模型的維度表是可以擁有其他維度表的,圖示的話就是不用直接連接在事實(shí)表上丑勤,不過也沒有嚴(yán)格遵循三范式华嘹,性能比星型模型低,但相對(duì)較靈活些
  • 范式模型
    范式模型介于星型模型和雪花模型之間法竞,優(yōu)點(diǎn)是避免數(shù)據(jù)冗余
  • 星座模型
    星型模型的擴(kuò)展耙厚,只不過星座模型是可以基于多張事實(shí)表的,可共享維度信息岔霸。數(shù)據(jù)倉(cāng)庫(kù)大多是這類模型薛躬,即數(shù)據(jù)集市建模采用星型模型,然后各數(shù)據(jù)集市組成一個(gè)完整的數(shù)據(jù)倉(cāng)庫(kù)則演變成星座模型

五呆细、數(shù)據(jù)倉(cāng)庫(kù)建模

數(shù)倉(cāng)構(gòu)建一般還是采用維度建模的方式泛豪。

1、維度建模

維度建模四步走如下 (PS:按流程走,四步是從上往下诡曙,環(huán)環(huán)相扣的)

  • 1臀叙、選擇業(yè)務(wù)過程
    此過程是基于業(yè)務(wù)需求以及日后的易擴(kuò)展性考慮的,即開始數(shù)倉(cāng)建模時(shí)按業(yè)務(wù)區(qū)分選擇數(shù)據(jù)价卤。
  • 2劝萤、聲明粒度
    存在一對(duì)一關(guān)系的就是相同粒度,粒度可以理解為層級(jí)慎璧,比如一個(gè)公司有多個(gè)部門床嫌,一個(gè)部門有多個(gè)員工,而這里面的不同部門就是相同粒度胸私,不同員工也是相同粒度厌处。維度建模時(shí)在同一事實(shí)表中必須具有相同的粒度,不同粒度最好建立不同的事實(shí)表岁疼,從業(yè)務(wù)獲取數(shù)據(jù)時(shí)最好是從最細(xì)粒度開始阔涉,即原子粒度。
  • 3捷绒、確認(rèn)維度
    維度就是分析數(shù)據(jù)的角度瑰排,是數(shù)倉(cāng)的“靈魂”椭住,數(shù)倉(cāng)工具箱告訴我們牢牢掌握事實(shí)表的粒度京郑,就可以區(qū)分出維度傻挂,維度表必須保證不出現(xiàn)重復(fù)數(shù)據(jù)挖息,即維度唯一套腹。
  • 4电禀、確認(rèn)事實(shí)
    事實(shí)表是用來度量的尖飞,基本是一些計(jì)數(shù)值政基,維度建模核心原則之一是同一事實(shí)表中的所有度量都必須具備相同的粒度,才能確保不出現(xiàn)重復(fù)計(jì)算度量的問題辕坝。

附學(xué)習(xí)參考文章:https://www.cnblogs.com/itlz/p/14262577.html

2荐健、范式建模

主要應(yīng)用于數(shù)據(jù)庫(kù)設(shè)計(jì),通過三范式對(duì)表進(jìn)行設(shè)計(jì)纺酸,避免數(shù)據(jù)冗余址否。

3在张、關(guān)系建模

嚴(yán)格遵守三范式對(duì)表進(jìn)行設(shè)計(jì),避免數(shù)據(jù)冗余和保持?jǐn)?shù)據(jù)一致性啄骇,關(guān)系建模和維度建模在表關(guān)系依賴方面基本相似,維度建模一般只依賴一層表關(guān)系虽惭,關(guān)系建模就會(huì)層層表依賴芽唇,關(guān)系表比較多匆笤,關(guān)系復(fù)雜些炮捧。

七惦银、歷史拉鏈表刷新策略方法

涉及全量初始化、增量抽取進(jìn)表并刷新歷史數(shù)據(jù):http://lxw1234.com/archives/2015/08/473.htm
數(shù)據(jù)倉(cāng)庫(kù)之ETL策略:http://lxw1234.com/archives/2015/04/31.htm

八书蚪、數(shù)據(jù)倉(cāng)庫(kù)的常見指標(biāo)計(jì)算

留存用戶計(jì)算:計(jì)算思路就是通過取一時(shí)間段內(nèi)的用戶進(jìn)行與統(tǒng)計(jì)當(dāng)天用戶關(guān)聯(lián)喇澡,如果關(guān)聯(lián)上則表示仍是之前的用戶善炫,那個(gè)用戶即為留存用戶撩幽。
新增用戶計(jì)算:前提是擁有一張全量歷史表箩艺,每天新增的用戶往里面刷新窜醉,歷史的數(shù)據(jù)也保留著艺谆,計(jì)算新增用戶則把統(tǒng)計(jì)最新一天的用戶撈出來即可
累計(jì)用戶計(jì)算:同上榨惰,前提是擁有一張全量歷史表,每天新增的用戶往里面刷新静汤,歷史的數(shù)據(jù)也保留著,計(jì)算累計(jì)用戶則把歷史全量的用戶撈出來

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藤抡,一起剝皮案震驚了整個(gè)濱河市抹估,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌语泽,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惋砂,居然都是意外死亡妒挎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門班利,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人榨呆,你說我怎么就攤上這事罗标∮苟樱” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵闯割,是天一觀的道長(zhǎng)彻消。 經(jīng)常有香客問我,道長(zhǎng)宙拉,這世上最難降的妖魔是什么宾尚? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮谢澈,結(jié)果婚禮上煌贴,老公的妹妹穿的比我還像新娘。我一直安慰自己锥忿,他們只是感情好牛郑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敬鬓,像睡著了一般淹朋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钉答,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天础芍,我揣著相機(jī)與錄音,去河邊找鬼数尿。 笑死仑性,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的砌创。 我是一名探鬼主播虏缸,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嫩实!你這毒婦竟也來了刽辙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤甲献,失蹤者是張志新(化名)和其女友劉穎宰缤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晃洒,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慨灭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了球及。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氧骤。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吃引,靈堂內(nèi)的尸體忽然破棺而出筹陵,到底是詐尸還是另有隱情刽锤,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布朦佩,位于F島的核電站并思,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏语稠。R本人自食惡果不足惜宋彼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仙畦。 院中可真熱鬧输涕,春花似錦、人聲如沸议泵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽先口。三九已至型奥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碉京,已是汗流浹背厢汹。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谐宙,地道東北人烫葬。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像凡蜻,于是被迫代替她去往敵國(guó)和親搭综。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容