Перейти к основному содержимому

SHOW ROUTINE LOAD

SHOW ROUTINE LOAD отображает информацию о выполнении заданий Routine Load.

Вы можете управлять заданиями Routine Load, которые выполняются на таблицах Selena, только как пользователь, имеющий привилегию INSERT на эти таблицы Selena. Если у вас нет привилегии INSERT, следуйте инструкциям, предоставленным в GRANT, чтобы предоставить привилегию INSERT пользователю, которого вы используете для подключения к вашему кластеру Selena.

Синтаксис

SHOW [ALL] ROUTINE LOAD [ FOR [<db_name>.]<job_name> | FROM <db_name> ]
[ WHERE [ STATE = { "NEED_SCHEDULE" | "RUNNING" | "PAUSED" | "UNSTABLE" | "STOPPED" | "CANCELLED" } ] ]
[ ORDER BY field_name [ ASC | DESC ] ]
[ LIMIT { [offset, ] limit | limit OFFSET offset } ]
подсказка

Вы можете добавить опцию \G к команде (например, SHOW ROUTINE LOAD FOR <job_name>\G) для вертикального отображения результата вместо обычного горизонтального табличного формата.

Параметры

ПараметрОбязательныйОписание
db_nameНетИмя базы данных, к которой принадлежит задание загрузки. Обратите внимание, что этот параметр обязателен при использовании предложения FROM.
job_nameНетИмя задания загрузки. Обратите внимание, что этот параметр обязателен при использовании предложения FOR.
ALLНетОтображает все задания загрузки, включая те, которые находятся в состоянии STOPPED или CANCELLED.
STATEНетСтатус задания загрузки.
ORDER BY field_name [ASC | DESC]НетСортирует результат в порядке возрастания или убывания на основе указанного поля. Поддерживаются следующие поля: Id, Name, CreateTime, PauseTime, EndTime, TableName, State и CurrentTaskNum.
  • Для сортировки результата в порядке возрастания укажите ORDER BY field_name ASC.
  • Для сортировки результата в порядке убывания укажите ORDER BY field_name DESC.
Если вы не указываете поле или порядок сортировки, результат по умолчанию сортируется в порядке возрастания Id.
LIMIT limitНетКоличество заданий загрузки, которые будут возвращены. Например, если указано LIMIT 10, будет возвращена информация только о 10 заданиях загрузки, соответствующих условиям фильтра. Если этот параметр не указан, отображается информация обо всех заданиях загрузки, соответствующих условиям фильтра.
OFFSET offsetНетПараметр offset определяет количество заданий загрузки, которые нужно пропустить. Например, OFFSET 5 пропускает первые пять заданий загрузки и возвращает остальные. Значение параметра offset по умолчанию равно 0.

Вывод

ПараметрОписание
IdГлобально уникальный ID задания загрузки, автоматически генерируемый Selena.
NameИмя задания загрузки.
CreateTimeДата и время создания задания загрузки.
PauseTimeДата и время, когда задание загрузки перешло в состояние PAUSED.
EndTimeДата и время, когда задание загрузки перешло в состояние STOPPED.
DbNameБаза данных, к которой принадлежит целевая таблица задания загрузки.
TableNameЦелевая таблица задания загрузки.
StateСтатус задания загрузки, включая:
  • NEED_SCHEDULE: Задание загрузки ожидает планирования. После использования CREATE ROUTINE LOAD или RESUME ROUTINE LOAD для создания или возобновления задания Routine Load, задание загрузки сначала переходит в состояние NEED_SCHEDULE.
  • RUNNING: Задание загрузки выполняется. Вы можете просмотреть прогресс потребления задания Routine Load через Statistic и Progress.
  • PAUSED: Задание загрузки приостановлено. Вы можете обратиться к ReasonOfStateChanged и ErrorLogUrls для устранения неполадок. После исправления ошибки вы можете использовать RESUME ROUTINE LOAD для возобновления задания Routine Load.
  • CANCELLED: Задание загрузки отменено. Вы можете обратиться к ReasonOfStateChanged и ErrorLogUrls для устранения неполадок. Однако после исправления ошибки вы не можете восстановить задание загрузки в этом состоянии.
  • STOPPED: Задание загрузки остановлено. Вы не можете восстановить задание загрузки в этом состоянии.
  • UNSTABLE: Задание загрузки нестабильно. Задание Routine Load переводится в состояние UNSTABLE, если любая задача в рамках задания Routine Load отстает (то есть разница между временной меткой потребляемого сообщения и текущим временем превышает параметр FE routine_load_unstable_threshold_second, и в источнике данных существуют непотребленные сообщения.)
DataSourceTypeТип источника данных. Фиксированное значение: KAFKA.
CurrentTaskNumТекущее количество задач в задании загрузки.
JobPropertiesСвойства задания загрузки, такие как разделы для потребления и сопоставление столбцов.
DataSourcePropertiesСвойства источника данных, такие как Topic и список адресов и портов брокеров в кластере Kafka.
CustomPropertiesДополнительные свойства, связанные с источником данных, определенные в задании загрузки.
StatisticСтатистика загрузки данных, такая как успешно загруженные строки, общее количество строк и объем полученных данных.
ProgressПрогресс (измеряемый в смещении) потребления сообщений в разделах топика.
TimestampProgressПрогресс (измеряемый во временных метках) потребления сообщений в разделах топика.
ReasonOfStateChangedПричины нахождения задания загрузки в состоянии CANCELLED или PAUSED.
ErrorLogUrlsURL журналов ошибок. Вы можете использовать команду curl или wget для доступа к URL.
TrackingSQLSQL-команда, которую вы можете напрямую выполнить для запроса информации журнала ошибок, записанной в базе данных information_schema.
OtherMsgИнформация обо всех неудачных задачах загрузки задания Routine Load.
LatestSourcePositionПозиция последнего сообщения в каждом разделе топика, что помогает проверить задержки загрузки данных.

Примеры

Если задание загрузки успешно запущено и остается в состоянии RUNNING, возвращаемый результат может выглядеть следующим образом:

MySQL [example_db]> SHOW ROUTINE LOAD FOR example_tbl_ordertest1\G
*************************** 1. row ***************************
Id: 10204
Name: example_tbl_ordertest1
CreateTime: 2023-12-21 21:01:31
PauseTime: NULL
EndTime: NULL
DbName: example_db
TableName: example_tbl
State: RUNNING
DataSourceType: KAFKA
CurrentTaskNum: 1
JobProperties: {"partitions":"*","rowDelimiter":"\t","partial_update":"false","columnToColumnExpr":"order_id,pay_dt,customer_name,nationality,temp_gender,price","maxBatchIntervalS":"10","partial_update_mode":"null","whereExpr":"*","timezone":"Asia/Shanghai","format":"csv","columnSeparator":"','","log_rejected_record_num":"0","taskTimeoutSecond":"60","json_root":"","maxFilterRatio":"1.0","strict_mode":"false","jsonpaths":"","taskConsumeSecond":"15","desireTaskConcurrentNum":"5","maxErrorNum":"0","strip_outer_array":"false","currentTaskConcurrentNum":"1","maxBatchRows":"200000"}
DataSourceProperties: {"topic":"lilyliuyitest4csv","currentKafkaPartitions":"0","brokerList":"xxx.xx.xx.xxx:9092"}
CustomProperties: {"kafka_default_offsets":"OFFSET_BEGINNING","group.id":"example_tbl_ordertest1_b05da08f-9b9d-4fe1-b1f2-25d7116d617c"}
Statistic: {"receivedBytes":313,"errorRows":0,"committedTaskNum":1,"loadedRows":6,"loadRowsRate":0,"abortedTaskNum":0,"totalRows":6,"unselectedRows":0,"receivedBytesRate":0,"taskExecuteTimeMs":699}
Progress: {"0":"5"}
TimestampProgress: {"0":"1686143856061"}
ReasonOfStateChanged:
ErrorLogUrls:
TrackingSQL:
OtherMsg:
LatestSourcePosition: {"0":"6"}
1 row in set (0.01 sec)

Если задание загрузки находится в состоянии PAUSED или CANCELLED из-за исключений, вы можете устранить неполадки на основе полей ReasonOfStateChanged, ErrorLogUrls, TrackingSQL и OtherMsg в возвращаемом результате.

MySQL [example_db]> SHOW ROUTINE LOAD FOR example_tbl_ordertest2\G
*************************** 1. row ***************************
Id: 10204
Name: example_tbl_ordertest2
CreateTime: 2023-12-22 12:13:18
PauseTime: 2023-12-22 12:13:38
EndTime: NULL
DbName: example_db
TableName: example_tbl
State: PAUSED
DataSourceType: KAFKA
CurrentTaskNum: 0
JobProperties: {"partitions":"*","rowDelimiter":"\t","partial_update":"false","columnToColumnExpr":"order_id,pay_dt,customer_name,nationality,temp_gender,price","maxBatchIntervalS":"10","partial_update_mode":"null","whereExpr":"*","timezone":"Asia/Shanghai","format":"csv","columnSeparator":"','","log_rejected_record_num":"0","taskTimeoutSecond":"60","json_root":"","maxFilterRatio":"1.0","strict_mode":"false","jsonpaths":"","taskConsumeSecond":"15","desireTaskConcurrentNum":"5","maxErrorNum":"0","strip_outer_array":"false","currentTaskConcurrentNum":"1","maxBatchRows":"200000"}
DataSourceProperties: {"topic":"mytest","currentKafkaPartitions":"0","brokerList":"xxx.xx.xx.xxx:9092"}
CustomProperties: {"kafka_default_offsets":"OFFSET_BEGINNING","group.id":"example_tbl_ordertest2_b3fada0f-6721-4ad1-920d-e4bf6d6ea7f7"}
Statistic: {"receivedBytes":541,"errorRows":10,"committedTaskNum":1,"loadedRows":6,"loadRowsRate":0,"abortedTaskNum":0,"totalRows":16,"unselectedRows":0,"receivedBytesRate":0,"taskExecuteTimeMs":646}
Progress: {"0":"19"}
TimestampProgress: {"0":"1702623900871"}
ReasonOfStateChanged: ErrorReason{errCode = 102, msg='current error rows is more than max error num'}
ErrorLogUrls: http://xxx.xx.xx.xxx:8040/api/_load_error_log?file=error_log_b25dcc7e642344b2_b0b342b9de0567db
TrackingSQL: select tracking_log from information_schema.load_tracking_logs where job_id=10204
OtherMsg:
LatestSourcePosition: {"0":"20"}
1 row in set (0.00 sec)