1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          【深入理解TcaplusDB技術】TcaplusDB數據庫介紹

          來源:互聯網轉載 時間:2024-01-29 08:21:46

          tcaplusdb與MongoDB概念對比

          SQL術語/概念MongoDB術語/概念TcaplusDB術語/概念解釋/說明
          databasedatabasecluster數據庫
          tablecollectiontablegroup/table數據庫表/集合
          rowdocumentrecord數據記錄行/文檔
          columnfieldfield數據字段/域
          indexindexindex索引
          primary keyprimary keyprimary key"主鍵,MongoDB自動將_id字段設置為主鍵"

          TcaplusDB表由主鍵字段和非主鍵字段兩部分組成,主鍵字段最多可以指定8個,普通字段(非普通字段)最多可以指定256個。

          按照表定義可分為Protobuf表和TDR表,按照表結構可以分為Generic表和List表。

          Protobuf表定義

          TDR表定義

          Generic表和List表

          分表因子

          Tcaplus的表定義要求設置一個分表因子(splittablekey)屬性,分表因子必須是主鍵字段(primarykey)的子集。本質上,splittablekey所包含的字段將參與hash計算,然后根據hash值決定該記錄被存儲至集群中的哪個節點。因此,一個表的多個記錄,它們splittablekey字段的值應該是多樣化的,這樣數據分布才比較均衡。舉例來說,假設一個表的primarykey是"uid,role_id,zone_id",其中uid和role_id的值足夠多樣,而zone_id只有幾個、最多幾百個不同的值,那么使用zone_id作為splittablekey將會有很大的風險,若某個特定zone_id對應的記錄特別多,會導致Tcaplus特定的存儲節點嚴重過載,甚至數據量超過機器存儲容量而無法提供服務。假設一個表的分表因子是性別,這會導致數據最多分布到2個存儲節點, 那么業務的分布式能力就會被限制到最多2個存儲節點的性能上。

          分表因子決定了數據的物理分布(系統根據該字段做hash分散到不同節點),建議取離散度高的字段,利于負載均衡。不指定時默認取primarykey的所有字段。

          記錄

          TcaplusDB記錄由一行字符串組成每個字段的數字都支持嵌套類型,嵌套最多32層。單個記錄大小最高10MB,可以將常用的對象文件序列化成二進制文件存儲。

          索引

          TcaplusDB支持兩種形式的索引:本地索引和全局索引。

          • 本地索引:基于TcaplusDB主鍵字段建立的索引,在建表時隨表一起建立。

          • 全局索引:基于TcaplusDB表一級字段(包括主鍵字段和非主鍵字段)建立的索引。

          通過本地索引和全局索引,用戶可方便利用索引進行數據查詢。優勢:

          • 基于本地索引查詢,可以滿足用戶通過部分主鍵字段進行索引查詢

          • 基于全局索引,可以滿足用戶通過任意一級字段進行多種形式查詢,如范圍、模糊、聚合、分頁等。

          本地索引

          基于TcaplusDB主鍵字段建立的索引,在建表時隨表一起建立。

          創建

          本地索引是在建立表的時候,在表定義中申明的,比如proto或者xml文件中。并且一旦表創建后,就不能再增加、修改和刪除本地索引了,刪除表的時候,本地索引會一并刪除。

          查詢

          本地索引只支持等值查詢,也就說,使用本地索引查詢時,需要將本地索引中定義的字段全部都給值,比如定義了本地索引,包含字段為key1, key2,那么使用該索引進行查詢時,就必須把key1和key2的值給出來才可以,并且是key1=XXX and key2=XXX的方式進行查詢;

          在tcaplus中,對應的是GetByPartKey請求,只有該請求是利用本地索引進行查詢的;

          由于本地索引查詢時,可能會返回非常多的數據,此時,tcaplus會進行分包返回的,如果業務側收包速度低于tcaplus返回響應包的速度,那么就可能導致tcaplus出現因為網絡緩存區滿而丟包的情況,一般建議是使用本地索引查詢時,利用limit和offset的方式來分多次請求數據,特別是當數據量很大時。

          特點

          • 本地索引是實時索引,當插入或者刪除數據時,會同時更新索引數據;

          • 本地索引的字段必須包含在主鍵字段中,并且字段中還必須包含分表因子,因此,查詢時最終只會落到一個數據分片上進行查詢;

          • 本地索引只支持等值查詢;

          • 一個表可以建立多個本地索引,查詢時必須包含某一個本地索引的全部字段;

          • 目前只有generic表支持本地索引;

          約束

          • 本地索引一旦創建,無法在使用期間修改、刪除、新增,隨表刪除而刪除。

          • 本地索引只支持精確匹配,即在用本地索引字段作為查詢條件時,只能精確匹配到具體值,不支持模糊、范圍匹配。

          • 本地索引必須包含分片因子。

          • 本地索引中的字段都必須屬于主鍵字段。

          • 對其它非主鍵字段建立本地索引也是不允許的。

          注意事項

          假設本地索引包含的字段為key1, key2,如果出現key1=XXX and key2=XXX的記錄數非常多時,當進行這個條件的本地索引查詢時,就很容易出現性能問題,需要盡量避免,當然,目前tcaplus是沒有限制記錄數個數的。

          全局索引

          全局索引是基于TcaplusDB表一級字段(包括主鍵字段和非主鍵字段)建立的索引,顧名思義,就是tcaplus與索引系統之間是相互獨立的,通過異步同步的方式,將tcaplus中的數據同步到索引系統,因此,全局索引是一個準實時索引系統,即進行索引查詢時,tcaplus表中新更新的數據無法實時查詢出來,正常情況下,新更新的數據到能夠通過索引查詢出來的時延為秒級,大部分情況是1秒之內;

          全局索引目前只支持對generic表建立索引,并且只支持表的一級字段(包括key字段和value字段)建立索引;并且也只支持簡單類型建立索引,支持的類型包括:int8, uint8, int16, uint16, int32, uint32, int64, uint64, float, double, string(字符串); 對于pb表的bool和enum類型也支持,當pb表字段定義為string類型,如果該字段存儲的是二進制,那么查詢結果可能會不符合預期;對于uint64類型,如果值大于int64的最大值,查詢結果將不符合預期,因此,如果該字段值會超過int64的最大值,建議不要為該字段建立索引;

          tcaplus支持動態創建和修改索引,業務可以隨時增加或刪除或者修改全局索引,修改全局索引時,比如增加了一個索引字段,不會影響業務對修改前的全局索引查詢;

          tcaplus與全局索引之間的架構如下圖所示:

          創建

          創建或者修改全局索引,需要在頁面上進行申請,進入oms頁面,點擊 “業務管理” ---- > "表管理" ---- > 選擇要創建全局索引的表,拉到最右側,如下圖:

          點擊 “索引”,進入到索引配置頁面,在該頁面勾上要建立索引的字段,然后點擊“確認創建索引”按鈕,這樣就生成了創建全局索引的申請單,dba審核之后,會生成一個創建全局索引的事務,當事務執行成功后,該索引就可以被訪問了。

          數據同步

          數據同步,是指tcaplus數據同步到索引系統,兩者之間的數據是最終一致的,數據同步架構如下圖所示:

          查詢

          tcaplus提供sql查詢語句進行索引查詢,其中,sql查詢條件中的字段必須是建立了全局索引的字段,另外,如果是聚合查詢,那么聚合查詢的字段也必須是建立了全局索引的字段;

          一個索引查詢請求,當前限制最多返回3000條記錄;

          索引使用方式

          • tcaplus_client客戶端工具

          tcaplus_client工具支持全局索引查詢,查詢命令直接使用sql查詢語句進行查詢即可,使用help select 命令可以獲取相關查詢命令。注意tcaplusdb_client使用版本,目前最新的支持3.46.0。

          • C++ SDK

          C++ SDK 已集成相關全局索引API,在示例代碼中也有相關實現,具體請參考:

          C++ TDR SDK 全局二索引示例路徑

          TcaplusServiceApiXXX/release/x86_64/examples/tcaplus/C++_tdr1.0_syncmode_generic_simpletable/SingleOperation/globle_index_query

          C++ PB SDK全局索引示例路徑

          TcaplusPbApiXXX/release/x86_64/examples/tcaplus/C++_pb2_coroutine_simpletable/SingleOperation/global_index_query

          支持的sql語句

          1. 條件查詢

          支持 =, >, >=, <, <=, !=, between, in, not in, like, not like, and, or , 比如:

          select * from table where a > 100 and b < 1000;

          select * from table where a between 1 and 100 and b < 1000;

          select * from table where str like "test";

          select * from table where a > 100 or b < 1000;

          注意:between查詢時,between a and b,對應的查詢范圍為[a, b],比如 between 1 and 100, 是會包含1和100這兩個值的,即查詢范圍為[1,100]

          注意:like查詢是支持模糊匹配,其中"%"通配符,匹配0個或者多個字符; “_”通配符,匹配1個字符;

          1. 分頁查詢

          支持limit offset分頁查詢,比如:

          select * from table whre a > 100 limit 100 offset 0;

          注意:當前limit必須與offset搭配使用,即不支持limit 1 或者 limit 0,1這種;

          1. 聚合查詢

          當前支持的聚合查詢包括:sum, count, max, min, avg,比如:

          select sum(a), count(*), max(a), min(a), avg(a) from table where a > 1000;

          注意:聚合查詢不支持limit offset,即limit offset 不生效;

          注意:目前只有count支持distinct,即 select count(distinct(a)) from table where a > 1000; 其他情況均不支持distinct

          1. 部分字段查詢

          支持查詢部分字段的值,比如:

          select a, b from table where a > 1000;

          對于pb表,還支持查詢嵌套字段的值,類似:

          select field1.field2.field3, a, b from table where a > 1000;

          不支持的sql查詢語句

          1. 不支持聚合查詢與非聚合查詢混用

          select *, a, b from table where a > 1000;

          select sum(a), a, b from table where a > 1000;

          select count(*), * from table where a > 1000;
          1. 不支持order by查詢

          select * from table where a > 1000 order by a;
          1. 不支持group by查詢

          select * from table where a > 1000 group by a;

          ?

          1. 不支持having查詢

          select sum(a) from table where  a > 1000 group by a having sum(a) > 10000;
          1. 不支持多表聯合查詢

          select * from table1 where table1.a > 1000 and table1.a = table2.b;
          1. 不支持嵌套select查詢

          select * from table where a > 1000 and b in (select b from table where b < 5000);
          1. 不支持別名

          select sum(a) as sum_a from table where a > 1000;
          1. 不支持的其他查詢

          • 不支持join查詢;

          • 不支持union查詢;

          • 不支持類似 select a+b from table where a > 1000 的查詢;

          • 不支持類似 select * from table where a+b > 1000 的查詢;

          • 不支持類似 select * from table where a >= b 的查詢;

          • 不支持其他未提到的查詢。

          ?


          TcaplusDB是騰訊出品的分布式NoSQL數據庫,存儲和調度的代碼完全自研。具備緩存+落地融合架構、PB級存儲、毫秒級時延、無損水平擴展和復雜數據結構等特性。同時具備豐富的生態、便捷的遷移、極低的運維成本和五個九高可用等特點??蛻舾采w游戲、互聯網、政務、金融、制造和物聯網等領域。

          標簽:tcaplusdb-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          戴爾筆記本鍵盤燈光怎么循環變色?1.將機械鍵盤插入電腦主機箱或筆記本的USB接口;2.找出機械鍵盤的這兩個鍵。這些是我們機械鍵盤控制燈的按鍵。有些機械鍵盤可能沒有這個花形鍵,所以選擇旁邊的目錄鍵;3.單獨按下這個花形鍵,機械鍵盤就亮了。如果你一直按下去,你會發現鍵盤燈的顏色也在切換。一般按三次燈為一個周期;4.按下的同時打開鍵盤呼吸燈;5.不斷按下它來切換呼吸燈的顏色。dell筆記本鍵盤燈怎么打開...

          命運絲線任務哪里接?,這個任務完全發生在奧林匹斯。如果你找到命運作家,你就能得到它。NPC位置的坐標是(20.4,50.2)。魔獸世界命運絲線?wow命運的絲線在哪里...達拉然商業區...達拉然商業區...問NPC要達拉然的布店~ ~ ~如果做劍柄任務,NPC在二樓陽臺。...魔獸世界9.0命運絲線怎么觸發?,首先我們開始游戲。2.然后我們進入登錄界面。3.然后我們 我們會找到塔爾的。4.和他談...

          怎么打開vsd格式文件?我們經常在中遇到很多文件。在我們的工作中,vsd格式需要專門的軟件來打開、瀏覽或編輯。下面介紹如何打開vsd文件。如何打開WORD中的VSD文件?1.在Internet上下載visio安裝包。這里以visio2010為例,打開安裝。2.打開后,選擇安裝程序,通常以。exe。雙擊進行安裝。這里已經安裝了,不再贅述。3.安裝完成后,選擇要打開的vsd文件,右鍵單擊“打開方法”,...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>