StoneDB社區答疑第二期

来源:https://www.cnblogs.com/yangwilly/archive/2022/08/23/16614957.html
-Advertisement-
Play Games

我們又把近期的一些社區熱點問題做了一次彙總,同步給所有關註StoneDB的同學們~ 提問Qustions & 解答Answers Q:現在StoneDB單機什麼硬體規格部署能分析100TB級別的數據? A:像這麼大的存儲量,系統一般是分析類的,存儲可以是單塊盤容量是7.6TB的SSD,CPU核數和主 ...


我們又把近期的一些社區熱點問題做了一次彙總,同步給所有關註StoneDB的同學們~

提問Qustions & 解答Answers

Q:現在StoneDB單機什麼硬體規格部署能分析100TB級別的數據?

A:像這麼大的存儲量,系統一般是分析類的,存儲可以是單塊盤容量是7.6TB的SSD,CPU核數和主頻越高越好。

Q:StoneDB什麼時候支持delete功能?

A:StoneDB預計在10月20號會發佈StoneDB_5.7_V1.0.1版本,屆時會支持delete功能,目前只是暫時不支持,主要是為了優化性能,給用戶更好的使用體驗。

Q:當前StoneDB支持哪些客戶端管理軟體嗎?類似MySQL下的Navicat客戶端。

A:StoneDB支持Navicat、DBeaver、SQLyog等客戶端,同時對應標準的JDBC,ODBC等方式也是支持的。

Q:1、創建表時,可以選擇engine = innodb 或 tianmu 嗎?engine = innodb 的表會更新到 tianmu 去嗎?2、如果沒指定引擎,表預設引擎是什麼?

A:1、StoneDB 支持在創建表時顯式指定表的存儲引擎類型。另外,StoneDB支持將engine=innodb的表自動更新到 engine=tianmu 的表中,在主從架構下,將主節點預設的存儲引擎設置為innodb,從節點預設的存儲引擎設置為tianmu,則數據在主從同步過程中自動完成行列轉換。

2、如果創建表沒有指定存儲引擎,表的存儲引擎取決於參數default_storage_engine的值。建議TP端的參數設置為default_storage_engine=innodb,AP端的參數設置為default_storage_engine=tianmu。

Q:一份數據在主節點可以同時 行存&列存,以兩種形態存放嗎?如果數據同時以兩種形態存放, 則任何數據修改需要維護兩個 copy , 如果只以一種形態存放, 那如何兼顧TP/AP 兩種業務操作?

A:現階段StoneDB HTAP是通過MySQL主從架構來實現的(這隻是1.0的架構,未來在2.0的架構中會有完全不同的實現),採用binlog同步數據:主節點使用InnoDB引擎,可讀寫,提供OLTP場景的讀寫業務;從節點使用StoneDB引擎,只讀,OLAP查詢節點,實現了OLAP 的多種重要特性,滿足數據實時查詢及高併發複雜查詢場景。

Q:對於主節點是innodb,slave是stoneDB應對TP和AP的場景,,對目前你們不支持的DDL和DML,比如修改欄位長度、創建、刪除索引、delete等這些你們是如何處理的,到slave會忽略?

A:遇到不支持的DDL和DML可以通過以下辦法解決。如果主從之間沒有開啟GTID模式,主庫在變更前可以關閉當前線程的binlog(set sql_log_bin=off),這樣就不會同步到從庫;如果主從之間開啟GTID模式,主庫在變更前可以設置GTID的值,從庫可以執行這個GTID值的空事務。

Q:因為MySQl適合OLTP場景下的事務處理,那每次進行新增、修改、刪除,這部分數據是如何同步到StoneDB里的呢?因為StoneDB的限制,有些DDL不支持,比如修改欄位長度、類型、重命名欄位等,如果這部分在我們實際開發和應用中對MySQL進行了操作會影響MySQL和StoneDB之間的數據保持一致性嗎?

A:如果StoneDB為從庫,那麼主庫做的DML會通過binlog同步到從庫,delete目前不支持,TP端可以用邏輯刪除標記為這一行為刪除狀態。例如新增一個欄位,這個欄位用於標識這一行是否是刪除狀態,1表示刪除,0表示未刪除,這種方法在TP端使用update代替了delete。原生delete支持將在10月20號的StoneDB_5.7_v1.0.1版本中支持,詳細的可以看看我們的Roadmap。

Q:你們文檔中列舉的使用限制是針對存儲引擎是Tianmu的吧?

A:是的,文檔中列舉的使用限制是針對存儲引擎為Tianmu的情形,如果存儲引擎為 InnoDB ,與使用 MySQL 無任何差異。

Q:我們現在的業務數據表都是基於行式存儲引擎InnoDB創建的,如果要用StoneDB,這部分業務數據需要遷移?同步?需要用什麼工具嗎?

A:
InnoDB遷移到StoneDB,常用的mysqldump,mysqldumper、gravity都可以支持。停機遷移可以考慮使用mysqldump 或者mydumper,可以參考

mysqldump:
https://stonedb.io/zh/docs/O&M-Guide/backup-and-recovery/use-mysqldump-backup-and-restore/

mydumper:
https://stonedb.io/zh/docs/O&M-Guide/backup-and-recovery/use-mydumper-full-backup

熱遷移StoneDB基本支持當前市面上MySQL熱遷移工具,例如Mydumper+otter(mysqldump也可以,mydumper支持多線程全量備份,大數據量建議使用mydumper多線程備份),gravity等。

Mydumper+otter可以參考這個方案操作,從mydumper備份文件 metadata 中找到binlog位點填入otter位點配置,就可以做到全量數據同步後進行增量數據同步,

mydumper 可以參考上面提供的鏈接,otter可以參考otter 項目文檔:https://github.com/alibaba/otter

gravity可以參考我們的官方文檔:https://stonedb.io/zh/docs/data-migration-to-stonedb/use-gravity-to-migrate

Q:集群方案是基於什麼演算法?需要引入zk這樣的額外組件嗎?

A:目前集群採用的是HA架構,搭建和MySQL高可用架構一樣,再引入keepalive或者ProxySQL之類的流量分攤組件即可,不需要使用zk組件。

Q:我們現在業務系統通過JAVA生態體系技術開發,如果用InnoDB的話,我們現有持久層對MySQL的操作需要進行哪些改造?

A:無需改造。

Q:關於檢索的需求,目前的數據量使用MySQL不能很好的支持全文檢索,我們瞭解到其他友商的解決方案也是要配合ES。StoneDB的介紹上有寫可以取代ES集群支持檢索業務,這塊StoneDB的能力大概是怎樣的?

A:目前StoneDB在行存引擎支持了全文檢索,列存引擎尚未支持。如果有任何一位用戶提供給我們對全文檢索的具體需求和使用場景做詳細描述,我們會派相關技術人員展開深入交流,共同探討解決方案。

Q:1、將來有沒有可能支持CEP?2、支持prewhere這樣的功能麽?3、支持物化視圖麽?4、是個單機資料庫麽?

A:1、會支持CEP的。

2、不支持prewhere。

3、不支持物化視圖,MySQL也不支持物化視圖,理論上可以結合觸發器達到物化視圖的功能。

4、目前是單機,將來會實現集群。

Q:StoneDB知識節點(KN)里存儲的是什麼數據?知識節點和元數據節點有啥不同呢?

基本的元數據(如列定義,約束條件等),數據特征及更深度的數據統計信息(如記錄值範圍段的標識BitMap, 統計當前Column中各記錄的值分佈信息等)。

A:數據元信息節點和數據節點是一一對應的,記錄對應數據塊中聚合函數值(min,max, sum,avg ...),record count,null 記錄標記等信息。

Q:1、假設我在TP中創建了一個表testA,並指明engine=innodb,在進行一些業務寫入操作後,這張表是否會同步到AP中?(相當於在TP中的表在AP中也有一份)2、如果我要對testA進行分析,是不是需要等TP同步之後才能進行分析?

A:如果在TP端創建表時指定了存儲引擎engine=innodb,那麼這張表會同步到AP端,但在AP端它的存儲引擎還是innodb。

如果繼續對這張表做analyze操作,不需要等AP端同步完,在TP端的analyze也會同步到AP端。但因為這張表在AP端還是innodb引擎,所以就沒有Tianmu存儲引擎的特性。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接:https://www.zhoubotong.site/post/76.html 最近發現一個文檔類網站,編寫教程很合適,特地查了一下叫Read the Docs ,可以使用 Sphinx 生成文檔,GitHub 托管文檔,然後導入到 ReadtheDocs進行展示,這裡順便記錄一下搭建過 ...
  • 目錄 gun組織 項目 Linux版本 指令下達和執行 如何關機 linux Base gun組織 項目 copyleft:代表無版權。 copyright:代表有版權 opensource:開放源代碼、軟體誰都可以使用、誰都可以傳播、都可二次開發 free:免費 GPL:通用許可證協議,如果軟體打 ...
  • shell前言 什麼是shell shell-‘殼’ 命令解釋器,一種應用程式 shell語言特點 SHELL語言是指UNIX操作系統的命令語言,同時又是該命令語言的解釋程式的簡稱。 Shell本身是一個用C語言編寫的程式,它是用戶使用Unix/Linux的橋梁,用戶的大部分工作都是通過Shell完 ...
  • 操作系統的”進程”很早就出現了,許多教科書上定義這個概念總是晦澀難懂。電腦技術發展太快了,簡單的概念經過無數次演化,也會變得複雜。我們追溯一下操作系統的發展歷史,就能理解進程解決了什麼問題、為什麼這樣設計。進程是獨立功能的程式的一次動態執行過程,也是系統資源分配的獨立實體。每個進程都擁有獨立的地址... ...
  • 作者:Stephen Thorn 翻譯:劉玲玲 原文:https://www.percona.com/blog/2020/10/08/the-criticality-of-a-kubernetes-operator-for-databases/ 一些剛接觸 Kubernetes 的公司嘗試使用傳統環 ...
  • 資料庫如何在 Kubernetes 上運行?如果可以,哪些類型的資料庫和數據最適合使用 K8s?讓我們一起來看看。 Kubernetes 是用於自動部署、擴展和管理容器化應用程式的一個開源的容器編排解決方案。儘管 Kubernetes 最初是為無狀態應用程式設計的,但隨著有狀態工作負載的日益流行,K ...
  • 註:本文分析內容基於 MySQL 8.0 版本 文章開始前先複習一下官方文檔關於 DECIMAL 類型的一些介紹: The declaration syntax for a DECIMAL column is DECIMAL(M,D). The ranges of values for the ar ...
  • 眾所周知MySQL聯合索引遵循最左首碼匹配原則,在少數情況下也會不遵循(有興趣,可以翻一下上篇文章)。 創建聯合索引的時候,建議優先把區分度高的欄位放在第一列。 至於怎麼統計區分度,可以按照下麵這種方式。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...