了解 Apache Spark 结构化流
Apache Spark 是用于大规模数据分析的分布式处理框架。 可在以下服务中使用 Microsoft Azure 上的 Spark:
- Microsoft Fabric
- Azure Databricks
Spark 可用于跨多个群集节点并行运行代码(通常使用 Python、Scala 或 Java 编写),使其能够高效地处理大量数据。 Spark 可同时用于批处理和流处理。
Spark 结构化流
若要在 Spark 上处理流数据,可以使用 Spark 结构化流库,该库提供一个应用程序编程接口 (API),用于引入、处理和输出来自永久数据流的结果。
Spark 结构化流在 Spark 中普遍存在的名为数据帧的结构上构建而成,该结构封装一个数据表。 你可使用 Spark 结构化流 API 将数据从实时数据源(如 Kafka 中心、文件存储或网络端口)读取到持续填充流中的新数据的“无边界”数据帧中。 然后,在数据帧上定义一个查询,用于选择、投影或聚合数据 - 通常是在临时窗口中。 查询的结果生成另一个数据帧,可保存该数据帧以供分析或进一步处理。
需要将流式处理数据合并到基于 Spark 的数据湖或分析数据存储中时,Spark 结构化流式处理是实时分析的最佳选择。
注意
有关 Spark 结构化流的详细信息,请参阅 Spark 结构化流编程指南。
Delta Lake
Delta Lake 是一种开源存储层,为数据湖存储添加了对事务一致性、架构执行和其他常见数据仓库功能的支持。 此外,它还统一了流数据和批数据的存储,可在 Spark 中用于定义批处理和流处理的关系表。 当用于流处理时,Delta Lake 表可用作针对实时数据的查询的流源,或用作数据流将写入到的接收器。
Microsoft Fabric 和 Azure Databricks 中的 Spark 运行时包括对 Delta Lake 的支持。
当你需要在关系模式后面的数据湖中抽象批处理和流处理数据以进行基于 SQL 的查询和分析时,Delta Lake 与 Spark 结构化流式处理相结合是一个很好的解决方案。
注意
有关 Delta Lake 的详细信息,请参阅湖屋和 Delta Lake 表。