使用Routine Load导入kafka的json数据到Doris

直接上代码

Doris 表结构

CREATE TABLE chat_stat
(
    timestamp DATETIME,
    op VARCHAR(255),
    rid        VARCHAR(255),
    num      Int SUM DEFAULT '0'
) aggregate KEY(timestamp,op,rid)
PARTITION BY RANGE(timestamp) ()
DISTRIBUTED BY HASH(rid) BUCKETS 10
PROPERTIES (
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "MONTH",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "10",
    "dynamic_partition.start" = "-1", -- 开始分区为当前时间前一个月
    "dynamic_partition.end" = "3" ,-- 结束分区为当前时间后三个月(不包含)
    "replication_num" = "1"
);

表结构很简单,使用聚合模型统计timestamp,op,rid相同时的数量总和

创建 Routine Load 导入作业

CREATE ROUTINE LOAD live_audit_db.chat_stat_load ON chat_stat
COLUMNS(t,timestamp=from_unixtime(t),op,rid,num =1 ),
WHERE op = 'chat'
PROPERTIES(
    "format"="json",
    "jsonpaths"="[\"$.body.wstime\",\"$.op\",\"$.rid\"]"

)
FROM KAFKA(
    "kafka_broker_list" = "192.168.88.60:9092",
    "kafka_topic" = "video_livesocket_message_topic",
    "property.group.id" = "doris-chat",
    "property.kafka_default_offsets" = "OFFSET_END"
);

参数解释:
live_audit_db:创建导入任务的数据库。
chat_stat_load :指定创建的导入任务名称,同一个 database 不能有名字相同的任务。
chat_stat:指定需要导入的表的名称。
“format”=“json”:指明数据格式是json。
kafka_broker_list:指定 Kafka 的 broker 连接信息。格式为 <kafka_broker_ip>:。多个 broker 之间以逗号分隔。例如在 Kafka Broker 中默认端口号为 9092,可以使用以下命令指定 Broker List:“kafka_broker_list” = “<broker1_ip>:9092,<broker2_ip>:9092”。
kafka_topic:指定要订阅的 Kafka 的 topic。一个导入作业仅能消费一个 Kafka Topic。

property.group.id:kafka groupId
property.kafka_default_offsets:指定分区默认的起始offset,默认为 OFFSET_END,即从末尾开始订阅。还可以设置参数 为OFFSET_BEGINNING,即从起始开始订阅。
jsonpaths:用于配置列名映射,顺序要和COLUMNS中设置的字段顺序对应,其中如果有json子对象的属性需要映射,直接用“.”访问即可,如例子中的$.body.wstime。
COLUMNS:用于指定对应的列名,支持数据的映射转换,如例子中的“t,timestamp=from_unixtime(t)”,即timestamp字段是由t转化得到,而t是由jsonpaths中的第一个$.body.wstime映射而来(按顺序映射)。

状态查询与管理

// 展示 Routine Load 作业运行状态
SHOW ROUTINE LOAD for live_audit_db.chat_stat_load;
//用户停止一个 Routine Load 作业。被停止的作业无法再重新运行
STOP ROUTINE LOAD FOR live_audit_db.chat_stat_load;
//用于暂停一个 Routine Load 作业。被暂停的作业可以通过 RESUME 命令重新运行
PAUSE ROUTINE LOAD FOR live_audit_db.chat_stat_load;
//用于重启一个被暂停的 Routine Load 作业。重启的作业,将继续从之前已消费的 offset 继续消费
RESUME ROUTINE LOAD FOR live_audit_db.chat_stat_load;
//查看一个指定的 Routine Load 作业的当前正在运行的子任务情况。
SHOW ROUTINE LOAD TASK where jobname = 'chat_stat_load';

官方文档

其他详细参数和字段可查询官方文档
链接: 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值