我们为什么选择Scale-Out数据仓库进行实时分析
工业:人工智能
作者:
- 曲明星(PatSnap数据仓库团队建筑师)
- 梁丽(PatSnap数据仓库团队高级DBA)
Transcreator:Caitin陈;编辑:汤姆政府高级官员
Patsnap.是一个集1.5亿+专利数据记录、1.7亿+化学结构数据记录、数千条财经新闻、科技文献、市场报告、投资信息记录于一体的全球专利检索数据库。我们的用户可以搜索、浏览和翻译专利,并生成专利分析报告。我们帮助50多个国家的10,000多名客户做出更好的创新决策。
随着业务的发展,我们的数据规模迅速增长。之前,我们使用Segment + Amazon Redshift数据分析架构,但它提供的数据并不可靠。我们需要一个数据分析工具来提供更多的当前数据。在我们比较了多个解之后,我们选择了Tidb.+Apache Flink实时数据仓库解决方案。它是快速和水平的可扩展性。现在,我们可以在几分钟内执行数据分析,并制作更快,更聪明的业务决策。
在这篇文章中,我们将分享为什么我们采用TIDB + Flink,我们如何使用此数据仓库以及它带来的好处。
我们的痛苦
随着我们业务的发展和用户的快速增长,在业务运营过程中,我们非常依赖实时数据分析和结果报告来分析用户行为。我们需要实时的市场数据,特定场景的运营数据,以及流量和服务分析。
最初,我们使用Segment + Amazon Redshift数据分析架构,只构建了运营数据存储(ODS)层。我们无法控制数据写入规则和模式。此外,我们需要为ODS编写复杂的提取-转换-加载(ETL)作业脚本。为了完成来自上层应用程序的数据请求,我们需要根据应用程序需求计算各种指标。红移存储了大量的数据,计算数据速度很慢。这降低了对外服务效率。
为什么选择TiDB + Flink实时数据仓库
在我们比较多种解决方案后,我们决定使用TIDB + Flink实时数据仓库解决方案来提高我们的数据分析能力。
Tidb.是一个开源、分布式、混合事务/分析处理(HTAP)数据库。它是在线事务处理(OLTP)和在线分析处理(OLAP)工作负载的一站式解决方案。TiDB的架构集成了行存储和列存储。它的存储使用分离的节点,以确保OLTP和OLAP工作负载不会相互干扰。
Apache Flink是一个低延迟、高吞吐量、统一流和批处理的大数据计算引擎。它广泛应用于对实时计算要求高的场景,并提供精确一次的语义。
将TIDB和Flink与实时数据仓库结合起来的这些优点:
- 速度快。您可以以秒为单位处理流数据并执行实时数据分析。
- 水平可扩展性。您可以通过向Flink和TiDB添加节点来提高计算能力。
- 高可用性。使用TiDB,如果一个实例失败,集群服务不受影响,数据仍然完整和可用。Flink支持针对作业或实例的多种备份和恢复措施。
- 学习和配置成本低。TiDB与MySQL协议高度兼容。在Flink 1.11中,您可以使用Flink SQL语法和强大的连接器来编写和提交任务。
我们如何使用tidb + flink
当我们将Segment + Redshift架构替换为Kinesis + Flink + TiDB时,我们发现我们不需要在数据库中构建ODS层,而只需要在Amazon Simple Storage Service (S3)存储中。
作为预先计算单元,Flink为应用程序构建了Flink ETL作业。这完全控制数据保存规则并定制模式;也就是说,它只清理应用程序侧重于的度量标准,并将它们写入TIDB以进行分析和查询。
我们在TiDB之上构建了三个层:数据仓库细节(DWD)、数据仓库服务(DWS)和分析数据存储(ADS)。这些层提供应用程序统计信息和列表需求。它们基于用户、租户、区域和应用程序指标,以及以分钟或天为单位的时间窗口。上层应用程序可以直接使用构造的数据,并在几秒钟内执行实时分析。
这个实时分析平台架构真正实现实时数据服务.我们使用它来分析和跟踪用户行为,并实时分析租户行为。为我们的业务运营提供实时数据支持。
我们如何受益于TiDB + Flink
采用TiDB + Flink架构后,我们发现:
- 入站数据、入站规则和计算复杂度大大降低。
- 查询,更新和写入要快得多。
- 合理的数据分层大大简化了基于tidb的实时数据仓库,使开发、扩展和维护更加容易。我们对复杂报表的查询性能显著提高。在许多应用场景中,查询的数据通用性大大提高。以前,在生成一些数据之后,需要花费一天时间来检索用于业务的查询。但现在,它们几乎是实时分析。
- 此解决方案满足不同特设查询的要求,我们不需要等待Redshift预编译。
如果你想知道更多关于我们故事的细节或有任何问题,欢迎加入Slack上的TiDB社区并发送您的反馈。