返回

基于 Flink x TiDB,智慧芽打造实时分析新方案

后端

随着互联网的飞速发展,数据量激增,实时分析成为企业数字化转型的重要需求。智慧芽作为一家全球领先的知识产权服务提供商,也面临着实时分析的挑战。

智慧芽数据仓库架构师曲明星在 Flink Forward Asia 2021 实时数仓专场分享了基于 Flink x TiDB 构建实时分析新方案的实践经验。

智慧芽实时分析面临的挑战

  • 数据量大,种类多: 智慧芽拥有庞大的数据量,包括专利数据、商标数据、文献数据、法律数据等,数据种类繁多,结构复杂。
  • 实时性要求高: 智慧芽的客户需要实时了解知识产权信息,以便做出快速决策。
  • 高并发: 智慧芽平台每天有数百万次的访问量,需要支持高并发查询。
  • 成本控制: 智慧芽需要在有限的成本下构建实时分析系统。

Flink x TiDB 方案的优势

  • 高吞吐量: Flink 是一个高吞吐量的流处理引擎,可以实时处理大量数据。
  • 低延迟: TiDB 是一个分布式关系型数据库,可以提供毫秒级的查询延迟。
  • 高可用: Flink 和 TiDB 都具有高可用性,可以保证系统稳定运行。
  • 易于扩展: Flink 和 TiDB 都可以轻松扩展,以满足不断增长的业务需求。
  • 成本低: Flink 和 TiDB 都开源免费,可以帮助企业节省成本。

整体架构设计

智慧芽的实时分析系统采用 Flink x TiDB 方案,整体架构如下:

整体架构图

  • 数据源: 数据源包括各种各样的数据源,如专利数据库、商标数据库、文献数据库、法律数据库等。
  • 数据采集层: 数据采集层负责从数据源中采集数据,并将其发送到消息队列。
  • 消息队列: 消息队列负责存储数据,并将其传递给数据处理层。
  • 数据处理层: 数据处理层负责处理数据,并将其存储到 TiDB 中。
  • 实时查询层: 实时查询层负责提供实时查询服务。

关键技术点

  • 数据采集: 智慧芽使用 Flink CDC(Change Data Capture)组件从数据源中采集数据。Flink CDC 组件可以实时捕获数据源中的变化,并将其发送到消息队列。
  • 数据处理: 智慧芽使用 Flink SQL 对数据进行处理。Flink SQL 是一种流处理语言,可以方便地对数据进行各种操作,如过滤、聚合、关联等。
  • 数据存储: 智慧芽使用 TiDB 存储数据。TiDB 是一个分布式关系型数据库,可以提供毫秒级的查询延迟。
  • 实时查询: 智慧芽使用 TiDB 提供实时查询服务。TiDB 支持多种查询引擎,如 SQL、MySQL 协议、RESTful API 等,可以满足各种查询需求。

应用实践

智慧芽的实时分析系统已应用于多个场景,如:

  • 专利预警: 智慧芽的专利预警系统可以实时监控专利数据,并及时向客户发出预警信息。
  • 商标监控: 智慧芽的商标监控系统可以实时监控商标数据,并及时向客户发出监控信息。
  • 文献检索: 智慧芽的文献检索系统可以实时检索文献数据,并及时向客户提供检索结果。
  • 法律分析: 智慧芽的法律分析系统可以实时分析法律数据,并及时向客户提供分析结果。

未来发展

智慧芽计划在未来继续优化实时分析系统,并将其应用于更多场景。智慧芽还计划与 Flink 和 TiDB 社区合作,共同推动实时分析技术的发展。

结语

智慧芽基于 Flink x TiDB 构建的实时分析新方案,解决了智慧芽实时分析面临的挑战,为智慧芽提供了强大的实时分析能力。智慧芽的实时分析系统已应用于多个场景,并取得了良好的效果。智慧芽计划在未来继续优化实时分析系统,并将其应用于更多场景。智慧芽还计划与 Flink 和 TiDB 社区合作,共同推动实时分析技术的发展。