ByteHouse 支持通过 Kafka 或其他 Kafka 协议兼容的消息队列流式传输数据。启动 Kafka 导入任务后,ByteHouse 将持续读取 Topic 消息,提供 exactly once 保障,数据消费后可立即访问。ByteHouse 也支持随时启停数据导入任务以节省资源,通过内部记录 offset 机制确保启停过程中的数据不丢失,保障数据一致性。本文介绍了如何使用 ByteHouse 流式导入 Kafka 数据。
100.64.0.0/10
。配置详情请参见管理安全组规则。在 ByteHouse 控制台,单击数据加载页签,单击新建导入任务按钮,进入任务创建界面。
填写导入任务基本信息,自定义任务名称和任务描述。
选择数据源类型为 Kafka 数据流,并从下拉列表中选择已创建的数据源。
如果您尚未创建数据源,可单击连接新的数据源,新建并配置 Kafka 数据源,单击连接。
当前 ByteHouse 支持以下数据源导入数据,不同数据源需配置的参数项说明如下:
数据源 | 火山引擎 Kafka-同可用区 | 火山引擎 Kafka-同可用区 | 火山引擎 Kafka-不同可用区 | 非火山引擎 Kafka 服务 |
---|---|---|---|---|
源名称 | 配置源名称,您可以自定义数据源名称。 | |||
火山内网模式 | 如果您对数据写入安全要求比较高,可勾选该选项。勾选后,请使用私网访问信息配置数据源连接信息。 注意 如果您勾选了火山内网模式,通过内网访问火山引擎 Kafka,您还需要在 KAFKA 所在的 VPC 安全组规则添加白名单: | 不支持 | 不支持 | 不支持 |
Kafka 所在的 VPC ID | 启用火山内网模式后必填。配置为火山引擎队列消息 Kafka 实例的私有网络 VPC 地址。您可登录 火山引擎消息队列 Kafka 版控制台,在实例列表中单击目标实例,在实例详情页的服务访问中查看 VPC ID。 | 不支持 | 不支持 | 不支持 |
Kafka 代理列表 IP 地址 | IP 地址由Kafka 公/私网络地址+端口号组成,格式为 | |||
您可登录 火山引擎消息队列 Kafka 版控制台,在实例列表中单击目标实例,在实例详情页的服务访问中查看并复制私网的接入点 IP 地址。 | 您可登录 火山引擎消息队列 Kafka 版控制台,在实例列表中单击目标实例,在实例详情页的服务访问中查看并复制公网的接入点 IP 地址。 | 您可登录 火山引擎消息队列 Kafka 版控制台,在实例列表中单击目标实例,在实例详情页的服务访问中查看并复制公网的接入点 IP 地址。 | 您可登录使用的 Kafka 数据服务控制台查看并复制。 | |
身份验证模式 | 当前 Kafka 数据源支持四种鉴权模式,包括 NONE 无鉴权、PLAIN、SCRAM-SHA-256、SCRAM-SHA-512,并支持 SSL 加密,您可按需勾选。
| |||
用户名 | 配置为 Kafka 服务的用户名。 | |||
密码 | 配置为 Kafka 服务的密码。 |
配置数据源的 Topic、消费组、格式等信息。
选择导入的目标数据库和表。
定义 Schema 映射。设置数据源和目标表后,系统会自动填充 Schema 映射表,生成数据源与目标表的映射关系。ByteHouse 当前支持以下 Schema 映射配置操作,您可按需调整生成的 Schema 映射。
配置导入任务的加载类型、max block size,指定计算组。
单击创建,即可生成导入任务。导入任务创建后,系统将跳转至任务详情页面,此时任务将处于暂停状态,您可单击开启,启动任务。
在启动 Kafka 作业弹窗中,确认需启动的任务名称和偏移量,确认无误后,单击确定,系统将执行数据加载任务。
如需修改偏移量,可单击配置,选择分区和偏移量。配置完成后,单击确定,系统将执行数据加载任务。
在数据加载页面,您可以通过任务视图查看已创建的所有任务。
您也可以通过执行视图查看任务执行状态,查看任务执行日志和配置。
如果您需要通过 OpenAPI 导入数据,可复制任务配置作为配置参考。
操作步骤:
在任务列表中,单击目标任务行的 ... 按钮,单击删除任务,确认后即可删除当前任务。
需要在「数据导入」-> 「新建导入任务」 -> 「定义 Schema 映射」中配置如下红框圈中的列映射:
当您使用的目标表是唯一键(Unique Key)表时,ByteHouse 支持将目标表中的列映射为 _delete_flag_
列,并支持通过表达式定义删除条件。当导入任务中有满足删除条件的数据时,ByteHouse 将实时删除该条数据。
在「数据导入」-> 「新建导入任务」 -> 「定义 Schema 映射」中,打开行删除控制按钮,启用实时删除功能。启用后,系统将在映射表中自动添加 _delete_flag_
列。
配置列映射。您可根据业务场景,指定目标表中的列,将其映射为 _delete_flag_
,并为该列配置列映射表达式,当满足表达式条件时,系统将删除对应的数据。
如下图所示,将目标表中 的action
列映射为 _delete_flag_
,并使用 multiIf
表达式定义 action
列。当 action
列的值为 1 时,唯一键对应的记录将会被删除;值为 0 时,表示写入数据。multiIf 表达式示例如下:
multiIf(action='delete',1,0)
ByteHouse 也支持通过 SQL 命令实时删除指定唯一键的数据,您可参考例3:实时删除指定唯一键的数据了解更多示例。