DorisDB 初調(diào)研之一

近來(lái)接觸到DorisDB鸵闪,做了些調(diào)研,記錄下來(lái)暑诸。過(guò)程描述不一定準(zhǔn)備蚌讼,如有描述偏差,請(qǐng)指正个榕。


1?介紹部分

1篡石、DorisDB是什么

DorisDB重新定義了MPP分布式架構(gòu),集群可擴(kuò)展至數(shù)百節(jié)點(diǎn)西采,支持PB級(jí)數(shù)據(jù)規(guī)模凰萨,是當(dāng)前唯一可以在大數(shù)據(jù)規(guī)模下進(jìn)行在線(xiàn)彈性擴(kuò)展的企業(yè)級(jí)分析型數(shù)據(jù)庫(kù)。DorisDB還打造了全新的向量化執(zhí)行引擎械馆,單節(jié)點(diǎn)每秒可處理多達(dá)100億行數(shù)據(jù)胖眷,查詢(xún)速度比其他產(chǎn)品快10—100倍!

(官網(wǎng):https://www.dorisdb.com/zh-CN/product)

(1)新一代極速M(fèi)PP數(shù)據(jù)庫(kù)

(2)高性能分布式關(guān)系型列式數(shù)據(jù)庫(kù)

(3)MPP分布式架構(gòu)

(4)高并發(fā)低延時(shí)查詢(xún)霹崎,支持PB級(jí)珊搀,可有效地支持在線(xiàn)實(shí)時(shí)數(shù)據(jù)分析

2、產(chǎn)品特性

(1)極速SQL查詢(xún) 全新的向量化執(zhí)行引擎尾菇,亞秒級(jí)查詢(xún)延時(shí)境析,單節(jié)點(diǎn)每秒可處理多達(dá)100億行數(shù)據(jù)。強(qiáng)大的MPP執(zhí)行框架派诬,支持星型模型和雪花模型劳淆,極致的Join性能。綜合查詢(xún)速度比其他產(chǎn)品快10-100倍

(2)實(shí)時(shí)數(shù)據(jù)分析 新型列式存儲(chǔ)引擎默赂,支持大規(guī)模數(shù)據(jù)實(shí)時(shí)寫(xiě)入沛鸵,秒級(jí)實(shí)時(shí)性保證。支持業(yè)務(wù)指標(biāo)實(shí)時(shí)聚合缆八,加速實(shí)時(shí)多維數(shù)據(jù)分析曲掰。新型讀寫(xiě)并發(fā)管理模式朝刊,可同時(shí)高效處理數(shù)據(jù)讀取和寫(xiě)入

(3)高并發(fā)查詢(xún) 靈活的資源分配策略,每秒可支持高達(dá)1萬(wàn)以上的并發(fā)查詢(xún)蜈缤。可高效支持?jǐn)?shù)千用戶(hù)同時(shí)進(jìn)行數(shù)據(jù)分析冯挎。

(4)輕松管理大數(shù)據(jù)

支持在大數(shù)據(jù)規(guī)模下進(jìn)行在線(xiàn)彈性擴(kuò)展底哥,擴(kuò)容不影響線(xiàn)上業(yè)務(wù)。集群可擴(kuò)展至數(shù)百節(jié)點(diǎn)房官,PB量級(jí)數(shù)據(jù)趾徽。集群運(yùn)行高度自治化,故障自恢復(fù)翰守,運(yùn)維成本低

(5)全面兼容MySQL協(xié)議

????????支持標(biāo)準(zhǔn)SQL

????????可使用MySQL客戶(hù)端和常用BI工具對(duì)接DorisDB來(lái)進(jìn)行數(shù)據(jù)分析孵奶,支持多種數(shù)據(jù)模型(明細(xì)表, 聚合表)蜡峰, 多種導(dǎo)入方式(批量了袁,流), 可整合和接入多種現(xiàn)有系統(tǒng)(Spark湿颅, Flink载绿, Hive, ElasticSearch) 提供Colocation Join, 分析函數(shù), 布隆過(guò)濾, 物化視圖, bitmap索引等特性, 增加分片數(shù)據(jù)自動(dòng)rebalance; 多表關(guān)聯(lián)性能較好;

6)管理部署簡(jiǎn)單 部署簡(jiǎn)單油航,不需要依賴(lài)任何其他系統(tǒng)(不依賴(lài)HDFS)

????????采用分布式架構(gòu)崭庸,對(duì)table進(jìn)行水平劃分并以多副本存儲(chǔ):存儲(chǔ)容量和計(jì)算能力可近似線(xiàn)性水平擴(kuò)展 在線(xiàn)彈性擴(kuò)展,集群規(guī)囊昵簦可以靈活伸縮怕享,支持?jǐn)?shù)百節(jié)點(diǎn)集群,數(shù)據(jù)規(guī)模到達(dá)10PB(那如果大于10PB的場(chǎng)景呢)

????????支持多副本镰踏,具有彈性容錯(cuò)能力

????????DorisDB表模式熱變更函筋,可通過(guò)一條簡(jiǎn)單SQL命令動(dòng)態(tài)地修改表的定義,處于模式變更中的表也可也正常導(dǎo)入和查詢(xún)數(shù)據(jù)奠伪∽つ牛——能熱變更是因?yàn)樗橇惺綌?shù)據(jù)庫(kù)?所以動(dòng)態(tài)改表也成為可能芳来?

????????DorisDB是一個(gè)自治的系統(tǒng)含末。節(jié)點(diǎn)的上下線(xiàn),集群擴(kuò)縮容都可通過(guò)一條簡(jiǎn)單的SQL命令來(lái)完成; 在此操作期間即舌, DorisDB后臺(tái)自動(dòng)完成數(shù)據(jù)rebalance; ?用戶(hù)的查詢(xún)和數(shù)據(jù)導(dǎo)入操作可同時(shí)正常運(yùn)行佣盒。

(7)高可用,高性能顽聂,分布式肥惭,關(guān)系型列式數(shù)據(jù)庫(kù) 元數(shù)據(jù)和數(shù)據(jù)管理采用熱備保證高可用盯仪,能夠自愈服務(wù)來(lái)保證數(shù)據(jù)安全可靠。

????????支持高并發(fā)低延時(shí)查詢(xún)蜜葱,支持PB級(jí)以上的超大數(shù)據(jù)集全景,可有效地支持在線(xiàn)實(shí)時(shí)數(shù)據(jù)分析

????????列式存儲(chǔ)引擎,通過(guò)編碼和壓縮技術(shù)牵囤,降低讀寫(xiě)

(8)向量化執(zhí)行引擎

????????消除程序循環(huán)的優(yōu)化

(9)使用方便

????????提供快捷查詢(xún)UI

????????支持流批導(dǎo)入——DorisDB支持實(shí)時(shí)和批量?jī)煞N數(shù)據(jù)導(dǎo)入方式爸黄, 支持的數(shù)據(jù)源有Kafka, HDFS揭鳞, 本地文件炕贵,支持的數(shù)據(jù)格式有ORC, Parquet和CSV等野崇, DorisDB可以實(shí)時(shí)消費(fèi)Kafka數(shù)據(jù)來(lái)完成數(shù)據(jù)導(dǎo)入称开,保證數(shù)據(jù)不丟不重(exactly once)。DorisDB也可以從本地或者遠(yuǎn)程(HDFS)批量導(dǎo)入數(shù)據(jù)乓梨。

(10)數(shù)據(jù)分區(qū) DorisDB支持兩級(jí)分區(qū)和動(dòng)態(tài)分區(qū)鳖轰。首先, 第一級(jí)分區(qū)對(duì)數(shù)據(jù)做Range劃分扶镀, ?用戶(hù)可以把分區(qū)作為管理目標(biāo)脆霎, 動(dòng)態(tài)增刪分區(qū)。 ?其次狈惫, 為了解決分區(qū)內(nèi)的數(shù)據(jù)傾斜問(wèn)題睛蛛, ?對(duì)分區(qū)做第二級(jí)分桶, 對(duì)分區(qū)內(nèi)的數(shù)據(jù)做Hash劃分胧谈。 這種分區(qū)分桶的設(shè)計(jì)方法忆肾, 可以靈活管理用戶(hù)數(shù)據(jù), ?比如可以設(shè)置分區(qū)的存儲(chǔ)介質(zhì)菱肖,副本數(shù)客冈,分區(qū)的生存周期和分桶數(shù)量等等。 用戶(hù)可以利用分區(qū)分桶的機(jī)制實(shí)現(xiàn)冷熱數(shù)據(jù)分離等功能稳强。

(11)Index加速查詢(xún)

????????DorisDB在存儲(chǔ)引擎中支持使用Bitmap场仲,Bloom Filter等索引方式。大部分場(chǎng)景中退疫,DorisDB會(huì)在內(nèi)部充分利用各種數(shù)據(jù)結(jié)構(gòu)優(yōu)化查詢(xún)渠缕,用戶(hù)無(wú)須主動(dòng)創(chuàng)建索引加速。用戶(hù)也可以根據(jù)具體的業(yè)務(wù)場(chǎng)景使用不同的索引技術(shù)來(lái)進(jìn)行優(yōu)化褒繁,例如在中高基數(shù)的字符串字段上創(chuàng)建Bitmap索引來(lái)提升equal/in 查詢(xún)的效率等亦鳞。

(12)近似去重、精確去重功能

????????DorisDB內(nèi)置HyperLogLog類(lèi)型以及Bitmap類(lèi)型。用戶(hù)可以通過(guò)這兩個(gè)類(lèi)型完成數(shù)據(jù)快速的近似去重燕差,或者精確去重遭笋。


3、架構(gòu)

3.1整體架構(gòu)

3.2 整體架構(gòu)- MPP架構(gòu)


3.2 整體架構(gòu)- MPP架構(gòu)-2



4徒探、適用場(chǎng)景分析

4.1 DorisDB場(chǎng)景適用特點(diǎn):

? ??支持靈活地分析

????????數(shù)據(jù)查詢(xún)的速度要快

????????數(shù)據(jù)報(bào)表的建設(shè)速度要快

????????基于預(yù)計(jì)算的數(shù)據(jù)分析模式已經(jīng)不能滿(mǎn)足多樣化的數(shù)據(jù)分析場(chǎng)景

? ? 支持實(shí)時(shí)地分析

????支持多業(yè)務(wù)人員同時(shí)分析

????支持統(tǒng)一的數(shù)據(jù)分析體系

(即:用一套統(tǒng)一的體系來(lái)滿(mǎn)足企業(yè)多種數(shù)據(jù)分析場(chǎng)景的需求瓦呼,讓更多的企業(yè)成員能夠同時(shí)更快、更靈活测暗、更實(shí)時(shí)地分析數(shù)據(jù)央串。)

4.2 參考的適用場(chǎng)景

? ??1、對(duì)數(shù)據(jù)分析偷溺、統(tǒng)計(jì)

????????數(shù)據(jù)分析大體上可以分為兩大類(lèi)場(chǎng)景:一種偏向于報(bào)表類(lèi)的,另一種偏向于多維分析的钱贯。

????2挫掏、報(bào)表

????????報(bào)表類(lèi)數(shù)據(jù)分析,數(shù)據(jù)分析以及查詢(xún)的模式相對(duì)比較固定秩命,而且后臺(tái)SQL的模式往往都是確定的尉共。針對(duì)此類(lèi)應(yīng)用場(chǎng)景,選擇使用 MySQL 存結(jié)果數(shù)據(jù)弃锐,用戶(hù)可從界面選擇執(zhí)行批處理以及發(fā)送郵件袄友。在 Doris 平臺(tái)中,報(bào)表類(lèi)查詢(xún)時(shí)延一般在秒級(jí)以下霹菊。

????3剧蚣、多維分析

????????這里提到的多維分析,同樣要求數(shù)據(jù)是結(jié)構(gòu)化的旋廷,適用于查詢(xún)相對(duì)靈活的場(chǎng)景鸠按,例如數(shù)據(jù)分析條件以及聚合維度等方面不是很確定,一般將此類(lèi)數(shù)據(jù)分析定義為多維分析饶碘。相對(duì)于報(bào)表類(lèi)分析目尖,多維分析的查詢(xún)時(shí)延會(huì)稍慢,大約在會(huì)在10s的級(jí)別扎运。

4.3?不適用的場(chǎng)景

????????Doris主要解決 PB 級(jí)別的數(shù)據(jù)量(如果高于 PB 級(jí)別瑟曲,不推薦使用 Doris 解決,可以考慮用 Hive 等工具)豪治,解決結(jié)構(gòu)化數(shù)據(jù)洞拨,查詢(xún)時(shí)間一般在秒級(jí)或毫秒級(jí)。

????????目前的話(huà)负拟,Doris不適合做大規(guī)模的批處理扣甲,當(dāng)前版本由于是全內(nèi)存計(jì)算,所以面對(duì)大規(guī)模數(shù)據(jù)的復(fù)雜ETL容易內(nèi)存不足






2 部分總結(jié)

1.DorisDB為什么快

????1、系統(tǒng)架構(gòu)

????????a)MPP架構(gòu)

????????b)分布式調(diào)度 + 查詢(xún)規(guī)劃

????????c)充分利用多機(jī)多核

????2琉挖、表設(shè)計(jì)

????????a)分區(qū)启泣,分桶設(shè)計(jì)

????????b)排序鍵設(shè)計(jì)

????????c)精確的類(lèi)型選擇

????3、存儲(chǔ)引擎

????????a)列式存儲(chǔ)

????????b)前綴索引+zoneMap(示辈?)

????????c)延遲物化

????????d)Bitmap索引寥茫,BloomFilter索引

????????e)pushdown + 向量化過(guò)濾

????????f)字符串低基數(shù)優(yōu)化

????4、計(jì)算引擎

????????a)向量化引擎

????????????i.向量化函數(shù)

????????????ii.向量化節(jié)點(diǎn)

????????????iii.向量化導(dǎo)入

????????b)SIMD指令

????????c)內(nèi)存模型

????????d)兩層聚合優(yōu)化

????????e)join & join Filter


2.?DorisDB除了很快矾麻,還有什么優(yōu)勢(shì)纱耻?

1.使?簡(jiǎn)單

????a)Mysql協(xié)議兼容

????????i.標(biāo)準(zhǔn)SQL,兼容各類(lèi)主流BI险耀,遷移成本極低

????????ii.函數(shù)?持豐富弄喘,包括各類(lèi)時(shí)間、字符串甩牺、GIS蘑志、聚合函數(shù)以及窗?函數(shù)

????b)靈活的數(shù)據(jù)模型

????????i.?效?持星型/雪花模型,避免打平成?寬表贬派,更加靈活的適應(yīng)實(shí)時(shí)更新和維度變化

????????ii.Duplicate/Unique/Aggregate三種模式適配各類(lèi)場(chǎng)景

????c)開(kāi)箱即?的?戶(hù)體驗(yàn)

????????i.?適應(yīng)應(yīng)對(duì)各種case急但,?須額外的復(fù)雜優(yōu)化?段

????????ii.各種Load?段可以降低ETL?作量,通過(guò)配置快速導(dǎo)?數(shù)據(jù)

2.運(yùn)維?便

????a)高可用

????????i.FE采取類(lèi)Paxos?致性算法搞乏,?單點(diǎn)瓶頸

????????ii.BE多副本可以獨(dú)?調(diào)節(jié)波桩,數(shù)據(jù)按?身特性靈活拆分

????b)高度自治

????????i.?外部依賴(lài),避免繁雜的中間件維護(hù)

????????ii.副本?修復(fù)请敦,數(shù)據(jù)?均衡镐躲,?鍵擴(kuò)容,縮容

????c)可視化管理工具

????????i.全局配置侍筛,?鍵部署匀油,滾動(dòng)升級(jí)

????????ii.完備的監(jiān)控告警集成保障系統(tǒng)穩(wěn)定可觀(guān)測(cè)

????????iii.靈活的擴(kuò)容縮容?便集群容量規(guī)劃

3.生態(tài)完善


4.穩(wěn)定可靠

????a)高可架構(gòu)

????????i.沒(méi)有單點(diǎn),F(xiàn)E高可用勾笆,BE多副本(待研究敌蚜,F(xiàn)E,BE要怎樣集群部署)

5.統(tǒng)一分析平臺(tái)







名詞解釋?zhuān)?/p>

1、bitmap索引

????如果用戶(hù)查詢(xún)的列的基數(shù)非常的小窝爪, 即只有的幾個(gè)固定值弛车,如性別、婚姻狀況蒲每、行政區(qū)等等纷跛。

????要為這些基數(shù)值比較小的列建索引,就需要建立位圖索引邀杏∑兜欤基數(shù)值大的就不適合bitmap索引了

2唬血、Bloomfilter


3、近似去重唤崭,精確去重

????近似去重拷恨,去重有1%的偏差,精確去重谢肾,就是連1%的偏差都不允許

4腕侄、MPP

????MPP (Massively Parallel Processing),即大規(guī)模并行處理芦疏。簡(jiǎn)單來(lái)說(shuō)冕杠,MPP是將任務(wù)并行的分散到多個(gè)服務(wù)器和節(jié)點(diǎn)上,在每個(gè)節(jié)點(diǎn)上計(jì)算完成后酸茴,將各自部分的結(jié)果匯總在一起得到最終的結(jié)果(與Hadoop相似分预,分治思想)。

????MPP架構(gòu)特征:

????????任務(wù)并行執(zhí)行

????????數(shù)據(jù)分布式存儲(chǔ)(本地化)

????????分布式計(jì)算

????????私有資源

????????橫向擴(kuò)展

????????Shared Nothing架構(gòu)

5薪捍、元數(shù)據(jù)

????元數(shù)據(jù)是用來(lái)描述數(shù)據(jù)的數(shù)據(jù)笼痹,比如 "年齡"、"身高"(這些數(shù)據(jù)是描述一個(gè)人的數(shù)據(jù)飘诗,這些數(shù)據(jù)就是元數(shù)據(jù)与倡,最小粒度的數(shù)據(jù))

6界逛、SSB: Star schema benchmark學(xué)術(shù)界和工業(yè)界廣泛使用的一個(gè)星型模型測(cè)試集

????SSB基準(zhǔn)測(cè)試包括:

????????1個(gè)事實(shí)表:lineorder

????????4個(gè)維度表:customer昆稿,part,dwdate息拜,supplier

????????13條標(biāo)準(zhǔn)SQL查詢(xún)測(cè)試語(yǔ)句:統(tǒng)計(jì)查詢(xún)溉潭、多表關(guān)聯(lián)、sum少欺、復(fù)雜條件喳瓣、group by、order by等組合方式赞别。

7畏陕、星型模型和雪花模型

? ? 參考:https://blog.csdn.net/nisjlvhudy/article/details/7889422

????兩者的區(qū)別主要是對(duì)于數(shù)據(jù)的冗余程度不一樣,和它的表設(shè)計(jì)方案不一樣仿滔。數(shù)據(jù)表分為“事實(shí)表”和“維度表”兩種惠毁。

????星型模型:如果維度表和事實(shí)表的關(guān)聯(lián)都僅限一層,那么它就是星型模型崎页,但可能存在較多的數(shù)據(jù)冗余鞠绰,星型架構(gòu)是一種非正規(guī)化的結(jié)構(gòu),多維數(shù)據(jù)集的每一個(gè)維度都直接與事實(shí)表相連接飒焦,不存在漸變維度蜈膨,所以數(shù)據(jù)有一定的冗余

????雪花模型:一個(gè)或多個(gè)維度表不與事實(shí)表直接關(guān)聯(lián),而是通過(guò)其它維度表間接關(guān)聯(lián),這種模型就是雪花模型翁巍。減少數(shù)據(jù)冗余驴一。但此方式在統(tǒng)計(jì)查詢(xún)過(guò)程中,關(guān)聯(lián)的表變多曙咽,性能上會(huì)比星型模型差蛔趴。該模型在數(shù)據(jù)規(guī)范更合理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末例朱,一起剝皮案震驚了整個(gè)濱河市孝情,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洒嗤,老刑警劉巖箫荡,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渔隶,居然都是意外死亡羔挡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)间唉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绞灼,“玉大人,你說(shuō)我怎么就攤上這事呈野〉桶” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵被冒,是天一觀(guān)的道長(zhǎng)军掂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)昨悼,這世上最難降的妖魔是什么蝗锥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮率触,結(jié)果婚禮上终议,老公的妹妹穿的比我還像新娘。我一直安慰自己葱蝗,他們只是感情好穴张,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著垒玲,像睡著了一般陆馁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上合愈,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天叮贩,我揣著相機(jī)與錄音击狮,去河邊找鬼。 笑死益老,一個(gè)胖子當(dāng)著我的面吹牛彪蓬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捺萌,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼档冬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了桃纯?” 一聲冷哼從身側(cè)響起酷誓,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎态坦,沒(méi)想到半個(gè)月后盐数,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伞梯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年玫氢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谜诫。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡漾峡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喻旷,到底是詐尸還是另有隱情生逸,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布掰邢,位于F島的核電站牺陶,受9級(jí)特大地震影響伟阔,放射性物質(zhì)發(fā)生泄漏辣之。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一皱炉、第九天 我趴在偏房一處隱蔽的房頂上張望怀估。 院中可真熱鬧,春花似錦合搅、人聲如沸多搀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)康铭。三九已至,卻和暖如春赌髓,著一層夾襖步出監(jiān)牢的瞬間从藤,已是汗流浹背催跪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夷野,地道東北人懊蒸。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悯搔,于是被迫代替她去往敵國(guó)和親骑丸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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