从 AutoMQ Kafka 导出数据到 Databend

作者:韩山杰

Databend Cloud 研发工程师

github.com/hantmac

Databend是使用 Rust 研发、开源的、完全面向云架构、基于对象存储构建的新一代云原生数据仓库,为企业提供湖仓一体化、计 算和存储分离的大数据分析平台。

本文将介绍如何通过 bend-ingest-kafka 将数据从 AutoMQ for Kafka 导入 Databend。

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

环境准备

准备 Databend Cloud 以及测试数据

首先到 Databend Cloud 开启你的 Warehouse ,并在 worksheet 中创建数据库库和测试表:

sql 复制代码
create database automq_db;
create table users (
    id bigint NOT NULL,
    name string NOT NULL,
    ts timestamp,
    status string
);

准备 AutoMQ Kafka 环境和测试数据

参考 部署 AutoMQ 到 AWS▸ 部署好 AutoMQ Kafka 集群,确保 AutoMQ Kafka 与 StarRocks 之间保持网络连通。

在AutoMQ Kafka中快速创建一个名为 example_topic 的主题并向其中写入一条测试 JSON 数据,可以通过以下步骤实现:

创建Topic:

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

css 复制代码
./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 创建的结果。

css 复制代码
./kafka-topics.sh --describe example_topic --bootstrap-server 10.0.96.4:9092

生成测试数据:

生成一条简单的 JSON 格式的测试数据,和前文的表需要对应。

json 复制代码
{
    "id":1,
    "name":"Test User",
    "ts":"2023-11-10T12:00:00",
    "status":"active"
}

写入测试数据

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

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

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

javascript 复制代码
sh kafka-console-consumer.sh --bootstrap-server 10.0.96.4:9092 --topic example_topic --from-beginning

创建 bend-ingest-databend job

bend-ingest-kafka 能够监控 kafka 并将数据批量写入 Databend Table。

部署 bend-ingest-kafka 之后,即可开启数据导入 job。

ini 复制代码
bend-ingest-kafka --kafka-bootstrap-servers="localhost:9094" 
--kafka-topic="example_topic" 
--kafka-consumer-group="Consumer Group"
--databend-dsn="https://cloudapp:password@host:443" 
--databend-table="automq_db.users" --data-format="json" 
--batch-size=5 --batch-max-interval=30s

注意:将 kafka_broker_list 替换为实际使用的 Kafka 服务器地址。

参数说明

databend-dsn

Databend Cloud 提供的连接到 warehouse 的 DSN,可以参考该文档 获取。

batch-size

bend-ingest-kafka 会积攒到 batch-size 条数据再触发一次数据同步。

验证数据导入

到 Databend Cloud worksheet 中查询 automq_db.users 表,可以看到数据已经从 AutoMq 同步到 Databend Table。

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

👨‍💻‍ Databend Cloud:databend.cn

📖 Databend 文档:databend.rs/

💻 Wechat:Databend

✨ GitHub:github.com/datafuselab...

相关推荐
RestCloud11 小时前
SQL Server到Hive:批处理ETL性能提升30%的实战经验
数据库·api
RestCloud11 小时前
为什么说零代码 ETL 是未来趋势?
数据库·api
ClouGence13 小时前
CloudCanal + Paimon + SelectDB 从 0 到 1 构建实时湖仓
数据库
DemonAvenger20 小时前
NoSQL与MySQL混合架构设计:从入门到实战的最佳实践
数据库·mysql·性能优化
AAA修煤气灶刘哥1 天前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
RestCloud1 天前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
得物技术2 天前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
可涵不会debug2 天前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom2 天前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
麦兜*2 天前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud