DoubleCloud 即将停止服务。迁移到 ClickHouse,并享受限时免费迁移服务。立即联系我们 ->->

博客 / 工程

宣布 ClickHouse Cloud 的 Fivetran 目标

author avatar
Ryadh Dahimene
2024年4月25日

我们很高兴地宣布 ClickHouse Cloud 的 Fivetran 目标现已可用。借助 Fivetran 全面的连接器系列,用户可以快速加载来自 500 多个来源的数据。

此目标目前处于公开预览阶段,是 合作伙伴构建计划 最早的贡献之一,使用了最近发布的 Fivetran SDK。如果您想尝试此目标,请观看我们为这篇博文准备的简短视频,或访问此处提供的全面文档。

我们欢迎您对目标的初始版本提供反馈和贡献,该版本的代码已在 Apache 2.0 许可证下开源。

对于那些渴望尝试新目标的用户,我们将在下面讨论一些关于实现和理想用例的重要事项。

fivetran-1.png

为什么选择 Fivetran?

Fivetran 是一家领先的数据集成技术提供商,提供自动化解决方案来简化跨各种来源和目标的数据管道。其平台旨在通过提供强大的、完全托管的连接器来简化数据提取和加载过程,这些连接器可以自动适应模式和 API 更改,确保数据完整性,而无需用户进行持续维护。Fivetran 支持 500 多个数据源,从数据库和 SaaS 应用程序到云存储,是希望将其数据集中到 ClickHouse 中进行分析的企业的理想选择。

这个新的 ClickHouse 目标能够无缝自动化数据摄取,直接从 Fivetran 支持的广泛系统中摄取数据到 ClickHouse。用户可以利用 ClickHouse 进行分析,而无需手动管理数据管道。这种集成大大减少了数据工程团队的工作量,并允许分析师专注于从实时数据中获取可操作的见解。

我什么时候应该使用这个目标?

我们建议在需要将适量业务数据从 应用程序 加载到 ClickHouse 中的用例中使用此目标,这些应用程序在其他情况下需要自定义集成代码,例如 Salesforce、Slack、Zendesk。这些应用程序通常具有复杂的 API,需要自定义集成代码才能与 ClickHouse 同步,同时支持处理插入、更新和删除的能力。借助 ClickHouse 目标,Fivetran 会处理此复杂性,并将其呈现为几个简单的点击:非常适合希望将 Zendesk 工单、Slack 聊天或 Salesforce 账户加载到 ClickHouse 中,以便在他们首选的 BI 工具中实时查询和可视化的业务团队。

在实现目标时,我们仔细考虑了支持更新和删除操作的必要性,并使用 ClickHouse 功能来确保高效处理。因此,您可能还想探索将 Fivetran 用于较小的更改数据捕获 (CDC) 用例。

fivetran-2.png

对于来自对象存储和 Kafka 等来源的 TB 和 PB 级别的更大数据量,我们建议使用现有的 ClickHouse 工具,例如 ClickHouse Kafka Connect 和 ClickPipes(适用于 Cloud 用户)。这些工具通常更具成本效益,并且专门设计用于批量和增量传输已采用结构化格式的大量数据。

关键设计决策

Fivetran SDK 需要目标数据源执行若干行为。其中一些导致了关键的设计决策,并且目标在初始版本中仅支持 ClickHouse Cloud。

  • 需要顺序一致性—Fivetran 支持各种连接器源,其中许多本质上支持更新和删除事件的概念。这些需要由目标处理。Fivetran 并不保证更新将包含完整事件。我们考虑为此问题使用轻量级更新,但我们认为这将难以处理包含大量更新的工作负载。因此,我们决定采用一种方法,即目标在重新插入更新副本之前先从 ClickHouse 读取行的完整内容。

    由于目标可能连接到 ClickHouse 集群前面的代理或负载均衡器,因此我们需要确保读取顺序一致,即如果最近将一行插入到一个节点中,则对同一行的读取必须始终来自其他节点(无陈旧读取)。为此,我们使用设置 select_sequential_consistency=1。对于 ClickHouse Cloud 的 SharedMergeTree (SMT) 引擎,此操作比 ReplicatedMergeTree 轻量级得多,并且可以可靠地扩展。对于 ReplicatedMergeTree,这需要启用 仲裁插入(在 SMT 中,插入默认情况下为仲裁插入),并且会产生大量开销。

  • 高效处理更新和删除 - 为了处理更新和删除,Fivetran 目标使用 ReplacingMergeTree(更具体地说是 SharedReplacingMergeTree)。这是在 ClickHouse 中 处理此工作负载的最佳方法。为了确保分析查询返回准确的计数,用户需要确保表名包含 FINAL 后缀。

  • Go 实现 - 虽然 Fivetran 提供了多个 SDK,但我们选择 Golang 作为实现语言。 此语言的客户端 已成熟,并且这与我们内部为 ClickPipes 等产品使用此语言的现有做法相一致。

由于目标所依赖的 SharedMergeTree 仅限于 ClickHouse Cloud,因此当前的实现无法与 ClickHouse OSS 一起使用。由于 Fivetran 仅是一项 SaaS 服务,因此我们预计不会有太多需要 OSS 支持的用例。但是,代码是宽松许可的,我们欢迎您为有效支持 ReplicatedMergeTree 做出贡献。有兴趣添加支持的人员请参阅 此问题

一个简单的示例

为了展示新的目标,我们演示了如何从 Zendesk 加载数据。Zendesk 工单代表了大量有用的业务分析数据。虽然这传统上需要用户熟悉 Zendesk API 和 ClickHouse 摄取,但我们展示了 Fivetran 如何在几个简单的点击中实现这一点!


目标包含内置文档,供希望获得更全面体验的用户使用。或者,您可以查看由 Fivetran 托管的广泛 文档

结论

Clickhouse 的新 Fivetran 目标现已在公开预览中可用,以帮助加载复杂的数据源。立即试用此目标,并在 存储库中提供您的反馈

分享此帖子

订阅我们的时事通讯

随时了解功能发布、产品路线图、支持和云产品!
正在加载表单...
关注我们
Twitter imageSlack imageGitHub image
Telegram imageMeetup imageRss image