TiDB

TiDB的手动安装

匿名 (未验证) 提交于 2019-12-03 00:41:02
TIDB的安装 TiDB 是 PingCAP 公司受 Google Spanner F1 (官网介绍) 用mysql客户端工具连接进去tidb。tidb和mysql的各类命令用法是一样的。没有过高的学习成本,开发成本。 TiDB目前官网是强烈推荐用ansible部署。ansible可以方便快速部署完毕。为了更好的了解整个架构,可以手动去部署一次。 TIDB的架构(图来自官网): 安装TiDB ansible方式下载: git clone https://github.com/pingcap/tidb-ansible.git cd tidb-ansible ansible-playbook local_prepare.yml 或者 http://download.pingcap.org/tidb-latest-linux-amd64-unportable.tar.gz 或者 链接: https://pan.baidu.com/s/1hkQ_fsbXTZjzFXGX2sRyGA 密码:fj16 手动下载完成tidb安装包并解压后,会看tidb的目录架构如下: 安装TiDB tipd节点:管理节点,管理元数据,对tikv节点数据的均衡调度。 tikv节点:存储数据节点,可设置多个副本互备。 tidb节点:客户端链接,计算节点。是无数据,无状态的。 1、安装环境: 磁盘

TiDB 在爱奇艺的应用及实践

末鹿安然 提交于 2019-12-02 07:57:39
爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方位创新。企业愿景为做一家以科技创新为驱动的伟大娱乐公司。我们在前沿技术领域也保持一定的关注度。 随着公司业务的快速发展,原来普遍使用的 MySQL 集群遇到了很多瓶颈,比如单机 MySQL 实例支撑的数据量有限,只能通过不停删除较旧的数据来维持数据库的运转。同时单表的数据行数不断增大导致查询速度变慢。急需一种可扩展、高可用同时又兼容 MySQL 访问方式的数据库来支撑业务的高速发展。 我司从 2017 年年中开始调研 TiDB,并且在数据库云部门内部系统中使用了 TiDB 集群。从今年 TiDB 推出 2.0 之后,TiDB 愈发成熟,稳定性与查询效率都有很大提升。今年陆续接入了边控中心、视频转码、用户登录信息等几个业务,这几个业务背景和接入方式如下详述。 项目介绍 1. 边控中心 边控中心存储的是机器的安全统计信息,包括根据 DC、IP、PORT 等不同维度统计的流量信息。上层业务会不定期做统计查询,其业务页面如下: <center>图 1 边控中心上层业务页面(一)</center> <center>图 2 边控中心上层业务页面(二)</center> 在选型过程中,也考虑过时序型数据库

新一代数据库TiDB在美团的实践

房东的猫 提交于 2019-12-02 07:57:29
1. 背景和现状 近几年,基于MySQL构建的传统关系型数据库服务,已经很难支撑美团业务的爆发式增长,这就促使我们去探索更合理的数据存储方案和实践新的运维方式。而随着分布式数据库大放异彩,美团DBA团队联合基础架构存储团队,于 2018 年初启动了分布式数据库项目。 图 1 美团点评产品展示图 在立项之初,我们进行了大量解决方案的对比,深入了解了业界的 scale-out(横向扩展)、scale-up(纵向扩展)等解决方案。但考虑到技术架构的前瞻性、发展潜力、社区活跃度以及服务本身与 MySQL 的兼容性,我们最终敲定了基于 TiDB 数据库进行二次开发的整体方案,并与 PingCAP 官方和开源社区进行深入合作的开发模式。 美团业务线众多,我们根据业务特点及重要程度逐步推进上线,到截稿为止,已经上线了 10 个集群,近 200 个物理节点,大部分是 OLTP 类型的应用,除了上线初期遇到了一些小问题,目前均已稳定运行。初期上线的集群,已经分别服务于配送、出行、闪付、酒旅等业务。虽然 TiDB 的架构分层相对比较清晰,服务也是比较平稳和流畅,但在美团当前的数据量规模和已有稳定的存储体系的基础上,推广新的存储服务体系,需要对周边工具和系统进行一系列改造和适配,从初期探索到整合落地,仍然还需要走很远的路。下面将从以下几个方面分别进行介绍: 从 0 到 1 的突破,重点考虑做哪些事情。

TiDB 在摩拜单车的深度实践及应用

☆樱花仙子☆ 提交于 2019-12-02 07:57:16
作者介绍: 吕磊 ,摩拜单车高级 DBA。 一、业务场景 摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务的不断发展,TiDB 版本快速迭代,我们将 TiDB 在摩拜单车的使用场景逐渐分为了三个等级: P0 级核心业务:线上核心业务,必须单业务单集群,不允许多个业务共享集群性能,跨 AZ 部署,具有异地灾备能力。 P1 级在线业务:线上业务,在不影响主流程的前提下,可以允许多个业务共享一套 TiDB 集群。 离线业务集群:非线上业务,对实时性要求不高,可以忍受分钟级别的数据延迟。 本文会选择三个场景,给大家简单介绍一下 TiDB 在摩拜单车的使用姿势、遇到的问题以及解决方案。 二、订单集群(P0 级业务) 订单业务是公司的 P0 级核心业务,以前的 Sharding 方案已经无法继续支撑摩拜快速增长的订单量,单库容量上限、数据分布不均等问题愈发明显,尤其是订单合库,单表已经是百亿级别,TiDB 作为 Sharding 方案的一个替代方案,不仅完美解决了上面的问题,还能为业务提供多维度的查询。 2.1 订单 TiDB 集群的两地三中心部署架构 <center>图 1 两地三中心部署架构图</center> 整个集群部署在三个机房,同城 A、同城 B、异地 C。由于异地机房的网络延迟较高,设计原则是尽量使 PD Leader 和 TiKV Region

部署TiDB集群

江枫思渺然 提交于 2019-12-01 22:03:42
节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146.216 PD3 120.52.146.217 TiKV1 120.52.146.218 TiKV2 120.52.146.219 TiKV3 软件要求 CentOS 7.3 (64 bit) or later with Python 2.7 installed 1、在控制节点上安装依赖软件 # yum -y install epel-release git curl sshpass # yum -y install python-pip 2、创建 tidb 用户 # useradd tidb # passwd tidb 3、配置sudo权限 # visudo tidb ALL=(ALL) NOPASSWD: ALL 4、切换用户,生成SSH-KEY # su - tidb $ ssh-keygen -t rsa 5、下载 tidb ansible 项目代码 $ git clone -b v3.0.4 https://github.com/pingcap/tidb-ansible.git 6、安装ansible和相关依赖 $ cd /home/tidb/tidb-ansible $ sudo

TiDB 路线图

柔情痞子 提交于 2019-12-01 18:49:21
TiDB 优化器 统计信息优化 Multi-Column Statistics Cascades Planner Plan Management SQL Tuning Advisor Robust Access Path Selection:增加启发式规则,提升 OLTP 场景中索引选择正确率 Adaptive Query Optimization 执行引擎 算子并行化 内存控制 并发控制 Shuffle 算子 Vectorized 表达式计算 UDF SQL 功能 支持 View 支持窗口函数 支持 Common Table Expression 支持 Hash 分区表 支持 utf8_general_ci collation DDL 改进 支持 Table Lock 支持 Change column type 支持单条语句中多个 DDL 操作 支持不可见索引(invisible index) 支持插件系统 支持白名单插件 支持审计日志插件 支持 RBAC 插件 支持诊断插件 支持 Query Tracing 支持行列混合存储引擎 支持 New Storage Row Format,提升性能并减小内存占用 RowID 实现非整数类型 事务 减少读写冲突 优化事务调度机制 改善模型,降低延迟 支持最小事务 (like the mini-transaction of InnoDB)

TiPrometheus:基于 TiDB 的 TSDB | TiDB Hackathon 2018 优秀项目分享

我是研究僧i 提交于 2019-12-01 18:48:55
本文作者是菜哥和他的朋友们队的于畅同学,他们的项目 TiPrometheus 已经被 Prometheus adapter 合并。该项目分两个小项目,分别解决了时序数据的存储与计算问题。存储主要兼容 Prometheus 语法和数据格式,实现了精确查询、模糊查询,完全兼容现有语法。所有数据仅存在 TiKV 中。计算主要通过 TiKV 调用 Lua 实现,通过 Lua 动态扩展实现数据计算的功能。 项目简介 既然你关注了 TiDB, 想必你一定是个关注 Infrastructure 的硬汉(妹)子。监控作为 Infra 不可或缺的一环,其核心便是 TSDB(time series database) 。 TSDB 是一种以时间为主要索引的数据库,主要用来存储大量以时间为序列的指标数据,数据结构也比较简单,通常包括特征信息,指标数据和 timestamp。常见的 TSDB 包括 InfluxDB, OpenTSDB, Prometheus。 而 Prometheus 是一整套监控系统,时序数据库是它的存储部分,下面这张架构图来自于 Prometheus 官方,简单概括了其架构和生态的组成。 Prometheus 还支持一个图上没有体现的功能 Remote Storage,可以进行远程的读写,对查询是透明的。这个功能主要是用来做长存储。我们的项目就是实现了一个基于 TiKV 的 TSDB

TiDB 路线图

感情迁移 提交于 2019-12-01 18:38:42
TiDB 优化器 统计信息优化 Multi-Column Statistics Cascades Planner Plan Management SQL Tuning Advisor Robust Access Path Selection:增加启发式规则,提升 OLTP 场景中索引选择正确率 Adaptive Query Optimization 执行引擎 算子并行化 内存控制 并发控制 Shuffle 算子 Vectorized 表达式计算 UDF SQL 功能 支持 View 支持窗口函数 支持 Common Table Expression 支持 Hash 分区表 支持 utf8_general_ci collation DDL 改进 支持 Table Lock 支持 Change column type 支持单条语句中多个 DDL 操作 支持不可见索引(invisible index) 支持插件系统 支持白名单插件 支持审计日志插件 支持 RBAC 插件 支持诊断插件 支持 Query Tracing 支持行列混合存储引擎 支持 New Storage Row Format,提升性能并减小内存占用 RowID 实现非整数类型 事务 减少读写冲突 优化事务调度机制 改善模型,降低延迟 支持最小事务 (like the mini-transaction of InnoDB)

贝壳金服 TiDB 在线跨机房迁移实践

橙三吉。 提交于 2019-12-01 04:07:16
作者介绍 : 李振环 ,贝壳金服数据基础架构负责人,目前负责数据平台和企业级数据仓库开发。 公司介绍 贝壳金服是专注居住场景的金融科技服务商,起步于2006年成立的链家金融事业部,并于 2017年3月正式独立运营。 贝壳金服聚焦于居住场景,在租赁、买卖、家装、安居等场景中为用户提供定制化的居住金融服务。贝壳金服以独家大数据与场景风控能力见长,致力于解决居住金融需求,以Fintech驱动产业升级,让每个家庭都能享受高品质的居住生活。 截至2018年底,贝壳金服业务已覆盖全国90多个城市及地区,为超过130万用户提供了金融服务。 项目背景 贝壳金服数据中台使用 TiDB 和 TiSpark 平台,基于 Syncer 将业务数据实时从 MySQL 备库抽取到 TiDB 中,并通过 TiSpark 对 TiDB 中的数据进行数据分析处理,供上游业务消费,现已服务于 70 多名数据开发人员。 现有集群已经使用 100 多个 Syncer 同步上游 MySQL 数据,目前已经达到 4.7TB 热数据,上百张离线和实时报表。由于机房调整,数据中台也需要同步迁移到新机房,结合 TiDB 的特性,我们探索了一种在线不停机迁移机房的方式。 TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、MySQL 语法,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合

TiEye:Region 信息变迁历史可视化工具 | TiDB Hackathon 2018 优秀项目分享

浪子不回头ぞ 提交于 2019-12-01 04:07:03
本文作者是矛盾螺旋队的成员刘玮,他们的项目 **TiEye **在 TiDB Hackathon 2018 中获得了三等奖。TiEye 是 Region 信息变迁历史可视化工具,通过 PD记录 Region 的Split、Merge、ConfChange、LeaderChange 等信息,可以方便的回溯 Region 某个时间的具体状态,为开发人员提供了方便的可视化展示界面及查询功能。 TiKV 的 Region Region 是 TiKV 的一个数据调度单元,TiKV 将数据按照键值范围划分为很多个 Region,分在集群的多台机器上,通过调度 Region 来实现负载均衡以及数据存储的扩展,同时一个 Region 也是一个 Raft Group,一个 Region 分布在多个 TiKV 实例上(通常是 3 个或者 5 个),通过 Raft 算法保证多副本的强一致性。 动机 这个项目的灵感是之前在查一些问题的时候想到的,因为我们很多时候需要去知道 Region 在某个时间的状态,这就需要通过日志从杂乱的信息中提取出来有用的信息来复原当时的场景,但实际并不是特别方便高效,尤其是在看多个 Region 之间的关系的时候。因此通过将 Region 信息变化历史可视化,希望能为开发者们在定位问题的时候提供一个方便直观的工具,同时还能通过它来分析 PD 的调度策略