AutoMQ生态集成 - 从 AutoMQ Kafka 加载流数据到 Timeplus

原创
2023/12/21 16:57
阅读数 74

从 AutoMQ Kafka 加载流数据到 Timeplus

Timeplus 是一个以流处理为首要功能的数据分析平台。它利用开源流式数据库Proton,提供强大的端到端能力,帮助团队快速、直观地处理流数据和历史数据,适用于各种规模和行业的组织。这一平台使数据工程师和平台工程师能够利用SQL释放流数据的价值。

本文将介绍如何通过 Timeplus 控制台将数据从 AutoMQ for Kafka 导入 Timeplus。AutoMQ for Kafka 100% 兼容 Apache Kafka 协议,因此你也可以创建 Kafka 的外部流来分析 AutoMQ 中的数据而不移动数据。

info

本文中提及的 AutoMQ Kafka 术语,均特指安托盟丘(杭州)科技有限公司通过 GitHub AutoMQ 组织下开源的 automq-for-kafka 项目。

准备 AutoMQ Kafka 环境和测试数据

参考 AutoMQ 注册 AutoMQ Cloud 免费体验▸ 部署 AutoMQ Kafka 集群。请确保 Timeplus 能够与您的 AutoMQ Kafka 服务器直接连接。 您可以使用像 ngrok 这样的工具将你的本地 AutoMQ Kafka 代理安全地暴露在互联网上,这样 Timeplus Cloud 就可以连接到它。 查看博客了解更多详情。

info

如果需要保持 IP 白名单,则需要将 Timeplus 服务的静态 IP 列入白名单:52.83.159.13 对于 cloud.timeplus.com.cn

在AutoMQ Kafka中快速创建一个名为 example<!-- -->_<!-- -->topic 的主题并向其中写入一条测试JSON数据,可以通过以下步骤实现。

创建Topic:

使用 Kafka 的命令行工具来创建主题。你需要有 Kafka 环境的访问权限,并且确保 Kafka 服务正在运行。以下是创建主题的命令:

./kafka-topics.sh --create --topic exampleto_topic --bootstrap-server 10.0.96.4:9092  --partitions 1 --replication-factor 1

注意:将 topic 和 bootstarp<!-- -->-<!-- -->server 替换为实际使用的 Kafka 服务器地址。

创建 topic 后可以用以下命令检查 topic 创建的结果

./kafka-topics.sh --describe example_topic --bootstrap-server 10.0.96.4:9092

生成测试数据:

生成一条简单的JSON格式的测试数据。

{  "id": 1,  "name": "测试用户",  "timestamp": "2023-11-10T12:00:00",  "status": "active"}

写入测试数据

使用 Kafka 的命令行工具或者编程方式将测试数据写入到 example<!-- -->_<!-- -->topic。以下是使用命令行工具的一个示例:

echo '{"id": 1, "name": "测试用户", "timestamp": "2023-11-10T12:00:00", "status": "active"}' | sh kafka-console-producer.sh --broker-list 10.0.96.4:9092 --topic example_topic

注意:将 topic 和 bootstarp<!-- -->-<!-- -->server 替换为实际使用的 Kafka 服务器地址。

使用如下命令可以查看刚写入的topic数据:

sh kafka-console-consumer.sh --bootstrap-server 10.0.96.4:9092 --topic example_topic --from-beginning

AutoMQ Kafka数据源

  1. 在左侧导航菜单中,单击 数据摄取,然后单击右上角的 添加数据 按钮。
  2. 在此弹出窗口中,您将看到您可以连接的数据源以及其他添加数据的方法。由于 AutoMQ Kafka 完全兼容 Apache Kafka,在此处可以直接点击 Apache Kafka。
  3. 输入broker URL ,由于默认创建的 AutoMQ Kafka 没有开启TLS和身份验证,因此这里先关闭TLS和身份验证。
  4. 输入 AutoMQ Kafka 主题的名称,并指定“读取为”的数据格式。 我们目前支持JSON、AVRO和文本格式。
    1. 如果 AutoMQ Kafka 主题中的数据采用 JSON 格式,但架构可能会随着时间的推移而发生变化,我们建议您选择 Text。 这样,整个 JSON 文档将保存为字符串,即使架构发生变化,您也可以应用与 JSON 相关的函数来提取值。
    2. 如果您选择AVRO,则有一个“自动提取”选项。 默认情况下,此选项处于关闭状态,这意味着整条消息将另存为字符串。 如果您将其打开,则 AVRO 消息中的顶级属性将被放入不同的列中。 这对您更方便查询,但不支持模式进化。 当选择AVRO时,您还需要指定schema注册表的地址、API密钥和密钥。
  5. 在接下来的“预览”步骤中,我们将从您指定的 AutoMQ Kafka 数据源中向您展示至少一个事件。
  6. 默认情况下,您的新数据源将在 Timeplus 中创建一个新流。 给这个新流命名并验证列信息(列名和数据类型)。 您也可以将一列设置为事件时间列。 如果您不这样做,我们将使用摄取时间作为事件时间。 或者,您可以从下拉列表中选择一个现有的流。
  7. 在预览您的数据后,您可以给源提供一个名称和一个可选的描述,并审查配置。 单击“完成”后,您的流数据将立即在指定的流中可用。

AutoMQ Kafka源说明

使用 AutoMQ Kafka 数据源,需要遵守如下约束:

  1. 当前仅支持 AutoMQ Kafka 主题中的消息采用 JSON 和 AVRO 格式。
  2. 主题级别 JSON 属性将被转换为流列。 对于嵌套属性, 元素将被保存为 String 列,然后可以用 JSON functions之一来查询它们。
  3. JSON 消息中的数值或布尔值类型将被转换为流中的对应类型。
  4. 日期时间或时间戳将被保存为字符串列。 您可以通过 to_time function 将它们转换回 DateTime。

END

关于我们

AutoMQ 是一家专业的消息队列和流存储软件服务供应商。AutoMQ 开源的 AutoMQ Kafka 和 AutoMQ RocketMQ 基于云对 Apache Kafka、Apache RocketMQ 消息引擎进行重新设计与实现,在充分利用云上的竞价实例、对象存储等服务的基础上,兑现了云设施的规模化红利,带来了下一代更稳定、高效的消息引擎。此外,AutoMQ 推出的 RocketMQ Copilot 专家系统也重新定义了 RocketMQ 消息运维的新范式,赋能消息运维人员更好的管理消息集群。 

🌟 GitHub 地址:https://github.com/AutoMQ/automq-for-kafka

💻 官网:https://www.automq.com

👀 B站:AutoMQ官方账号

🔍 视频号:AutoMQ 

👉 扫二维码加入我们的社区群

关注我们,一起学习更多云原生干货

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部