You need to enable JavaScript to run this app.
导航
Kafka
最近更新时间:2025.06.30 10:53:29首次发布时间:2021.05.25 18:28:53
复制全文
我的收藏
有用
有用
无用
无用

本文为您介绍如何接入 Kafka 来创建数据集,以支持产品实时数据分析场景。

注意事项

Kafka 数据源仅支持私有化部署模式使用,如您使用的SaaS版本,想要使用 Kafka 数据源,可与贵公司的客户成功经理沟通,提出需求。

从数据连接新建
  1. 进入火山引擎,点击进入到某个具体项目下,点击数据准备,在下拉列表找到数据连接,点击数据连接。
    Image

  2. 在页面中选择 Kafka 。
    Image

  3. 填写所需的基本信息,并进行测试连接,连接成功后点击保存。
    Image
    Kafka 提供四种鉴权方式,各鉴权方式的参数配置说明如下,用户需根据实际场景选择:

    鉴权方式

    说明

    无鉴权

    安全性极低,适用于开发测试或本地环境。
    Image

    • 数据连接名称:新建数据连接的名称,用于在系统中区分不同数据库的连接。默认为Kafka_时间戳。可对名称进行修改,但请输入规范的名称,只允许中文、英文、数字和下划线的组合,前后不能包含空格。
    • 版本号:指定连接的 Kafka 版本。
    • 服务器:服务器的地址和端口号,格式为ip:port,多个请用英文逗号分隔。

    SASL_PLAINTEXT

    安全性低(仅认证),适用于内部可信网络、轻量级认证
    Image

    • 数据连接名称:新建数据连接的名称,用于在系统中区分不同数据库的连接。默认为Kafka_时间戳。可对名称进行修改,但请输入规范的名称,只允许中文、英文、数字和下划线的组合,前后不能包含空格。
    • 用户名:SASL 用户名。
    • 密码:SASL 密码。
    • 版本号:指定连接的 Kafka 版本。
    • 服务器:服务器的地址和端口号,格式为ip:port,多个请用英文逗号分隔。
    • 加密方式:连接的加密方式。根据SASL用户类型可选PLAIN、SCRAM-SHA-256、SCRAM-SHA-512三种方式。

    集群内置Kerberos

    安全性高,适用于企业生产环境、多租户集群
    Image

    • 数据连接名称:新建数据连接的名称,用于在系统中区分不同数据库的连接。默认为Kafka_时间戳。可对名称进行修改,但请输入规范的名称,只允许中文、英文、数字和下划线的组合,前后不能包含空格。
    • 版本号:指定连接的 Kafka 版本。
    • 服务器:服务器的地址和端口号,格式为ip:port,多个请用英文逗号分隔。

    自定义Kerberos

    安全性高(可扩展),适用于跨域认证、集成现有Kerberos架构
    Image

    • 数据连接名称:新建数据连接的名称,用于在系统中区分不同数据库的连接。默认为Kafka_时间戳。可对名称进行修改,但请输入规范的名称,只允许中文、英文、数字和下划线的组合,前后不能包含空格。
    • 版本号:指定连接的 Kafka 版本。
    • 服务器:服务器的地址和端口号,格式为ip:port,多个请用英文逗号分隔。
    • Krb5文件:Kerberos 的配置文件,包含了 Kerberos 服务器的地址、领域(Realm)等信息。客户端需要此文件来与 Kerberos 服务器进行交互,以获取票据(Ticket)等认证信息。
    • Keytab文件:包含了客户端或服务端的密钥信息,用于在 Kerberos 认证过程中进行身份验证。
    • serviceName:在 Kerberos 认证中,Kafka 服务的名称。该名称需要与 Kafka 服务器配置中的服务名称相对应,用于在 Kerberos 服务器上注册和验证服务身份。
    • Principal:代表客户端或服务端在 Kerberos 领域中的身份标识,通常是一个字符串,格式为{username}/{hostname}@{REALM}。在认证过程中,Kerberos 服务器会根据 Principal 来验证身份的合法性。

从数据集新建
  1. 进入火山引擎,点击数据准备-->数据集,选择左上角「新建」按钮,新建数据集。
    Image
  2. 选择数据连接的时候,点击新建配置。
    Image
  3. 后续步骤与上述从数据连接新建的2、3步一致,在完成配置之后会停在数据集选择数据连接的弹出框中,即可直接进行下一步的数据集创建。

后续步骤:创建数据集
  1. 使用之前创建好的数据连接创建数据集:点击数据准备-->数据集,选择左上角「新建」按钮进行数据集的新建。
    Image
  2. 搜索或下拉选择之前新建好的数据连接。
    Image
  3. 选择所需字段及其对应的数据类型。

    注意

    • 不支持聚合后落表,不支持覆盖历史数据。
    • Kafka topic 暂不支持关联join,仅支持单表创建数据集。
    • 当topic数据量过小时,请手动输入json提取。
    • 配置支持嵌套 json,需使用 jsonpath 提取字段。 可参见嵌套字段提取规则说明
      示例:outter.inner.cnt表示获取{"outter": {"inner": {"cnt": 0}}}中的0。
      Image

      注意

      不支持下划线开头的字段名称,不支持字段中包含“-”字符。

    • Kafka 数据集数据类型对应。Kafka 分区键的规则说明可参见分区键的规则说明
      Image
      由于 Kafka 数据源接入的底层依赖 ClickHouse,因此在创建数据集时,需根据 Kafka 数据类型(JSON)选择对应的 ClickHouse 字段类型,以确保数据格式的兼容性和处理效率。
      以下为两者的映射关系,可指导您在字段配置时正确选择映射后的字段类型:

      JSON类型

      ClickHouse备选类型

      long

      Int64

      string

      String, Date, Datatime

      float

      Float64

      boolean

      Int64

      array

      Array(Int64), Array(Float64), Array(String)

      map

      Map(Int64, Int64), Map(Int64, Float64), Map(Int64, String)
      Map(String, Int64), Map(String, Float64), Map(String, String)

相关参考

嵌套字段提取规则说明

当存在多层嵌套时,可输入 json path 提取字段。
示例:

{
  "body": {
    "cost": {
      "city": "Shanghai",
      "country": "China"
    }
  }
}

若需要提取字段 city,则 json.path 为 body.cost.city。

注意

  • json.path不支持修改,也不支持原本没有定义json.path的字段改为有定义json.path。
    • 如果需要修改此类字段,需要先删除,保存数据集,待修改完成后再次编辑,添加所需同名字段。
    • 如果添加字段与原来定义字段名称不同,则可以在一次编辑内,把旧字段删掉、添加新字段。

示例操作路径Ⅰ
①创建数据集时指定了字段 test 为非嵌套字段(无 json.path),类型为 Nullable(Int64)。
②若想修改 test 为嵌套字段(有 json.path),则需删除 test 字段并点击保存,然后再次编辑,添加 test 字段与 json.path,保存即可。
示例操作路径Ⅱ
①创建数据集时指定了字段 test 为非嵌套字段(无 json.path),类型为 Nullable(Int64)。
②若想修改 test 类型为 Nullable(String),直接修改并保存即可。
示例操作路径Ⅲ
①创建数据集时指定了字段 test 为嵌套字段(有 json.path),类型为 Nullable(Int64)。
②若想修改 test 为非嵌套字段(无 json.path),则需要删除 test 字段,点击保存,然后再次编辑,添加 test 字段并指定类型,保存即可。

分区键的规则说明

Kafka 分区键需要能够被转换为日期(toDate)或日期时间(toDateTime)格式,以支持后续基于分区键做时间相关操作,比如按天分区、按时间范围查询等。
目前 Kafka 仅支持以下两种格式:

  • int 类型时间戳(支持秒级或毫秒级),推荐使用 int 类型时间戳。
  • 字符串类型日期,格式为 '2020-01-01'(日期)或 '2020-01-01 00:00:00'(日期时间)。

如果通过 JSON 建表,JSON 中分区键的值也需遵循上述规则:

  • int 类型时间戳:字段类型选择Int64(如 1672531200000 表示 2023-01-01 00:00:00)。
  • string 类型日期(格式 'YYYY-MM-DD'):字段类型选择Date(如 '2020-01-01')。
  • string 类型日期时间(格式 'YYYY-MM-DD HH:MM:SS'):字段类型选择DateTime(如 '2020-01-01 00:00:00')。