什么是Routine Load
Starrocks支持例行导入(Routine Load)功能,提交一个常驻的导入任务,通过不断的从指定的数据源读取数据,将数据导入到 StarRocks 中。
什么是SmartPip
smartpip是我们基于airflow研发的任务调度平台, 针对定时导入kafka数据到starrocks, 已实现了一个配置即可实现 但是如果对实时监听kafka导入, 并不太合适, 所以本文将介绍如何使用starrocks自带的routine load的功能,同时来使用smartpip实现监控功能
如何实现
在smartchart中新建一个数据集, 查询内容:
SHOW ROUTINE LOAD FOR $LABLE;
记下来数据集的ID, 如为236, 需要监控的label名如为label1
在smartpip中设定自定义任务
def fun_monitor_label1():
idStr = '236¶m={"LABEL":"label1"}'
dataset = get_dataset(idStr)['data']
dataset = dict(zip(dataset[0], dataset[1]))
print('状态:', dataset['State'])
print('统计:', dataset['Statistic'])
print('进度:', dataset['Progress'])
if dataset['State'] != 'RUNNING':
print('ERROR: ', dataset['ReasonOfStateChanged'])
raise Exception('Starrocks Routin Load')
#diy monitor_label1 fun_monitor_label1