暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文] SaaS Galore:将 CockroachDB 与 Confluent Kafka、Fivetran 和 Snowflake 集成

原创 通讯员 2022-04-20
1087

动机

本教程试图解决的问题是 CockroachDB 缺少本地 Fivetran 连接器。我的客户基于 Fivetran 构建了他们的分析管道。鉴于没有原生集成,他们的下一个最佳猜测是设置 Postgres 连接器:

CockroachDB 与 PostgreSQL 线路兼容,但假设它是 1:1 是不正确的。让我们尝试配置连接器:

最终,您会遇到错误 java.lang.NumberFormatException: For input string: "CCL"。

问题源于 Fivetran 解析SELECT VERSION()查询输出的方式。在 CockroachDB 中,输出是CockroachDB CCL v21.2.5 (x86_64-unknown-linux-gnu, built 2022/02/07 21:01:07, go1.16.6),而在 PostgreSQL 中,它是PostgreSQL 14.2 on x86_64-apple-darwin21.3.0, compiled by Apple clang version 13.0.0 (clang-1300.0.29.30), 64-bit或某个版本。有一个支持 Fivetran 的开放线程请求 CockroachDB连接器同时,我有一个问题要解决,直观地,我建议利用 CockroachDB Change Data Capture我们快速查看了可用的 Fivetran 连接器,你瞧,Kafka 和 S3 连接器都可用。我有一个潜在的解决方案。我的目标是配置 CockroachDB CDC 输出到 Kafka,然后 Fivetran 会选择主题并将它们传递给 Snowflake。让我们看看这一切是如何发生的。

本教程中讨论的所有产品都可作为 SaaS 使用。我将尝试使用所有免费套餐或试用服务。请注意,CockroachDB CDC 今天不提供免费套餐。您必须使用专用实例,我正在使用CockroachDB Dedicated免费套餐中的企业 CDC 是我们正在考虑的事情。敬请关注。


高级步骤

  • 创建和配置 Confluent Cloud Kafka 集群。
  • 创建并配置 Cockroach Cloud 专用集群。
  • 创建和配置 Snowflake 实例。
  • 为 Confluent Kafka 创建和配置 Fivetran 连接器。
  • 为 Snowflake 创建和配置 Fivetran 目标。
  • 核实。

分步说明

创建和配置 Confluent Cloud Kafka 集群

使用 Confluent Cloud 创建一个帐户,然后创建一个集群。

创建集群:基本

  • 地区/专区:谷歌云 
  • 地区:us-east4 
  • 可用性:单区
  • 继续
  • 集群名称:cluster_0启动集群

安装 Confluent CLI

curl -sL --http1.1 https://cnfl.io/cli | sh -s -- latest
export PATH=$(pwd)/bin:$PATH 


使用Confluent CLI登录

confluent login --save


列出可用环境并设置活动环境上下文。

confluent environment list
confluent environment use <envid>


列出当前 Kafka 集群并设置活动集群上下文。

confluent kafka cluster list
confluent kafka cluster use <clusterid>


创建 API 密钥、机密和存储以通过 CLI 与环境无缝交互。

confluent api-key create --resource <clusterid>
confluent api-key store --resource <clusterid> --force


获取 Kafka 端点。我们在设置 CockroachDB CDC 时将需要它。

confluent kafka cluster describe <clusterid>


我将在本教程中使用内置的 TPC-C 工作负载,并将根据 CockroachDB 表名在 Kafka 中主动创建一些主题。或者,CockroachDB CDC 可以创建主题。Kafka 集群必须将auto.create.topics.enable设置设置true为才能正常工作。

我将创建一个跟踪多个表的更改提要。我将使用的表是customerdistricthistory

confluent kafka topic create customer --partitions 6
confluent kafka topic create district --partitions 6
confluent kafka topic create history --partitions 6


创建主题后,我们可以启动 Kafka 消费者来正确验证数据流。

confluent api-key use <API KEY> --resource <clusterid>
confluent kafka topic consume district


我们只需要与单个消费者进行验证。如果您好奇,您可以打开其他几个终端窗口并使用这些主题。

confluent kafka topic consume customer
confluent kafka topic consume history


我们已经完成了 Confluent Cloud 部分。现在,让我们切换到 CockroachDBD 来更改提要配置。

创建和配置 Cockroach Cloud 专用集群

给定一个专用集群,我们需要连接到集群并启用更改源。

SET CLUSTER SETTING kv.rangefeed.enabled = true;


此时,我们可以开始写入数据并让 CDC 将其推送到 Kafka。我将使用Cockroach 二进制文件内置的TPC-C工作负载。


cockroach workload fixtures import tpcc --warehouses=10 'postgresql://user@cluster.cockroachlabs.cloud:26257/tpcc?sslmode=verify-full&sslrootcert=/path/certs/cluster-ca.crt'


cockroach workload run tpcc --warehouses=10 --ramp=3m --duration=1h 'postgresql://user@cluster.cockroachlabs.cloud:26257/tpcc?sslmode=verify-full&sslrootcert=/path/certs/cluster-ca.crt'


此时,我们有一个 Kafka 消费者终端等待有关该district主题的传入消息。我有一个 TPC-C 工作负载终端窗口打开,在 CockroachDB 上生成工作负载。我还打开了另一个 CockroachDB SQL 客户端窗口以设置更改提要。

我正在使用以下 SQL 语法在三个表上创建更改源:

use tpcc;
CREATE CHANGEFEED FOR TABLE customer, district, history INTO "kafka://confluentcluster.confluent.cloud:9092?tls_enabled=true&sasl_enabled=true&sasl_user=<APIKEY>&sasl_password=<url-encoded secret>&sasl_mechanism=PLAIN" WITH updated, key_in_value, format = json;


sasl_password是来自 Confluent Cloud 的 url 编码的秘密。我使用此服务对秘密进行 url 编码。

此时,我们有一个有效的更改提要,您的 Confluent 消费者应该开始显示生命迹象。

以下是我的终端窗口,从上到下:Kafka 消费者、具有更改提要的作业 ID 的 CockroachDB SQL 客户端,以及在底部生成负载的活动 TPC-C 工作负载窗口。


我们现在可以为目标仓库设置 Snowflake。

创建和配置雪花实例

创建一个雪花帐户,导航到数据库并创建一个目标数据库。

雪花目的地数据库

我称我的为“fivetran”。

我们正处于最后阶段,我们现在可以切换到 Fivetran 并连接这些点。

为 Confluent Kafka 创建和配置 Fivetran 连接器

使用 Fivetran 创建一个帐户。

  • 添加连接器:Confluent Cloud
  • 目标架构:confluent_cloud
  • 消费群:cockroachdb
  • 服务器:yourcluster.confluent.cloud :9092
  • 消息类型:json
  • 同步类型:打包
  • 安全协议:SASL
  • API Key:您原来的 Confluent Cloud API 密钥
  • API Secret:你原来的 Confluent Cloud 密码
  • 保存并测试
  • 选择您的数据
  • 开始初始同步

为 Confluent Kafka 创建和配置 Fivetran 连接器

Confluent Cloud 连接测试通过

为 Snowflake 创建和配置 Fivetran 目标

  • 添加目的地
  • 雪花
  • 托管youraccount.snowflakecomputing.com
  • 端口 443
  • 使用您的雪花用户
  • 数据库tpcc
  • 验证密码

雪花连接测试通过

核实

Fivetran 完成同步后,您可以导航到 Snowflake 并在 Databases/Fivetran/confluent_cloud/Tables/District/Data Preview 下查看您的数据。


文章来源:https://dzone.com/articles/saas-galore-integrating-cockroachdb-with-confluent

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论