使用SmartPip监控Starrocks的Routine Load


什么是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&param={"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