Flink 理解

前言 在大数据系统的发展过程中,一直存在一个核心问题: 数据越来越多,但处理速度越来越慢。 传统的数据处理方式,大多数是 离线处理。 例如: 每天晚上跑一次任务: * 统计用户行为 * 计算广告数据 * 生成报表 * 分析业务指标 这种方式叫: Batch Processing(批处理) 典型工具例如: * Hadoop MapReduce * Hive * Spark 这些系统适合处理 海量历史数据。 但是随着互联网的发展,很多业务开始需要: 实时数据处理。 例如: * 实时风控 * 实时推荐 * 实时监控 * 实时广告竞价 * 实时日志分析 这些场景有一个共同特点: 数据必须“边产生边处理”。 不能等到第二天。 于是就出现了一个新的计算模式: Stream Processing(流式计算)。 为什么需要 Flink 早期实时计算系统主要依赖: * Storm * Spark Streaming 但这些系统都有一些问题。 例如:
4 min read

阿里云实时数仓

前言 使用阿里云现有的产品生态体系,可以解决企业自建集群复杂,难维护,部署成本高的问题。基于这些情况我们可以使用目前阿里云已有的产品进行开通,来满足企业业务需求。 目前面临痛点 1、底层数据库无法承载海量数据,根据后续企业发展,10T,100T,以及PB,EB数据量无法承载,以及无法支撑快速查询响应,数据分析以及数据挖掘等工作。 2、实时计算性能存在一定不足,需要通过可靠计算引擎进行毫秒级实时计算,并且数据质量可靠,可控,可遥测。 3、数据模型调整效率不够快速,不能够非常灵活的调整数据模型结构,快速的提供业务场景报表需求。 应用场景 * 基于Flink和规则引擎的实时风控解决方案 * 基于实时计算(Flink)与高斯模型构建实时异常检测系统 * 基于实时计算(Flink)打造一个简单的实时推荐系统 实时数仓 总体数据开发流程 数据拉取->数据缓冲->实时计算->下沉落库 组件选型 Flink 阿里云实时计算 Flink 版阿里云基于Apache Flink构建的企业级、高性能实时大数据处理系统,由Apache Fl
8 min read

Dinky

前言 Dinky 是一款开源的 Flink 作业管理与开发平台,整体设计轻量、易用,能够统一管理多个 Flink 集群。 开发者可以通过 Web 控制台直接在线编写和调试 Flink SQL,并在完成开发后一键提交到指定的 Flink 集群执行作业,大大降低了实时计算任务的开发和运维成本。 官网地址 https://github.com/DataLinkDC/dinky 功能描述 Dinky 内置 整库同步能力,可以将微服务系统中的数据库表数据同步到实时数仓,从而有效解决微服务架构下的数据孤岛问题。 同时,Dinky 支持 多版本 Flink SQL 的开发与管理,并提供 数据血缘分析能力,帮助开发者更清晰地了解数据流向及依赖关系,便于问题排查与系统维护。 整体来看,Dinky 在实时数据开发、任务管理以及数据治理方面的功能较为完善,是一款非常实用的 Flink 数据开发平台,值得在实时数仓项目中进行使用和推广。
2 min read

Canal 组件

前言 Canal 是阿里巴巴开源的一款 基于 MySQL Binlog 的数据实时订阅与消费组件,常用于实现数据库变更数据捕获(CDC,Change Data Capture)。 在实际业务场景中,数据库中的数据变更往往不仅仅用于业务读写,还可能需要同步到其他系统,例如: * 实时数据同步(数据库 → 数据仓库) * 数据变更推送到 MQ(Kafka / RocketMQ) * 构建实时数据分析或监控系统 * 搜索引擎数据同步(如 Elasticsearch) 为了实现这些能力,Canal 通过 模拟 MySQL Slave 的方式订阅 Binlog 日志,解析出数据库的增删改操作,并将这些变更数据实时推送给下游消费系统,从而实现数据的准实时同步。 目前市面上常见的 CDC 组件主要包括: * Canal * Debezium * Flink CDC Canal 目前只支持MySQL数据库。5.x
2 min read

数据湖 Iceberg

目前比较流行的开源数据湖 Iceberg。 数据湖是一个用于存储结构化和非结构化数据的集中式数据存储库,它可以存储各种类型的数据,包括传统的关系型数据、半结构化数据、非结构化数据等。数据湖的主要特点是具有高度的灵活性和可扩展性,能够方便地进行数据的存储和处理。 相比之下,传统的数据仓库主要用于存储结构化数据,它们通常采用关系型数据库进行存储和管理。数据仓库的主要特点是具有高度的规范化和结构化,能够保证数据的准确性和一致性。但是,数据仓库的缺点在于它们不够灵活,无法存储和处理非结构化或半结构化数据,而且难以进行扩展和升级。 数据湖相比数据仓库的优势主要有以下几点: 1. 存储不受限制:数据湖可以存储各种类型的数据,包括传统的结构化数据、半结构化数据、非结构化数据等。这使得数据湖更加灵活,适用于不同类型和规模的数据存储需求。 2. 处理速度更快:数据湖通常采用分布式存储和计算技术,能够实现高速数据处理和分析。而传统的数据仓库则往往需要进行多次数据转换和计算,导致处理速度较慢。 3. 成本更低:数据湖通常采用开源技术,如Hadoop、Spark等,成本相对较低,而传统的数据仓库
4 min read

Flink CDC 组件

背景 Flink CDC(Change Data Capture)是 Apache Flink 生态中的一个重要组件,用于实时捕获数据库中的数据变更,并将这些变更转换为数据流进行处理。在现代数据架构中,CDC 技术被广泛用于构建实时数据同步、实时数据仓库以及事件驱动系统。 与传统的数据同步方式(如定时全量同步)相比,CDC 能够通过读取数据库的 Binlog / WAL 等变更日志 来捕获数据变化,从而实现低延迟、低侵入的数据同步。 什么是 CDC CDC(Change Data Capture)即 变更数据捕获,它的核心思想是: 当数据库中的数据发生 INSERT / UPDATE / DELETE 操作时,将这些变化记录下来,并实时传递到下游系统。 在实际的数据架构中,CDC 常用于: * 数据库 → 数据仓库(实时数仓) * 数据库
3 min read

Kettle工具使用

最近使用了Kettle这款ETL工具、对于多数据源进行数据之间的同步,迁移,转换,修正等功能进行了解与使用。 Kettle-水壶、顾名思义就是把各种数据源中的表数据都当做水流、从多个水流汇总、分流、解析的工具。它是一款开源的数据集成工具,它提供了丰富的数据处理功能,包括数据抽取、转换和加载(ETL)等。Kettle的核心是一个基于图形化界面的设计工具,用户可以通过简单的拖拽和连接操作来构建数据处理流程。Kettle还提供了强大的数据处理引擎,支持多线程和分布式处理,可以高效地处理大规模数据。同时,Kettle还支持多种数据来源和目标,包括关系型数据库、文件、Web服务等,可以方便地与各种数据源进行集成。Kettle还提供了丰富的插件机制,用户可以自定义开发插件,扩展Kettle的功能。总之,Kettle是一款功能强大、易用性好、可扩展性强的数据集成工具,广泛应用于数据仓库、商业智能、数据分析等领域。 无需任何编程、只需要手动拖动配置组件。即可完成复杂的数据处理功能。Kettle对于CDC层面来说,是基于查询的方式进行数据的读取与转换,适合一次性的数据迁移与转换。不能用于实时性要求较
3 min read

随心笔记

技术无止境 创新不停驻