sharetwitterlinkedIn

StreamNative 开源 Delta Lake Sink Connector for Apache Pulsar

September 13, 2022
head img

本文翻译自 StreamNative 博客《Announcing the Delta Lake Sink Connector for Apache Pulsar》,作者陈航,StreamNative 主管工程师、Apache Pulsar PMC 成员。

Apache Pulsar™ 和 Lakehouse 这两种高可用且可扩展的技术天然适配,可以广泛地应用于各种数据场景。StreamNative 正式宣布开源 Apache Pulsar + Delta Lake 连接器,为实时系统和 Lakehouse 系统提供 API。Pulsar + Delta Lake 连接器能够为数据分析和 ML/AI 构建简单、开放和多云的实时工程解决方案。

将 Lakehouse 与 Pulsar 技术相结合

Lakehouse 技术使应用数据和事件易于处理,能够帮助企业将数据进行可操作分析。Lakehouse 将数据湖功能与事务、高级数据管理实用程序相结合,用户可以将其与现有系统集成,在一个平台中支持传统的 BI、批处理和 AI/ML 等场景。然而,Lakehouse 需要能够实时摄取和激活数据。

Pulsar 是一个实时数据处理平台,旨在解决复杂的消息传递工作负载并简化端到端数据管道的构建流程。它提供开箱即用的连接器与无服务器功能,且支持 Python、Java 和 Go 等多种语言,非常适合 Lakehouse 技术。

StreamNative 很高兴地宣布开源 Delta Lake 连接器将这两种强大的技术结合。Delta Lake 连接器能够解决最小的数据延迟问题,并通过无缝的单一 API 轻松地将实时计算结果交付给 Lakehouse。StreamNative 旨在打造全面的 Pulsar 生态系统以作为通用且可持续的事件计算中心,实现更高的生产力和创新,该连接器便是其中的重要一环。

Delta Lake Sink Connector 简介

Delta Lake Sink Connector 是 Pulsar IO 连接器,它从 Apache Pulsar 主题中提取数据并将数据持久化到 Delta Lake。

Delta Lake Sink Connector 的诞生

在过去的 5 年中,流数据的兴起和对降低数据延迟的需求对数据湖的要求达到了极致。因此,Lakehouse 架构(由 Databricks 提出,并通过 Delta Lake、Apache Hudi 和 Apache Iceberg 等技术实现)已得到迅速采用。Lakehouse 架构支持数据流式摄取,提供处理 Schema 和 Schema 演变的多种工具,改进了元数据管理和开放标准,以简化跨数据处理系统的集成。

Apache Pulsar 是一个用于实时工作负载的分布式开源 pub-sub 消息流平台,与 Lakehouse 架构天然搭配。Apache Pulsar 提供了一个统一的平台,可以在一个底层系统中对数据进行队列、分析和传输。因此,将 Apache Pulsar 与 Lakehouse 集成可以简化数据生命周期管理和数据分析。

StreamNative 构建并开源了 Apache Pulsar 的 Delta Lake Sink Connector。Delta Lake 用户可连接来自 Pulsar 的消息流并使用更多强大的功能,同时避免当系统或隐私要求之间存在内在差异时出现的连接问题。

该连接器通过与 Pulsar 完全集成(包括其无服务器功能、单条消息处理和事件流处理)来解决这个问题。它提供了一种低代码解决方案,具有多种开箱即用的功能,例如多租户、跨地域复制、直连到终端用户的移动或物联网客户端的协议等。

为何使用 Delta Lake Sink Connector

Delta Lake 和 Apache Pulsar 之间的集成有三个关键优势:

  • 简单:无需任何用户代码即可将数据从 Apache Pulsar 快速移动到 Delta Lake。
  • 高效:减少配置数据层的时间。用户有更多时间来通过有效的方式从实时数据中挖掘最大的商业价值。
  • 灵活:支持不同的运行模式(独立或分布式)。用户可以构建响应式数据管道来实时满足业务和运营需求。

开始使用 Delta Lake Sink Connector

准备工作

首先,运行 Apache Pulsar 集群。

  1. 运行 Pulsar 服务。通过运行 $PULSAR_HOME/bin/pulsar standalone,可以快速运行 Pulsar 集群。更多信息可参阅文档
  2. 设置 Delta Lake Sink Connector。从 Releases 页面下载连接器,然后将其移动到 $PULSAR_HOME/connectors

Apache Pulsar 提供了 Pulsar IO 特性来运行连接器。按照以下步骤启动并运行连接器。

配置连接器

  1. 创建一个名为 delta-lake-sink-config.json 的配置文件,将 Apache Pulsar 的 public/default/test-delta-pulsar 主题消息发送到位置为 s3a://test-dev-us-west-2/lakehouse/delta_sink 的 Delta Lake 表。

     {
        "tenant":"public",
        "namespace":"default",
        "name":"delta_sink",
        "parallelism":1,
        "inputs": [
          "test-delta-pulsar"
        ],
        "archive": "connectors/pulsar-io-lakehouse-{{connector:version}}.nar",
        "processingGuarantees":"EFFECTIVELY_ONCE",
        "configs":{
            "type":"delta",
            "maxCommitInterval":120,
            "maxRecordsPerCommit":10000000,
            "tablePath": "s3a://test-dev-us-west-2/lakehouse/delta_sink",
            "hadoop.fs.s3a.aws.credentials.provider": "com.amazonaws.auth.DefaultAWSCredentialsProviderChain"
        }
    }
    
  2. 运行连接器:

    $PULSAR_HOME/bin/pulsar-admin sinks localrun --sink-config-file /path/to/delta-lake-sink-config.json
    

当你向 Apache Pulsar 的 public/default/test-delta-pulsar 主题发送消息时,此消息将持久保存到 Delta Lake 表中,位置为 s3a://test-dev-us-west-2 /lakehouse/delta_sink

更多信息可参阅 StreamNative Hub文档与演示视频

参与项目

  • 下载并试用连接器。参考 ReadMe 文件运行连接器。
  • Delta Lake Sink Connector 源代码托管在 StreamNative GitHub 代码仓库中。如果你在使用过程中发现问题或者提出建议,欢迎提 issue 讨论或者提 PR 参与贡献。你也可以在论坛中与我们讨论。
© 北京原流科技有限公司Apache、Apache Pulsar、Apache BookKeeper、Apache Flink 及相关开源项目名称均为 Apache 软件基金会商标。条款隐私