TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享

2018-12-28
阅读 15 分钟
3.1k
本文作者是来自 TiBoys 队的崔秋同学,他们的项目 TBSSQL 在 TiDB Hackathon 2018 中获得了一等奖。TiDB Batch and Streaming SQL(简称 TBSSQL)扩展了 TiDB 的 SQL 引擎,支持用户以类似 StreamSQL 的语法将 Kafka、Pulsar 等外部数据源以流式表的方式接入 TiDB。通过简单的 SQL 语句,用户可以实现对流式数据的过滤,...

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

2018-12-28
阅读 4 分钟
2k
本文作者是菜哥和他的朋友们队的于畅同学,他们的项目 TiPrometheus 已经被 Prometheus adapter 合并。该项目分两个小项目,分别解决了时序数据的存储与计算问题。存储主要兼容 Prometheus 语法和数据格式,实现了精确查询、模糊查询,完全兼容现有语法。所有数据仅存在 TiKV 中。计算主要通过 TiKV 调用 Lua 实现,通过...

TiDB Ecosystem Tools 原理解读系列(三)TiDB-DM 架构设计与实现原理

2018-12-27
阅读 12 分钟
2.6k
TiDB-DM(Data Migration)是用于将数据从 MySQL/MariaDB 迁移到 TiDB 的工具。该工具既支持以全量备份文件的方式将 MySQL/MariaDB 的数据导入到 TiDB,也支持通过解析执行 MySQL/MariaDB binlog 的方式将数据增量同步到 TiDB。特别地,对于有多个 MySQL/MariaDB 实例的分库分表需要合并后同步到同一个 TiDB 集群的场景...

TiDB 助力东南亚领先电商 Shopee 业务升级

2018-12-25
阅读 5 分钟
1.8k
Shopee([链接])是东南亚和台湾地区领先的电子商务平台,覆盖新加坡、马来西亚、菲律宾、印度尼西亚、泰国、越南和台湾等七个市场。Shopee 母公司 Sea([链接])为首家在纽约证券交易所上市的东南亚互联网企业。2015 年底上线以来,Shopee 业务规模迅速扩张,逐步成长为区域内发展最为迅猛的电商平台之一:

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

2018-12-21
阅读 5 分钟
2.5k
本文作者是矛盾螺旋队的成员刘玮,他们的项目 TiEye 在 TiDB Hackathon 2018 中获得了三等奖。TiEye 是 Region 信息变迁历史可视化工具,通过 PD记录 Region 的Split、Merge、ConfChange、LeaderChange 等信息,可以方便的回溯 Region 某个时间的具体状态,为开发人员提供了方便的可视化展示界面及查询功能。

TiDB 源码阅读系列文章(二十二)Hash Aggregation

2018-12-21
阅读 6 分钟
2.7k
在 SQL 中,聚合操作对一组值执行计算,并返回单个值。TiDB 实现了 2 种聚合算法:Hash Aggregation 和 Stream Aggregation。

十分钟成为 Contributor 系列 | 支持 AST 还原为 SQL

2018-12-21
阅读 6 分钟
3k
SQL 语句发送到 TiDB 后首先会经过 parser,从文本 parse 成为 AST(抽象语法树),AST 节点与 SQL 文本结构是一一对应的,我们通过遍历整个 AST 树就可以拼接出一个与 AST 语义相同的 SQL 文本。

TiDB EcoSystem Tools 原理解读系列(二)TiDB-Lightning Toolset 介绍

2018-12-19
阅读 4 分钟
3k
TiDB-Lightning Toolset 是一套快速全量导入 SQL dump 文件到 TiDB 集群的工具集,自 2.1.0 版本起随 TiDB 发布,速度可达到传统执行 SQL 导入方式的至少 3 倍、大约每小时 100 GB,适合在上线前用作迁移现有的大型数据库到全新的 TiDB 集群。

TiDB DevCon 2019 报名开启:年度最高规格的 TiDB 技术大会

2018-12-18
阅读 2 分钟
2.1k
年度最高规格的 TiDB 技术大会海内外动态及成果的综合呈现最新核心技术解读多个成果首次亮相2019 RoadMap 展望14 位海内外基础架构领域技术大咖8 个跨行业多场景的用户实战经验1 小时 Demo Show 只为向你描述可以预见的数据库的未来

TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

2018-12-14
阅读 8 分钟
1.9k
本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画教学 Lab,让用户可以一边进行真实操作一边观察组件之间的变化,例如 SQL 的解析,Region 的变更等等,从而生动地理解 TiDB 的...

让 TiDB 访问多种数据源 | TiDB Hackathon 优秀项目分享

2018-12-14
阅读 4 分钟
2.9k
本文作者是来自 CC 组的兰海同学,他们的项目《让 TiDB 访问多种数据源》在本届 TiDB Hackathon 2018 中获得了二等奖。该项目可以让 TiDB 支持多种外部数据源的访问,针对不同数据源的特点会不同的下推工作,使 TiDB 成为一个更加通用的数据库查询优化和计算平台。

TiQuery:All Diagnosis in SQL | TiDB Hackathon 优秀项目分享

2018-12-13
阅读 5 分钟
2.1k
本文作者是来自 TiNiuB 队的黄梦龙同学,他们的项目 TiQuery 在本届 TiDB Hackathon 2018 中获得了三等奖。 TiQuery 可以搜集诊断集群问题所需要的信息,包括集群拓扑,Region 分布,配置,各种系统信息,整理成结构化的数据,并在 TiDB 中支持直接使用 SQL 语言进行查询,开发和运维人员可以在 SQL 环境方便高效地进行...

TiDB 源码阅读系列文章(二十一)基于规则的优化 II

2018-12-13
阅读 7 分钟
2.4k
在 TiDB 源码阅读系列文章(七)基于规则的优化 一文中,我们介绍了几种 TiDB 中的逻辑优化规则,包括列剪裁,最大最小消除,投影消除,谓词下推和构建节点属性,本篇将继续介绍更多的优化规则:聚合消除、外连接消除和子查询优化。

TiDB Ecosystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理

2018-12-10
阅读 10 分钟
4.9k
TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组件在功能上类似于 MySQL 的主从复制,MySQL 的主从复制依赖于记录的 binlog 文件,TiDB-Binlog 组件也是如此,主要的不同点是 TiDB 是分布式的,因此需要收集各个 TiDB 实例产生的 binlog,并按照事务提交的时间排序后才能同步到下游。如果你需...

天真贝叶斯学习机 | TiDB Hackathon 优秀项目分享

2018-12-05
阅读 11 分钟
2.1k
TiDB Hackathon 2018 共评选出六组优秀项目,本系列文章将由这六组项目的成员主笔,分享他们的参赛经验和成果。我们非常希望本届 Hackathon 诞生的优秀项目能够在社区中延续下去,感兴趣的小伙伴们可以加入进来哦~本文作者是来自 DSG 团队的杨文同学,他们的项目《天真贝叶斯学习机》在本届 Hackathon 中获得了三等奖+...

TiDB 在小米的应用实践

2018-12-04
阅读 6 分钟
6.1k
MIUI 是小米公司旗下基于 Android 系统深度优化、定制、开发的第三方手机操作系统,也是小米的第一个产品。MIUI 在 Android 系统基础上,针对中国用户进行了深度定制,在此之上孕育出了一系列的应用,比如主题商店、小米音乐、应用商店、小米阅读等。

TiDB 2.1 GA Release Notes

2018-11-30
阅读 4 分钟
2.1k
2018 年 11 月 30 日,TiDB 发布 2.1 GA 版。相比 2.0 版本,该版本对系统稳定性、性能、兼容性、易用性做了大量改进。

TiDB 2.1: Battle-Tested for an Unpredictable World

2018-11-30
阅读 4 分钟
1.4k
TiDB 是由 PingCAP 开发的分布式关系型数据库,今天我们很高兴地推出 TiDB 2.1 正式版,提供更丰富的功能、更好的性能以及更高的可靠性。

捕获和增强原生系统的可观测性来发现错误

2018-11-23
阅读 4 分钟
1.5k
在对 TiDB 进行 Chaos 实践的时候,我一直在思考如何更好的发现 TiDB 整个系统的故障。最开始,我们参考的就是 Chaos Engineering 里面的方式,观察系统的稳定状态,注入一个错误,然后看 metrics 上面有啥异常,这样等实际环境中出现类似的 metrics,我们就知道发现了什么故障。

美团点评携手 PingCAP 开启新一代数据库深度实践之旅

2018-11-15
阅读 9 分钟
4.8k
在美团,基于 MySQL 构建的传统关系型数据库服务已经难于支撑公司业务的爆发式增长,促使我们去探索更合理的数据存储方案和实践新的运维方式。随着近一两年来分布式数据库大放异彩,美团 DBA 团队联合架构存储团队,于 2018 年初启动了分布式数据库项目。

TiDB at 丰巢:尝鲜分布式数据库

2018-11-12
阅读 3 分钟
2.9k
随着丰巢业务系统快速增长,其核心系统的数据量,早就跨越了亿级别,而且每年增量仍然在飞速发展。整个核心系统随着数据量的压力增长,不但系统架构复杂度急剧增长,数据架构更加复杂,传统的单节点数据库,已经日渐不能满足丰巢的需求,当单表数量上亿的时候,Oracle 还能勉强抗住,而 MySQL 到单表千万级别的时候就难...

TiDB 开源社区指南(上)

2018-11-09
阅读 3 分钟
2.2k
作者:申砾 本系列文章旨在帮助社区开发者了解 TiDB 项目的全貌,更好的参与 TiDB 项目开发。大致会分两个角度进行描述: 从社区参与者的角度描述如何更好的参与 TiDB 项目开发; 从 PingCAP 内部团队的角度展示 TiDB 的开发流程,包括版本规划、开发流程、Roadmap 制定等。 希望通过一内一外两条线的描述,读者能在技术...

TiDB 助力卡思数据视频大数据业务创新

2018-11-06
阅读 3 分钟
2.8k
卡思数据是国内领先的视频全网数据开放平台,依托领先的数据挖掘与分析能力,为视频内容创作者在节目创作和用户运营方面提供数据支持,为广告主的广告投放提供数据参考和效果监测,为内容投资提供全面客观的价值评估。

TiDB 源码阅读系列文章(二十)Table Partition

2018-10-29
阅读 7 分钟
2.4k
Table Partition 是指根据一定规则,将数据库中的一张表分解成多个更小的容易管理的部分。从逻辑上看只有一张表,但是底层却是由多个物理分区组成。相信对有关系型数据库使用背景的用户来说可能并不陌生。

一致性模型

2018-10-24
阅读 7 分钟
3.7k
有时候,在跟一些同学讨论 TiKV 事务模型的时候,我都提到了 Linearizability,也提到了 Snapshot Isolation,以及需要手动 lock 来保证 Serializable Snapshot Isolation,很多时候,当我嘴里面蹦出来这些名词的时候,有些同学就一脸懵逼了。所以我觉得有必要仔细来解释一下,顺带让我自己将所有的 isolation 以及 cons...

线性一致性和 Raft

2018-10-22
阅读 5 分钟
2.6k
在讨论分布式系统时,共识算法(Consensus algorithm)和一致性(Consistency)通常是讨论热点,两者的联系很微妙,很容易搞混。一些常见的误解:使用了 Raft [0] 或者 paxos 的系统都是线性一致的(Linearizability [1],即强一致),其实不然,共识算法只能提供基础,要实现线性一致还需要在算法之上做出更多的努力。...

TiKV 是如何存取数据的(下)

2018-10-12
阅读 3 分钟
2.1k
TiKV 提供两套 API,一套叫做 RawKV,另一套叫做 TxnKV。TxnKV 对应的就是上面提到的 Percolator,而 RawKV 则不会对事务做任何保证,而且比 TxnKV 简单很多,这里我们先讨论 RawKV。

TiKV 是如何存取数据的(上)

2018-10-10
阅读 4 分钟
2.7k
本文会详细的介绍 TiKV 是如何处理读写请求的,通过该文档,同学们会知道 TiKV 是如何将一个写请求包含的数据更改存储到系统,并且能读出对应的数据的。

雷神 Thor —— TiDB 自动化运维平台

2018-10-08
阅读 4 分钟
3.4k
随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百 GB 涨到几百个 TB,传统的单机数据库提供的服务,在系统的可扩展性、性价比方面已经不再适用。为了应对大数据量下业务服务访问的性能问题,MySQL 数据库常用的分库、分表方案会随着 MySQL Sharding(分片)的增多,业务访问...

TiDB 源码阅读系列文章(十九)tikv-client(下)

2018-10-08
阅读 5 分钟
2.7k
上篇文章 中,我们介绍了数据读写过程中 tikv-client 需要解决的几个具体问题,本文将继续介绍 tikv-client 里的两个主要的模块——负责处理分布式计算的 copIterator 和执行二阶段提交的 twoPhaseCommitter。