作者| 蔡芳芳
数据读写性能超越MySQL、Cassandra、InfluxDB、Open TSDB、ClickHouse,同时集成了数据库、消息队列、缓存、流计算等功能,可以轻松地将Kafka等软件集成到您的应用程序中。整合。 /Redis/HBase/Spark ,TDengine 是如何做到的?
IDC最近预测,2019年全球物联网支出将达到7450亿美元。 IDC报告显示,物联网增长预计将保持高位,各行业物联网解决方案支出比例持续增加。陶思数据创始人陶建辉表示,未来五年,全球90%的数据将由物联网收集,这就是我们创建TDengine的原因。是针对物联网、车联网、工业互联网、IT运维等领域设计和优化的大数据平台。 TDengine除了具备高性能时序数据库的核心功能外,还提供缓存、数据订阅、流式计算等功能,旨在最大程度地减轻研发和运维的负担。自7月12日在ArchSummit全球架构师峰会(深圳)上宣布开源以来的两周内,TDengine开源项目在GitHub上获得了超过6,800个star和1,700个fork,成为行业领先者。热烈讨论。
开源地址:https://github.com/taosdata/TDengine
更多TDengine测试数据及报告请访问https://www.taosdata.com/cn/。
InfoQ 记者有机会在2019 ArchSummit 全球架构师峰会(深圳站)上采访了陶思数据创始人陶建辉,详细了解了TDengine 相对Hadoop 性能提升10 倍背后的创新。 TDengine的开源以及TDengine未来的商业进展和开源社区计划。
InfoQ:您好,感谢您参加2019 ArchSummit全球架构师峰会(深圳站)的视频采访。首先请您简单介绍一下自己,包括您的工作经历和创业经历。
陶建辉:大家好。我叫陶建辉。陶寺数据创始人。很高兴今天来到这里与大家互动。我1986年开始上大学,1994年移居美国学习,1997年开始在芝加哥的摩托罗拉工作,然后在3Com工作。 2008年我回到北京开始自己创业。之前我在一家叫禾信的公司工作,这是一家手机实时消息推送服务公司。该公司随后于2013 年被联发科收购。我重新开始做生意,创办了一家名为快乐妈咪的公司。公司主要是母婴健康大数据服务平台。该公司于2016年初被太平洋网络收购。然后我休息了一年。我认为物联网一定会发展。随着数据量不断增长,需要新的方法来处理物联网收集的大量数据。结合我在风险投资公司的经历,我觉得我还没有老。当时我正好49岁,我觉得我也能做到,而且我认为目前处理物联网数据的方式还不够,我找到了更好、更创新的方式来存储和处理物联网。于是我自己花了两个月的时间写代码来证明我的想法是正确的。之后我们开始融资、组建团队,2017年5月,桃丝数据正式成立。
InfoQ:那么TDengine这个产品最初是专门为物联网设计的?
陶建辉:物联网是一个非常广泛的概念,包括车联网、工业互联网、IT智能运维监控等。只要是通过各种机械设备上的传感器收集数据的一切都属于这一类。我上一家创业公司是制造智能硬件,所以我们需要收集各种数据并将其发送到云端进行健康数据分析。随后了解了很多物联网项目,包括工业互联网、智能硬件、智能家居等项目。这里的共同点是实际的数据处理、如何存储以及如何有效地查询、计算和分析。陶寺数据做这样的事情已经有两年多了。
InfoQ:TDengine什么时候正式公布其可用产品?从TDengine开始开发到推出外部产品花了多长时间?
陶建辉先生:第一个产品实际上是在2018年8月提供给用户的。从开始研发到推出实用产品大约花了一年半的时间。
InfoQ:您的团队在开发TDengine 时遇到的最大挑战是什么?这背后有什么故事吗?
陶建辉:最大的困难是技术,技术挑战是巨大的。我们的产品看起来很简单,我们所做的就是存储我们收集到的各种数据并对其进行查询。事实上,由于它是低级软件,因此带来了重大的技术挑战。例如,您经常需要对100 亿条记录进行插入和查询测试。如果100 亿条记录中有一条丢失,您需要找出哪条记录丢失以及原因。涉及模块较多,技术挑战较大。
我想简单讲一下TDengine的开发过程。由于是我自己做的,所以我主要关注性能和易用性。如果性能不够好,就不可能更换其他软件。这是一个性能示例。有一次,我们团队的一位工程师更改了一行代码,但没有人知道这行代码是我写的,并且它使产品的整体性能降低了一半以上,我也没有注意到。整个团队都很担心,我们花了一整天的时间回滚并检查代码,终于找出原因并修复了问题。
InfoQ:在性能测试报告中,我们将TDengine的读写性能与MySQL、ClickHouse等开源数据库产品进行了比较,这是否意味着这些产品是TDengine的基准?
陶建辉:MySQL和ClickHouse是比较知名的开源数据库产品,但我们实际上对标的是InfluxDB,包括阿里巴巴的HiTSDB、OpenTSDB,以及测试报告中提到的其他产品。然而,这并不完全公平,因为这些产品只是数据库。 TDengine的核心功能也是数据库,但是TDengine除了数据库之外还支持很多其他功能,包括缓存、消息队列、流式计算以及大数据处理所需的一组功能。性能测试报告重点关注数据库功能。数据库测试相对标准化,一般侧重于插入和查询速度,所以我们以此为基础进行比较。目前,TDengine在大数据领域还没有任何真正的标杆。我们是世界上第一个真正的物联网大数据平台。 这就是为什么我们不称自己为数据库。
InfoQ:TDengine官网的介绍中提到了“超融合”。这是指集成消息队列、缓存、数据库、流计算、订阅等大数据处理所需的功能。然而,在当今的大数据生态系统中,不同的产品通常处理不同的功能并执行各自的任务,并且很少有产品被集成。请告诉我们更多关于“超融合”的原因。
陶建辉:为什么我们需要“超融合”?现在的通用大数据平台往往集成了五、六、甚至七、八个软件,这对我们开发者来说是一个很大的挑战。你不仅要学习一种软件、掌握一种工具,而且要同时掌握多种工具。时间。对于企业主来说,即使雇用人员也很困难。而且如果你仔细研究的话,任何开源软件都会有问题。通过集成这些功能,您只需一款软件即可提供所有功能,大大降低了开发难度。它还使用标准SQL 接口,这使得大多数具有计算机技能的人无法使用它。因此,这个改进非常重要。同时,TDengine还具有专门针对物联网行业的独特功能。不太适合舆情分析、用户画像,或者很多常见的互联网行业应用场景。只能执行物联网、车联网、工业互联网以及风电、国家电网等运维监控场景。构建物联网等
InfoQ:您能多谈谈如何实现“超融合”以及它可以分解为哪些技术部分吗?
陶建辉:向数据库插入数据时,通常需要先缓存在消息队列中。物联网数据很特殊,实际上很类似于消息队列,因为物联网收集的数据是按时间顺序连续发送的,本身就是一个队列。第二点是物联网最重要的特点是能够看到实时状态。因此,我们将每个设备的数据直接缓存在内存中一段时间,缓存的时间是根据数据来确定的。收集的时间段长度。互联网应用程序的缓存不是由这个决定的。例如,如果很多人点击这条微博帖子,那么该帖子应该始终被缓存。然而,物联网数据却并非如此。每个人都对刚刚收集的数据最感兴趣;没有人对几小时或几天前的数据感兴趣。因此,我们利用这些特性来实现消息队列和缓存。既然物联网本身就是流式的,那么也就有了流式计算。当然,最终这些数据也需要存储,并且数据库必须能够分析历史数据。这些都是数据库天生擅长的事情。
InfoQ:从性能测试结果来看,TDengine在各个方面都表现出了非常好的性能,包括读/写性能和集群水平扩展性能。您能谈谈您在技术方面的创新吗?
陶建辉:主要是数据模型不同。我们的数据模型需要为每个收集点或收集设备创建一个单独的表。例如,如果您有1000 万个智能电表,则构建1000 万个电表。创建单独的表有什么好处? 创建单独的表后,每个设备上收集的数据会连续地存储在内存或硬盘中。当然,完全无限的连续性是不可能的,但是像4K、16K、64K这样连续做是可以的。这样,读取数据时,就会读取完整的块。因为物联网的另一个特点就是它从不关心单个点的价值,而是关注整体的趋势。因此,当您在物联网场景中搜索时,您通常会搜索五分钟的数据。不过,由于5分钟的数据包含很多点,这样的设计可以显着加快查询速度。根据数据模型设计,一次可以读取1000条记录。按照之前的数据库设计,如果要读取1000条记录,可能需要1000次IO操作,这显然是比较耗时的。
那么对于物联网设备来说,写操作怎么能这么快呢?你给每个设备设计一张表,然后每写一张表,实际上都是设备写的。由于物联网的数据,如汽车、智能电表、智能手环等,必须由特定的设备生成,因此一张表对应的数据生产者是唯一的,只有一个设备可以写入这张表。同时,它在技术上也非常简单。另一方面,由于物联网数据是按时间顺序发送的,因此写入操作自然要快得多,因为它是附加操作。
然而,我们的数据模型还存在另一个问题。这意味着米太多了。例如,如果有1000万个智能电表,那么也有1000万个电表。如果您只想单独查看这些表,我们的方法就足够了。从单个电表或单个汽车插入和查询数据永远不会比我们更快。但是如果要做聚合的话,就非常繁琐了。所以还有一个非常重要的创新叫做supertable。超级表是指将同一类型的设备视为一个表,每个表都可以进行标记。比如喜来登酒店的11楼房间只有几十个功率表,也就是11层。如果您需要统计一个楼层,或者整个喜来登酒店,您可以非常快速地查询100个电表。如果没有这种超级手表的创新,我们的产品就不可能流行起来。
InfoQ:TDengine 做了哪些措施来确保高可靠性?
陶建辉:我们开发TDengine的时候,是基于一个前提:任何软件、硬件都不可信。换句话说,没有没有错误的软件,也没有没有问题的硬件。基于这个前提,我们需要构建一个允许数据丢失和硬盘更换的多副本分布式系统。做到什么程度了?支持热插拔,即使硬盘出现故障,也可以当场更换,数据库可以继续运行。
从可靠性角度来看,我们主要采用业界发布的几种NoSQL分布式数据库技术。当然,我们在工作中充分利用了物联网数据的特点。我们相信物联网一定会发展,也许五年之内,世界上90%的数据都会是物联网类型的数据。
InfoQ:TDengine与现有时序数据库产品相比有哪些优势?
陶建辉:TDengine的优点是安装包只有1.5MB,从下载到安装运行时间不到5秒。大数据软件的情况并非如此。现在你可以实现它。不过,相比现有的大数据产品,我们的产品只有两年的历史,因此InfluxDB的生态系统已经拥有很多数据采集接口和应用软件接口。我稍后会实现我的长期目标。
InfoQ:TDengine 提供高性能和易用性,但技术并不完美。 TDengine是否会在其他方面进行平衡或妥协?
陶建辉:我们会做出哪些妥协?首先,正如我之前强调的,我们不能专注于物联网数据。我们实际上在做的是物联网。这就是车联网。从技术角度来看,第二个妥协是使用结构化方法来实现。这意味着开发人员必须自己定义表结构。例如,InfluxDB和OpenTSDB都是NoSQL,不需要您定义模式,因此如果您熟悉这种方法,则可以使用TDengine。很难使用。但是,如果您始终使用MySQL 或Oracle 等结构化数据库,那就没问题。然而,在物联网和车联网行业,结构化方法不是问题。这是我们在准备开发之前就决定的。由于物联网数据是由硬件设备收集的,因此硬件的数据格式是固定的,除非更新固件,否则不太可能改变,而更新固件的可能性很小。互联网应用开发需要频繁的迭代和更新,而且变化太大,非常适合使用不需要结构定义的Schemaless。然而,物联网、车联网和工业互联网的数据格式可能不会永远更新,因此结构化并不是主要障碍。
InfoQ:现阶段,大多数公司已经搭建了自己的大数据平台,但切换到新的大数据平台并不现实。 TDengine能否与现有的大数据生态系统兼容?您对利用和推广TDengine有何看法?
陶建辉:基础软件的切换成本最终取决于公司是否面临真正的困难和挑战。目前,付费客户已经面临困难和挑战,并感到必须这样做。放弃平台上已有的大数据。那么困难和问题在哪里呢?第一,我们有涉足车联网的客户。他们已经拥有PB级数据,目前正在使用HBase层。顾客正在找他。你需要不惜一切代价找出答案,即使只需要几秒钟。但问题是,几秒钟内就找不到了。他必须解决这个问题并成为我们的客户。还有一个客户觉得成本太高,因为数据量已经很大了。例如,从最初需要10 台服务器开始,总拥有成本可以降低到20% 以下。现在一个舞台就足够了。 TDengine的存储非常好,以前10T的数据现在是1T。你应该改变它,因为它会为你节省很多钱。还有哪些类别呢?大数据系统,尤其是Hadoop系统,深入人心,但现实中,很多场景下,数据量并不大。但是,如果需要私有化部署Hadoop,可能需要安装HDFS、HBase、Kafka等。设定成本非常高。它的安装、部署、维护成本非常高,而不是机器成本。而如果你能提供一个统一、集成的解决方案,用一个小软件就能完成所有事情,并大大简化安装、部署和维护的难度,那么你的客户就会有很大的迁移动力。同时也为企业搭建自己的大数据平台提供了一些工具,比如数据迁移工具,以及为用户提供了一些现有接口的兼容性。和以前一样,只需更改IP 地址即可。
InfoQ:目前有客户在试验或实际业务中使用TDengine 吗?
陶建辉:我们跟几十个客户试了服务,最后有十多个客户付款了。其中包括来自车联网、电力、数控机床、智慧城市等各个行业场景的客户。
InfoQ:目前TDegine需要解决哪些问题?
陶建辉:应该没有问题,但是有一些地方需要不断改进。一是流计算还不够。比如我们目前支持简单的滑动窗口,但是未来我们需要把它变成事件驱动的流计算,还需要支持用户自定义的函数。凭借完善的用户定义函数和事件驱动,TDengine在物联网领域发挥着重要作用。数据清理和规则引擎现在可以完全由一套软件处理,从而无需许多工具。
InfoQ:对于TDengine下一步的研发重点和推广发展,您还有哪些进一步的计划?
陶建辉:今天我在这里宣布TDengine开源了。开源是我们的推广方式之一。当然,我们将越来越需要开源,尤其是核心代码。正如前面提到的,为什么TDengine 比其他产品快1 到20 倍?如果您不相信我,请阅读开源代码,您会发现它保证速度很快。在中国,很多用户希望使用开源软件,我们希望通过运营这个社区来打造我们的品牌,扩大我们的影响力。不过,也非常欢迎其他开发者加入并为这个项目做出贡献。例如,开源之后,可能会有人进来贡献代码。
另一方面,除了开源版本之外,我们还计划有企业版本。企业版是付费、可靠、可扩展、可升级的版本,提供专业的、一对一的服务。还有第三个版本,云服务版本,部署在阿里云、AWS等各种云平台上,企业可以直接购买我们的服务,按照使用量和使用时间收费。
InfoQ:现在TDengine 在GitHub 上正式开源了,它使用什么类型的开源许可证?
陶建辉:我们使用AGPL许可证。该开源许可证意味着,只要您使用我们的开源软件,它也必须是开源的。
InfoQ:作为一个开源产品,开源和商业盈利模式的问题是不可避免的,您如何看待TDengine开源后的盈利模式?
陶建辉:我们尽力维护开源技术,但和InfluexDB等竞争对手一样,我们的模式也差不多,有开源版、企业版、云版。 MongoDB也是如此,有企业版、社区版、云版。
InfoQ:但是,MongoDB 和云厂商之间实际上存在一些争议,您如何看待未来与云厂商的关系?
陶建辉:我们当然愿意和云厂商合作,但是我们的AGPL许可证不允许我们用它在云上免费提供服务。我们整个团队辛辛苦苦开发出来的代码不能直接用于收益,这是整个开源社区和云厂商之间最大的问题。例如,MySQL非常流行,但云厂商却从中赚了很多钱,却没有做出任何贡献。我们使用的AGPL许可证和MongoDB开发的服务器端公共许可证(SSPL)都是为了解决这个问题,包括Redis,最近大家都改变了开源协议就是为了避免这种情况。
InfoQ:TDengine目前与国内云厂商有合作吗?
陶振辉:还没有。但我的信号非常明确。他们不应该被允许免费使用我们的开源代码,他们必须为此做出贡献。我相信,随着我们的开发者社区和用户群的慢慢增长,有一天我们将能够进行协作。事实上,开源和云并不是天敌,而是可以互利共赢的。
InfoQ:那么您下一步计划如何培育开发者社区和TDengine 生态系统?
陶建辉:这是整个公司下一步的重点。我们将在GitHub、Twitter、微博、Stackoverflow 等上与开发者互动。我们还参加各种技术论坛。ArchSummit 架构师峰会和其他开发者大会还组织独特的活动,促进线上和线下社区的发展。
采访嘉宾介绍:
陶建辉,陶思数据创始人,1986年加入中国科学技术大学。 1994年,我前往印第安纳大学获得天体物理学博士学位。曾就职于摩托罗拉等公司;他加入芝加哥3Com公司,是全球顶尖的无线数据专家之一,曾从事2.5G、3G、WiFi等无线互联网研发工作。 2008年,他回到北京创立了禾信,专注于移动互联网IP推送和IP实时消息服务。 2010年,禾芯被台湾联发科收购。 2013年,她再次创业,创立了快乐妈咪,专注于母婴智能硬件和母婴健康服务。 2016年初,快乐妈咪被太平洋网络收购。桃丝数据成立于2017年5月,专注于时序空间大数据的实时高效处理(存储、查询、计算等)。其产品TDengine的性能优于其他行业基准10倍以上,并得到广泛应用。应用于物联网、车联网、工业大数据、金融等领域。
今日荐文
《思科回应上海裁员;韩企被爆用免费饮料换 GitHub 上的 star;苹果合同工定期监听 Siri 录音丨 Q 新闻》
点击“详情”阅读文章
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/85415.html