色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TableStore實現億級訂單數據庫管理

電子設計 ? 2018-10-26 10:12 ? 次閱讀

訂單系統存在于各行各業,如電商訂單、銀行流水、運營商話費賬單等,是一個非常廣泛、通用的系統。對于這類系統,在過去十幾年發展中已經形成了經典的做法。但是隨著互聯網的發展,以及各企業對數據的重視,需要存儲和持久化的訂單量越來越大。數據的重視程度與數據規模的膨脹帶來了新的挑戰。

需求場景

某電商平臺A,需要進行持久化所有平臺產生的訂單數據。同時,基于所有的訂單數據,系統又需要向外提供面向多種角色:消費者、店家、平臺三類人群的多元化的查詢服務。消費者可以查詢自己的歷史訂單,商家可以統計熱銷產品,平臺也可以分析用戶行為、平臺交易規模等。主要查詢方式涵蓋訂單的多維度檢索,以及訂單數據的分析、統計等,例如:

面向消費者:【A消費者】*【近1年】*【賣出電腦】訂單查詢;

面向售貨員:【B售貨員】*【近1個月】銷售訂單;

。。.。。.

技術點

在訂單場景中,技術上通常需要考慮的技術點,主要包含如下幾個方面:

查詢能力:需要具備豐富的查詢類型,如多維度、范圍、模糊查詢等,同時具備排序、統計等功能;

數據量:存儲海量數據的同時,滿足強一致、高可用、低成本等要求;

服務性能:應對高并發請求高并發的同時,保證低延遲;

實現多維、實時查詢功能,是訂單管理解決方案的核心功能,官網控制臺地址:項目樣例

二、方案演進

應對訂單場景,電商通常會采用MySQL傳統方案。借助關系型數據庫強大的查詢能力,用戶可直接通過SQL語句實現訂單數據的多維度查詢、數據統計等。所謂數據膨脹,分為橫向、縱向兩種,橫向即不斷迭代引入的新字段維度,縱向即總的存儲數據量。在面對這兩種訂單數據膨脹上,單MySql方案逐漸變得吃力。 SQL + NoSQL的組合方案(以下稱:組合方案)便應運而生,借助兩個數據庫各自的優勢分別解決不同場景各自的需求。但組合方案同樣也帶來了新的問題,組合方案犧牲空間成本,同時也增加了開發工作量與運維復雜度。在保證數據一致性上產生額外開銷。

下面讓我們看一下如下幾個常規方案:

常規方案

1、MySql分庫分表方案

MySql自身擁有強大的數據查詢、分析功能,基于MyQql創建訂單系統,可以應對訂單數據多維查詢、統計場景。伴隨著訂單數據量的增加,用戶會采取分庫、分表方案應對,通過這種偽分布式方案,解決數據膨脹帶來的問題。但數據一旦達到瓶頸,便需要重新創建更大規模的分庫+數據的全量遷移,麻煩就會不斷出現。數據迭代、膨脹帶來的困擾,是MySql方案難于逾越的。僅僅依靠MySql的傳統訂單方案短板凸顯。

1、數據縱向(數據規模)膨脹:采用分庫分表方案,MySql在部署時需要預估分庫規模,數據量一旦達到上限后,重新部署并做數據全量遷移;

2、數據橫向(字段維度)膨脹:schema需預定義,迭代新增新字段變更復雜。而維度到達一定量后影響數據庫性能;

2、MySql+HBase方案

引入雙數據的方案應運而生,通過實時數據、歷史數據分存的方案,可以一定程度解決數據量膨脹問題。該方案將數據歸類成兩部分存儲:實時數據、歷史數據。同時通過數據同步服務,將過期數據同步至歷史數據。

1、實時訂單數據(例如:近3個月的訂單):將實時訂單存入MySql數據庫。實時訂單的總量膨脹的速度得到了限制,同時保證了實時數據的多維查詢、分析能力;

2、歷史訂單數據(例如:3個月以前的訂單):將歷史訂單數據存入HBase,借助于HBase這一分布式NoSql數據庫,有效應對了訂單數據膨脹困擾。也保證了歷史訂單數據的持久化;

但是,該方案犧牲了歷史訂單數據對用戶、商家、平臺的使用價值,假設了歷史數據的需求頻率極低。但是一旦有需求,便需要全表掃描,查詢速度慢、IO成本很高。而維護數據同步又帶來了數據一致性、同步運維成本飆升等難題;

3、MySql+Elasticsearch方案

組合方案還有MySql+Elasticsearch,該方案同樣是將數據分兩部分存儲,可以一定程度解決訂單索引維度增長問題。用戶自己維護數據同步服務,保證兩部分數據的一致性;

1、全量數據:將全量的訂單數據存入MySql數據庫,訂單ID之外的數據整體存為一個字段。該全量數據作為持久化存儲,也用于非索引字段的反查;

2、查詢數據:僅將需要檢索的字段存入Elasticsearch(基于Lucene分布式索引數據庫),借助于Elasticsearch的索引能力,提供可以應付維度膨脹的訂單數據,然后必要時反查MySql獲取訂單完整信息

該方案應付了數據維度膨脹帶來的困擾,但是隨著訂單量的不斷膨脹,MySql擴展性差的問題再次暴露出來。同時數據同步至Elasticsearch的方案,開發、運維成本很高,方案選擇也存在弊端。

表格存儲(TableStore)方案

如果使用表格存儲(TableStore)研發的多元索引(SearchIndex)方案,則可以完美地解決億量級訂單系統問題。TableStore具有即開即用,按量收費等特點。多元索引隨時創建,是海量電商訂單元數據管理的優質方案。

TableStore作為阿里云提供的一款全托管、分布式NoSql型數據存儲服務,具有【海量數據存儲】、【熱點數據自動分片】、【海量數據多維檢索】等功能,天然地解決了訂單數據大爆炸這一挑戰;

同時,SearchIndex功能在保證用戶數據高可用的基礎上,提供了數據多維度搜索、統計等能力。針對多種場景創建多種索引,實現多種模式的檢索。用戶可以僅在需要的時候創建、開通索引。由TableStore來保證數據同步的一致性,這極大的降低了用戶的方案設計、服務運維、代碼開發等工作量。

基于表格存儲搭建的訂單系統頁面一覽

樣例內嵌在表格存儲控制臺中,用戶可登錄控制臺體驗系統(若為表格存儲的新用戶,需要點擊開通服務后體驗,開通免費,訂單數據存儲在公共實例中,體驗不消耗用戶存儲、流量、Cu)。

注:該樣例提供了【億量級】訂單數據。官網控制臺地址:項目樣例

二、搭建準備

若您對于億量級訂單系統的體驗不錯,希望開始自己系統的搭建之旅,只需按照如下步驟便可以著手搭建了:

1、開通表格存儲

通過控制臺開通表格存儲服務,表格存儲即開即用(后付費),采用按量付費方式,已為用戶提供足夠功能測試的免費額度。表格存儲官網控制臺、免費額度說明。

2、創建實例

通過控制臺創建表格存儲實例,選擇支持多元索引的Region。(當前階段SearchIndex功能尚未商業化,暫時開放北京、上海、深圳、杭州四地,后續逐漸開放)

創建實例后,提交工單申請多元索引功能邀測(商業化后默認打開,不使用不收費)。

邀測地址:提工單,選擇【表格存儲】》【產品功能、特性咨詢】》【創建工單】,申請內容如下:

問題描述:請填寫【申請SearchIndex邀測】

機密信息:請填寫【地域+實例名】,例:上海+myInstanceName

3、SDK下載

使用具有多元索引(SearchIndex)的SDK,官網地址,暫時java、go、node.js三種SDK增加了新功能

java-SDK

go-SDK

$ go get github.com/aliyun/aliyun-tablestore-go-sdk

4、表設計

訂單系統不僅僅是訂單一張數據表,它應包含:消費者表、售貨員表、產品表、供貨商表、交易訂單表、支付訂單表等。在本樣例中,豬腰使用最基本的四張表(消費者表、售貨員表、產品表、交易訂單表),僅以訂單表舉例如下:

表名:order_contract

三、開始搭建(核心代碼)

1、創建數據表

四張表:訂單表、消費者表、售貨員表、產品表

用戶僅需維護一個實例,按如下方式創建:通過控制臺創建、管理數據表(用戶也可以通過SDK直接創建):

2、創建數據表索引

TableStore自動做全量、增量的索引數據同步:用戶可以通過控制臺創建、管理SearchIndex(用戶也可通過SDK創建):

3、數據導入

插入部分測試數據(控制臺樣例中插入了1億條數據,用戶自己可以通過控制臺插入少量測試數據);

4、數據讀取

數據讀取分為兩類:

主鍵讀取

基于原生表格存儲的主鍵列獲取:getRow, getRange, batchGetRow等。主鍵讀取用于索引(自動)反查,用戶也可以提供主鍵(訂單md5)的單條查詢的頁面,億量級下查詢速度極快。單主鍵查詢方式不支持多維度檢索;

索引讀取

基于新SearchIndex功能Query:search接口。用戶可以自由設計索引字段的多維度條件組合查詢。通過設置選擇不同的查詢參數,構建不同的查詢條件、不同排序方式;目前支持:精確查詢、范圍查詢、前綴查詢、匹配查詢、通配符查詢、短語匹配查詢、分詞字符串查詢,并通過布爾與、或組合。

如【c0001號消費者,且消費在99.99以上的訂單】組合方式如下:

作者:云棲社區 wangtantan

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7118

    瀏覽量

    89342
  • MySQL
    +關注

    關注

    1

    文章

    825

    瀏覽量

    26659
收藏 人收藏

    評論

    相關推薦

    常見的數據庫管理

    大型數據庫(大型機)Oracle(),中型數據庫(分布式超大型)mysql(百萬),輕型數據庫
    的頭像 發表于 10-10 16:19 ?2112次閱讀

    數據庫管理系統層次安全技術

    數據庫管理系統層次安全技術 數據庫系統的安全性很大程度上依賴于數據庫管理系統。如果數據庫
    發表于 06-17 07:45 ?726次閱讀

    Informix數據庫管理

    Informix數據庫管理: 一、Informix數據庫的安裝
    發表于 08-01 15:29 ?1312次閱讀

    數據庫管理系統(DBMS)是什么意思

    數據庫管理系統(DBMS)是什么意思 數據庫管理系統提供了定義數
    發表于 03-18 15:21 ?1.1w次閱讀

    iPhone訂單數量被砍證據確鑿 高通、博通都有所暗示

    之前有傳聞蘋果大幅削減iPhone訂單數量應該是蘋果應對智能手機市場未來增長減緩的一種策略。而且蘋果今后調制解調器很可能會和intel合作,所以高通的數量大量被消減也是正常的。但是還是存在不認
    發表于 02-01 14:19 ?570次閱讀

    目前流行的數據庫_構建數據庫系統的流程

    本文主要介紹了目前流行的數據庫以及構建數據庫系統的流程。可以把數據庫定義為數據的集合,或者說數據庫就是為了
    發表于 02-04 11:22 ?7168次閱讀

    數據庫教程之數據庫的創建與管理詳細資料免費下載

    本文檔的主要內容詳細介紹的是數據庫教程之數據庫的創建與管理詳細資料免費下載。內容包括了:SQL Server數據庫概述, 創建數據庫,修改
    發表于 10-19 10:41 ?18次下載
    <b class='flag-5'>數據庫</b>教程之<b class='flag-5'>數據庫</b>的創建與<b class='flag-5'>管理</b>詳細資料免費下載

    iPhone XR銷售不如預期 蘋果開始削減訂單數

    11月12日,援引兩位知情人士的話稱,價格稍低的iPhone XR銷售不如預期,蘋果已經向兩家中國組件商發出通知,削減訂單數量。
    發表于 11-21 15:30 ?656次閱讀

    數據庫管理系統的功能

    本視頻主要詳細介紹了數據庫管理系統的功能,分別是數據定義、數據操作、數據庫的運行管理
    的頭像 發表于 02-22 15:52 ?5948次閱讀

    數據庫系統的三模式

    數據庫領域公認的標準結構是三模式結構,它包括外模式、模式和內模式,有效地組織、管理數據,提高了數據庫的邏輯獨立性和物理獨立性。用戶
    的頭像 發表于 02-22 16:32 ?5445次閱讀

    華為5G訂單數量被愛立信反超

    2020年對于華為而言,可謂是諸事不順的一年,美國不斷加大制裁力度,致使華為手機業務、通信業務都受到了一定程度的影響。華為手機市場份額正在快速萎縮,5G訂單更是長時間陷入停滯更新的狀態,這也導致華為5G訂單數量被其他廠商輕松反超。
    發表于 12-31 10:16 ?723次閱讀

    華為將縮減今年智能手機訂單數

    多家供應商透露,華為已通知將縮減今年智能型手機訂單數量,預計訂單降幅達到60%。
    的頭像 發表于 02-22 11:05 ?1709次閱讀

    10種減少數據庫誤操作的方法

    無論是開發、測試,還是DBA,都難免會涉及到數據庫的操作,比如:創建某張表,添加某個字段、添加數據、更新數據、刪除數據、查詢數據等等。 正常
    的頭像 發表于 10-13 17:12 ?2773次閱讀

    特斯拉開啟“全球降價”后特斯拉訂單數環比漲500%

    特斯拉開啟“全球降價”后特斯拉訂單數環比漲500% 現在特斯拉把價格戰推向全球;特斯拉開啟“全球降價”后特斯拉訂單數環比漲500%。看來大家還是很誠實,特斯拉開啟“全球降價”就很多人誠實的下單了
    的頭像 發表于 01-17 16:54 ?9953次閱讀
    特斯拉開啟“全球降價”后特斯拉<b class='flag-5'>訂單數</b>環比漲500%

    MySQL數據庫管理與應用

    MySQL數據庫管理與應用 MySQL是一種廣泛使用的關系型數據庫管理系統,被認為是最流行和最常見的開源數據庫之一。它可以被用于多種不同的應
    的頭像 發表于 08-28 17:15 ?1004次閱讀
    主站蜘蛛池模板: 羞羞影院午夜男女爽爽免费| 亚洲日韩国产精品乱-久| 亚洲免费三级电影| 国产视频www| 色戒无删减流畅完整版| 菠萝菠萝蜜高清观看在线| 免费xxx成年大片| 9277在线观看资源| 嫩小幼处在线| 超碰在线观看| 午夜国产理论| 精品国产人成亚洲区| 伊人久久中文| 免费国产黄线在线播放| 99视频在线观看免费| 琪琪热热色原日韩在线| 疯狂第一次国语| 亚洲 自拍 欧洲 视频二区| 好满射太多了装不下了视频| 亚洲日韩在线观看| 美美哒免费影视8| 扒开小处30p| 性吧 校园春色| 久久久大香菇| 99热久久爱五月天婷婷| 日本美女bb| 国产中的精品AV一区二区| 一本道综合久久免费| 棉签和冰块怎么弄出牛奶视频| china男士同性视频tv| 手机毛片在线| 九九在线精品视频| jealousvue成熟40岁| 无码丰满人妻熟妇区| 九九久久精品| wwwxxc| 无码中文字幕av免费放| 久久观看视频| 超熟女专门志| 夜夜草导航| 日本国产黄色片|