You need to enable JavaScript to run this app.
导航

流式导入

最近更新时间2023.12.17 18:51:56

首次发布时间2022.10.28 16:32:04

ByteHouse 支持通过 Kafka 进行实时数据写入。
相比通过引擎进行 Insert 数据,ByteHouse 的 Kafka 导入功能具有以下特点:

  • 支持 at-least-once 语义,可自动切换主备写入,稳定高可用。
  • 数据根据 Kafka Partition 自动均衡导入到 ByteHouse Shard。无需配置分片键。
  • 默认数据消费 8 秒后可见。兼顾了消费性能和实时性。

更多原理请参考 HaKafka 引擎文档

注意

建议 Kafka 版本满足以下条件,否则可能会出现消费数据丢失的问题,详见 Kafka 社区 Issue

  • = 2.5.1

  • = 2.4.2

操作步骤

创建数据源

  1. 在右上角选择数据管理与查询 > 数据导入 > 对应集群.
    图片
  2. 单击左侧选择 “+”,新建数据源。
    图片

配置数据源

  1. 在右侧数据源配置界面,根据界面提示,依次输入以下信息:
    • 源类型:选择 Kafka 数据源类型
    • 源名称:任务名称,和其他任务不能重名。
    • Kafka 代理列表: 填写对应的 Kafka Broker 地址。如果需要填写多个 Broker 地址,请用逗号(,)进行分割。如 10.100.19.127:9092,10.100.19.127:9093
    • 身份验证模式:支持选择 NONE、PLAIN、SCRAM-SHA-256、SCRAM-SHA-512 四种模式。

      说明

      选择 NONE 时,表明不用身份验证模式,可忽略以下配置内容。

    • 安全协议:支持选择 sasl_plaintext、sasl_ssl 协议类型。
    • 用户名、密码:填写有权限访问 Kafka 实例的用户名和密码信息。
  2. 数据源信息填写完成后,单击确定按钮,进行数据源连通性测试,连通成功后,即代表数据源创建成功。

新建导入任务

  1. 在对应数据源下,单击新建导入任务,进入新建导入任务配置界面,并完成以下信息配置:

    参数

    说明

    通用信息

    任务名称

    填写导入任务名称信息,支持数字、字母及下划线,不能以数字开头,最多仅支持 128 字符,且不能和现有任务重名。

    描述

    输入该导入任务相关描述信息,方便后续维护管理。

    选择数据源

    源类型

    选择 Kafka 数据源类型。

    数据源

    下拉选择已创建成功的 Kafka 数据源。
    若没有符合要求的数据源,您可单击新建数据源按钮,前往新建数据源。

    Topic

    下拉选择 Kafka 数据源中的已有的 Topic 信息。

    Group 名称

    Kafka Consumer Group 名称。非必填,若不填则系统自动生成 Group 名称。

    自动重设 Offset

    指初次启动任务时,Kafka 最新生产的数据开始消费的 offset,第二次启动任务时,会从上次消费暂停的 offset 恢复。

    格式

    消息格式,目前最常用 JSONEachRow。

    分隔符

    输入消息分隔符,一般使用 '\n'。

    消费者个数

    消费者个数,每个消费者会创建一个线程。

    写入 Block Size

    写入的 block_size 大小。

    选择目标表

    目标数据表

    下拉选择数据导入的目标 ByteHouse 表。

    目标 Schema 配置

    提取 Schema

    此处配置 Kafka 中的信息和 ByteHouse 表信息的映射,建议使用“数据映射”功能,通过 JSONSQL 方式,抽样提取 Kafka 消息进行自动匹配,字段映射新增方式,您可选择覆盖添加增量添加方式,匹配需要符合以下规则:

    • 源列必须和目标列属于同类型,ByteHouse 不支持隐式转化类型。若类型不匹配,可通过“表达式”进行转化,例如源列为 a,Integer 类型,目标列为 String 类型,则需要在表达式中输入toString(a)。常见的类型转换函数可以参考类型转换函数
    • 目标列中,不可为空的列必须有源列匹配。可为空的列可以在此处被删除。
  2. 所有源列和目标列都完成匹配后,单击页面右下角的提交按钮。提交后,就可以在数据导入对应的数据源下看到新的导入任务。任务创建完成后,会直接开始 Kafka 消费任务。

  3. 单击导入任务名称,可以看到当前导入任务的执行情况,信息包括:任务执行 ID、开始时间、时长、导入记录数等信息。
    图片

执行计划

导入任务创建完成后,您可在执行计划中,看到所有导入任务的具体执行情况。
在数据导入界面下,单击左侧执行计划按钮,进入到执行计划列表,您可根据以下筛选项,进行执行计划筛选:

  • 您可通过输入任务名称或执行计划ID,来搜索对应的执行计划。
  • 您也可通过导入任务状态、时间范围、目标数据表、源类型等信息,下拉选择相应的内容,来快速筛选执行计划。