text: TiDB是一個開源的NewSQL資料庫，支援混合事務和分析處理工作負載。它與MySQL相容，並且可以提供水平可擴充套件性、強一致性和高可用性。它主要由PingCAP公司開發和支援，並在Apache 2.0下授權。TiDB從Google的Spanner和F1論文中汲取了最初的設計靈感。TiDB被InfoWorld 2018 Bossie Award評選為最佳資料儲存和分析開源軟體之一。歷史.PingCAP Inc.是一家軟體公司，成立於2015年4月，成立後便開始開發TiDB。該公司是TiDB及其關聯的開源社群的主要開發人員，維護人員和驅動者。主要特性.水平可擴充套件性.TiDB可以透過新增新節點來擴充套件SQL處理和儲存容量。這使得基礎設施容量的擴充套件更加容易和靈活，而傳統的關係資料庫只能垂直擴充套件。MySQL相容性.對於應用程式來說，TiDB的行為就如同一個MySQL 5.7伺服器。使用者可以繼續使用所有現有的MySQL客戶端庫。因為TiDB的SQL處理層是從頭開始構建的，而不是一個MySQL分支，所以它的相容性不是100%，而且MySQL和TiDB之間存在已知的行為差異。具有強一致性的分散式事務.TiDB在內部基於範圍將表分片為的小塊，這些塊稱為“區域”。每個區域的預設大小約為100 MB，TiDB在內部使用二階段提交來確保區域以事務上一致的方式進行維護。雲原生.為了使部署、配置、操作和維護更加靈活，TiDB被設計成可在雲中工作。TiDB的儲存層稱為TiKV，於2018年8月成為雲原生計算基金會的沙盒級別專案。TiDB平臺的體系結構還允許分別獨立擴充套件SQL處理和儲存。更精簡的ETL流程.TiDB可以支援聯機事務處理到一個列儲存中進行分析處理，但這一步驟不再需要。高可用性.TiDB使用Raft一致性演算法確保資料在整個Raft組的儲存過程中高度可用和安全複製。在發生故障時，Raft組將自動為失敗的成員選擇一個新的領導者，並自我修復TiDB叢集，而不需要任何必要的人工干預。失敗和自愈操作對應用程式是透明的。部署方法.Kubernetes Operator.可以使用TiDB Operator將TiDB部署到支援Kubernetes的雲環境中。Operator是打包、部署和管理Kubernetes應用程式的方法。它是為執行有狀態工作負載而設計的，最早由CoreOS在2016年引入。TiDB Operator最初由PingCAP開發，並於2018年8月開源。TiDB Operator可以用於在膝上型電腦、Google Cloud Platform的Google Kubernetes引擎和Amazon Web Services的Kubernetes彈性容器服務上部署TiDB。Ansible.透過使用TiDB-Ansible playbook，可以使用部署TiDB。Docker.可以使用Docker在多個節點和多臺機器上的容器化環境中部署TiDB，而Docker Compose可以使用單個命令部署TiDB以進行測試。工具.TiDB提供了一系列開源工具來幫助現有MySQL和MariaDB使用者進行資料複製和遷移。Syncer與Data Migration.Syncer是一個工具，它支援從MySQL或MariaDB例項到TiDB叢集的完整資料遷移或增量資料複製。Data Migration是 Syncer的第二代迭代，它適合將已分片的MySQL或MariaDB表中的資料複製到TiDB。Syncer/DM的一個常見用例是將MySQL或MariaDB表連線到TiDB，幾乎將TiDB視為從屬，然後在該TiDB叢集上直接實時執行分析工作負載。Lightning.Lightning是一個可將大型MySQL轉儲高速完全匯入到新的TiDB群集中的工具，它提供了比執行每個SQL語句更快的匯入體驗。該工具用於把大量資料快速填充到一個最初為空的TiDB叢集，以便加快測試或生產遷移。之所以能提升匯入速度，是因為TiDB透過將SQL語句解析為鍵值對，然後直接生成有序字串表文件到。TiDB-Binlog.TiDB-Binlog是一個用於收集對TiDB叢集所做邏輯更改的工具。它用於在兩個TiDB叢集之間或從一個TiDB叢集到另一個下游平臺之間提供增量備份和複製。它的功能類似於MySQL主從複製。主要的區別在於，由於TiDB是一個分散式資料庫檔案管理器，因此每個TiDB例項生成的binlog需要在被下游使用之前，根據事務提交的時間進行合併和排序。使用者案例.目前，已有近3000家公司在使用 TiDB，其中包括Mastercard、AirBNB、Square、Paypay、中國銀行、建設銀行、美團、Bilibili、Shopee、BookMyShow、小米、知乎、美團點評、愛奇藝, 轉轉、摩拜、易果，以及猿輔導。
metadata: erhwenkuo/wikipedia-zhtw
metadata: TiDB
metadata: https://zh.wikipedia.org/wiki?curid=6828654