大数据分析——Apache Doris(二十五)

214 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

 前置操作
  • 启动zookeeper集群(三台节点都启动):zkServer.sh start

  • 启动kafka集群,创建topic,并向topic写入一批数据

 创建例行导入任务

创建例行导入任务的的详细语法可以连接到 Doris 后,执行 HELP ROUTINE LOAD; 查看语法帮助。这里主要详细介绍,创建作业时的注意事项。

语法:

CREATE ROUTINE LOAD [ db .] job_name ON tbl_name

[ load_properties ]

[ job_properties ]

FROM data_source

[ data_source_properties ]

 数据导入演示
操作步骤说明
1启动kafka集群(三台节点都启动
 cd /export/server/kafka_2.11-0.10.0.0nohup bin/kafka-server-start.sh config/server.properties 2>&1 &
2创建topic
 bin/kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node3:2181 --replication-factor 1 --partitions 1 --topic test
3往test topic中插入一批测试数据
 启动kafka生产者命令行工具
 bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test
 每个字段以\t分割
4在doris中创建对应表
 create table student_kafka**(**id int **,**name varchar ( 50 **),age int)**DUPLICATE KEY ( id **)**DISTRIBUTED BY HASH ( id )  BUCKETS 10 ;
5创建导入作业,desired_concurrent_number指定并行度
 CREATE ROUTINE LOAD test_db . kafka_job1 on student_kafkaPROPERTIES**(**    "desired_concurrent_number"="1" ,"strict_mode"="false",    "format" = "json")FROM KAFKA(    "kafka_broker_list"= "node1:9092,node2:9092,node3:9092" ,    "kafka_topic" = "test" ,    "property.group.id" = "test_group_1" ,    "property.kafka_default_offsets" = "OFFSET_BEGINNING" ,    "property.enable.auto.commit" = "false");
6查询表的数据(有一定延迟时间
 select * from student_kafka;
 查看导入作业状态
  • 查看作业状态的具体命令和示例可以通过 HELP SHOW ROUTINE LOAD; 命令查看。

  • 只能查看当前正在运行中的任务,已结束和未开始的任务无法查看。

HELP SHOW ROUTINE LOAD;
SHOW ALL ROUTINE LOAD;显示 test_db 下,所有的例行导入作业(包括已停止或取消的作业)。结果为一行或多行。
 修改作业属性

用户可以修改已经创建的作业。具体说明可以通过 HELP ALTER ROUTINE LOAD; 命令查看。

 作业控制

用户可以通过一下 三个命令来控制作业:

  • STOP:停止

  • PAUSE:暂停

  • RESUME:重启

可以通过以下三个命令查看帮助和示例。

  • HELP STOP ROUTINE LOAD;

  • HELP PAUSE ROUTINE LOAD; 

  • HELP RESUME ROUTINE LOAD;

 Insert Into

Insert Into 语句的使用方式和 MySQL 等数据库中 Insert Into 语句的使用方式类似。但在 Doris 中,所有的数据写入都是一个独立的导入作业。所以这里将 Insert Into 也作为一种导入方式介绍。

主要的 Insert Into 命令包含以下两种;

  • INSERT INTO tbl SELECT ...

  • INSERT INTO tbl (col1, col2, ...) VALUES (1, 2, ...), (1,3, ...);

其中第二种命令仅用于 Demo,不要使用在测试或生产环境中。