Kafka 到数据仓库:使用 bend-ingest-kafka 将消息加载到 Databend

news2024/9/29 3:50:31

将消息从 Apache Kafka 导入到像 Databend 这样的云数据仓库可能是一项艰巨的任务。bend-ingest-kafka 工具简化了这一过程,使您能够轻松地将 Kafka 消息导入到 Databend 表中。

什么是 bend-ingest-kafka?

bend-ingest-kafka 工具是一个专门为从 Apache Kafka 到 Databend 进行消息加载的命令行工具,支持以下模式:

  • JSON 模式:此模式解析 JSON 消息并将每个字段加载到目标表的相应列中。它将 Kafka 消息转换为与表模式直接映射的结构化格式。

  • RAW 模式:在此模式下,该工具会创建一个包含 uuidkoffsetkpartitionraw_datarecord_metadata 和 add_time 等列的表。Kafka 消息存储在 raw_data 列中,并将其他元数据注入到其他列中,从而保留原始消息格式并提供有用的上下文。

有关 bend-ingest-kafka 的更多详细信息,请查看 README。要安装 bend-ingest-kafka,请运行以下命令:

go install github.com/databendcloud/bend-ingest-kafka@latest

如何使用 bend-ingest-kafka

在这里中,我们将安装一个本地 Kafka 实例,创建一个主题,并生成一些示例消息。然后,我们将分别以 JSON 和 RAW 模式将这些消息加载到 Databend Cloud 中。

  1. 安装 Kafka

在开始之前,请确保您已运行 Kafka 并创建了一个主题。以下是使用 Docker 的快速部署:

使用 Docker 运行 Kafka 容器:

docker run -d \
 - name kafka \
 -p 9092:9092 \
 apache/kafka:latest

创建一个名为 “test-topic” 的主题并生成一些消息:

docker exec - workdir /opt/kafka/bin/ -it kafka sh
/opt/kafka/bin $ ./kafka-topics.sh - bootstrap-server localhost:9092 - create - topic test-topic
Created topic test-topic.
/opt/kafka/bin $ ./kafka-console-producer.sh - bootstrap-server localhost:9092 - topic test-topic
>{"id": 1, "name": "Alice", "age": 30}
>{"id": 2, "name": "Bob", "age": 25}
  1. 在 Databend Cloud 创建目标表

在 Databend Cloud 中创建一个数据库和表。这张表将作为 JSON 模式加载的目标,因此请确保其模式与之前生成的消息匹配。

CREATE DATABASE doc;

CREATE TABLE databend_topic (
 id INT NOT NULL,
 name VARCHAR NOT NULL,
 age INT NOT NULL
 ) ENGINE=FUSE;
  1. 使用 JSON 模式加载

使用以下命令开始将消息从 Kafka 加载到 Databend Cloud:

要获取您的 DSN,请登录到 Databend Cloud 并点击“连接” 。

bend-ingest-kafka \
 - kafka-bootstrap-servers="localhost:9092" \
 - kafka-topic="test-topic" \
 - databend-dsn="<your-dsn>" \
 - databend-table="doc.databend_topic" \
 - data-format="json"

您将在终端中看到类似这样的消息:

INFO[0000] Starting worker worker-0
2024/08/27 14:31:18 ingest 1 rows (0.900730 rows/s), 38 bytes (34.227748 bytes/s)
WARN[0095] Failed to read message from Kafka: context deadline exceeded kafka_batch_reader=ReadBatch
2024/08/27 14:32:19 ingest 1 rows (1.206118 rows/s), 36 bytes (43.420260 bytes/s)

验证 Kafka 消息是否已成功加载到 Databend Cloud 中的目标表,并且每个字段都正确映射到其指定的列中:

  1. 使用 RAW 模式加载

使用以下命令开始将消息从 Kafka 加载到 Databend Cloud:

bend-ingest-kafka \
 - kafka-bootstrap-servers="localhost:9092" \
 - kafka-topic="test-topic" \
 - databend-dsn="<your-dsn>" \
 - is-json-transform=false

您将在终端中看到类似这样的消息:

INFO[0000] Starting worker worker-0
WARN[0077] Failed to read message from Kafka: context deadline exceeded kafka_batch_reader=ReadBatch
2024/08/27 15:12:56 ingest 2 rows (1.978622 rows/s), 579 bytes (572.811134 bytes/s)

验证 Kafka 消息已成功加载到 Databend Cloud 中,并自动创建了一张表:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2087869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网上一堆教人用AI做自媒体的,真的能挣钱吗?看我真实测评~

今日主题&#xff1a;AI副业能做吗&#xff1f; 今年这情况&#xff0c;几乎所有人都想搞个副业。 有人问我&#xff1a;普通人真的能靠AI做自媒体搞钱吗&#xff1f; 先说结论&#xff1a;可以&#xff0c;但要找准路子&#xff01; 听我慢慢道来~ 我是今年开始做AI自媒体…

同声传译用什么软件?5款优质软件评测

最近&#xff0c;我遇到了一个尴尬的情况。在一次国际会议中&#xff0c;我被分配到了一个多语言小组讨论。虽然我的英语还算流利&#xff0c;但面对来自世界各地的同事们&#xff0c;各种口音和语速让我感到有些力不从心。 那一刻&#xff0c;我多么希望有一个神奇的工具&…

如何解决已经安装软航文档控件但依旧提示未安装的问题

目录 前言 问题现象 问题处理步骤 前言 本文介绍在办公系统中使用重庆软航科技有限公司开发的NTKO OFFICE文档控件软件时&#xff0c;已经通过办公系统提供的软件安装包安装&#xff0c;但是在360安全浏览器、360极速浏览器的兼容模式下依旧提示&#xff1a;本机尚未安装跨浏…

STM32F411 标准库硬件SPI (硬件NSS/CS)驱动st7735--1.8寸TFT显示屏

TFT的spi驱动文件 完整工程网盘放在末尾 #include "lcd_driver.h"static uint16_t SPI_TIMEOUT_UserCallback(uint8_t errorCode);//液晶IO初始化配置 void LCD_Driver_Init(void) {SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 使能…

关于武汉芯景科技有限公司的实时时钟芯片XJ8340开发指南(兼容DS1340)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.时钟功能 2.频率输出 / 普通IO口 FT/OUT引脚输出512HZ的方波或者高低电平 3.备用电源 4.涓流充电 5.振荡停止检测 四、程序代码 XJ8340.C /** XJ8340.c** Created on: 2024年8月29日* Auth…

萤石开放平台 播放报错4012,URL过期或无效

当你在尝试打开直播地址时&#xff0c;如果遇到了报错提示“4012&#xff0c;URL过期或无效&#xff0c;请检查URL的有效性”。 这通常表示直播地址中的UUID&#xff08;一个独特的识别码&#xff09;可能存在问题&#xff0c;例如过期或无权限访问。以下是一些排查及解决该问题…

【ACM独立出版 | 厦大主办】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024,10月18-20)

第五届计算机科学与管理科技国际学术会议(ICCSMT 2024) 定于2024年10月18-20日在中国厦门举行。 会议旨在为从事“计算机科学”与“管理科技”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发展趋势&#xff0c;拓宽研究思路…

Pandas 绘图的强大之处:后端

轻松通过 Pandas 创建交互式图形。欢迎来到雲闪世界。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 1.背景 Python 有大量的可视化包&#xff0c;其中最有名的三个是&#xff1a;Matplotlib&#xff08;和 seaborn&#xff09;、Plotly和Hvplot。这三…

虚幻5|技能栏UI优化(2)——优化技能UI并实现技能栏的拖拽操作

这篇文章里&#xff0c;前情提要&#xff0c;文章里的序列变量应命名为序号&#xff0c;我命名错了&#xff0c;虽然不差&#xff0c;但为了后面更好的理解 一.刷新技能栏&#xff0c;用于刷新上一章文章的初始化技能栏 1.打开技能栏格子&#xff0c;打开图表&#xff0c;添加…

用AI工具制作高质量PPT的完整教程

其实使用AI或者ChatGPT写PPT的方式有很多种 下面主要说明两种方式&#xff0c;建议第二种方式 接下来我会用最简单的语言&#xff0c;一步一步说明&#xff0c;保证你能在五分钟内做完你想要的PPT 具体方法和工具&#xff0c;都在里面 1、手动生成 让ChatGPT帮你生成大纲和…

Leetcode面试经典150题-36.有效数独

解法都在代码里&#xff0c;不懂就留言或者私信&#xff0c;比第一题稍微难点 class Solution {public static boolean isValidSudoku(char[][] board) {/**rowExists[i][j]代表第i行是否存在数据j1*/boolean[][] rowExists new boolean[9][9];/**rowExists[i][j]代表第i列是…

纵向合并单元格——table

将list数据处理成tableDate格式&#xff0c;id重复的数据&#xff0c;只有第一项有num字段&#xff08;num是重复的个数&#xff09;渲染表格&#xff0c;纵向合并第1、2、6列&#xff0c;id相同的合并 <template><div><el-table:data"tableData":sp…

力扣刷题--137. 只出现一次的数字 II【中等】

题目描述&#x1f357; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1&#xff1a; 输入&am…

knime一行代码都不用写,就可以清洗数据,详细文字

knime数据清洗案例 最终效果 解决办法&#xff1a; 图文并茂的解决办法见我公众号&#xff1a;链接: knime一行代码都不用写&#xff0c;就可以清洗数据,详细步骤如下 具体使用的节点说明如下&#xff1a; 1、使用Excel Reader结节&#xff0c;将数据导入进来。 2.使用…

科技馆可视化系统:全新互动体验

通过图扑科技馆可视化平台&#xff0c;参观者可以体验互动式展示和虚拟现实展览&#xff0c;深入理解科学现象和技术创新&#xff0c;增强学习的趣味性和参与感。

HarmonyOS(52) 使用安全控件SaveButton保存图片

SaveButton使用简介 前言SaveButton简介约束与限制 实现点击事件全部源码 参考资料&#xff1a; 前言 在HarmonyOS(50) 截图保存功能实现一文中简单介绍了截图保存功能&#xff0c;本篇博文介绍一个更简单的保存图片控件SaveButton. SaveButton简介 SaveButton允许用户通过点…

全球财经动态:科技巨头风云再起,市场趋势显分化

一、美股大盘与债市动向 昨夜美股市场呈现分化格局&#xff0c;中概股表现强劲&#xff0c;而科技龙头英伟达却遭遇重挫。道指微涨&#xff0c;纳指小幅收跌&#xff0c;标普500指数则基本持平。美债收益率攀升&#xff0c;十年期国债收益率触及3.863%&#xff0c;市场避险情绪…

JavaWeb学习——原理篇学习

一、SpringBoot配置优先级 首先我们先知道三种SpringBoot支持的配置文件: 而当在一个Spring项目中&#xff0c;如果同时存在这三个配置文件&#xff0c;那么执行的优先级顺序应是&#xff1a; properties > yml > yaml 。 补充&#xff1a;属性配置 另外我们可以通过打包…

把http网站变成https

网站建设好后默认是HTTP网站&#xff0c;会被浏览器直接标注为不安全站点&#xff0c;甚至搜索引擎上也排名也不是那么出色。 HTTP协议是浏览网站和在线资源的基本协议。由于HTTP的连接未加密&#xff0c;因此往往不安全。HTTPS是默认HTTP协议的安全扩展。 访问HTTPS网站时&…

FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

EasyPusher是一款国产的RTSP直播录制推流客户端工具&#xff0c;它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议&#xff0c;其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。 不过EasyPusher有好几年没…