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

Действия с профилем запроса

Запрос​

GET /rest/v2/manager/query/query_info

GET /rest/v2/manager/query/trace_id/{trace_id}

GET /rest/v2/manager/query/sql/{query_id}

GET /rest/v2/manager/query/profile/text/{query_id}

GET /rest/v2/manager/query/profile/graph/{query_id}

GET /rest/v2/manager/query/profile/json/{query_id}

GET /rest/v2/manager/query/profile/fragments/{query_id}

GET /rest/v2/manager/query/current_queries

GET /rest/v2/manager/query/kill/{query_id}

GET /rest/v2/manager/query/statistics/{trace_id} (4.0.0+)

Получение информации о запросах​

GET /rest/v2/manager/query/query_info

Описание​

Возвращает информацию о запросах SELECT для всех узлов FE в кластере.

Параметры запроса​

  • query_id

    Необязательный параметр, задающий идентификатор запроса, информацию о котором нужно вернуть. По умолчанию возвращается информация обо всех запросах.

  • search

    Необязательный параметр, задающий строку для поиска в информации о запросах. В настоящее время поддерживается только сопоставление строк.

  • is_all_node

    Необязательный параметр. Если true, возвращается информация о запросах всех узлов FE; если false, возвращается информация о запросах текущего узла FE. По умолчанию true.

Ответ​

{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"Query ID",
"FE Node",
"Query User",
"Execution Database",
"Sql",
"Query Type",
"Start Time",
"End Time",
"Execution Duration",
"Status"
],
"rows": [
[
...
]
]
},
"count": 0
}
Примечание

Начиная с версии Doris 1.2 пользователи Admin и Root могут просматривать все запросы. Обычные пользователи могут просматривать только запросы, отправленные ими самими.

Примеры​

GET /rest/v2/manager/query/query_info

{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"Query ID",
"FE Node",
"Query User",
"Execution Database",
"Sql",
"Query Type",
"Start Time",
"End Time",
"Execution Duration",
"Status"
],
"rows": [
[
"d7c93d9275334c35-9e6ac5f295a7134b",
"127.0.0.1:8030",
"root",
"default_cluster:testdb",
"select c.id, c.name, p.age, p.phone, c.date, c.cost from cost c join people p on c.id = p.id where p.age > 20 order by c.id",
"Query",
"2021-07-29 16:59:12",
"2021-07-29 16:59:12",
"109ms",
"EOF"
]
]
},
"count": 0
}

Получение идентификатора запроса по Trace ID​

GET /rest/v2/manager/query/trace_id/{trace_id}

Описание​

Возвращает идентификатор запроса по Trace ID.

Перед выполнением запроса задайте уникальный Trace ID:

set session_context="trace_id:your_trace_id";

После выполнения запроса в той же сессии его идентификатор можно получить по Trace ID.

Параметры пути​

  • {trace_id}

    Trace ID, заданный пользователем.

Параметры запроса​

Ответ​

{
"msg": "success",
"code": 0,
"data": "fb1d9737de914af1-a498d5c5dec638d3",
"count": 0
}
Информация

Начиная с версии Doris 1.2 пользователи admin и root могут просматривать все запросы. Обычные пользователи могут просматривать только запросы, отправленные ими самими. Если указанный Trace ID не существует или у пользователя нет прав доступа, возвращается Bad Request:

{
"msg": "Bad Request",
"code": 403,
"data": "error messages",
"count": 0
}

Получение SQL и текстового профиля указанного запроса​

GET /rest/v2/manager/query/sql/{query_id}

GET /rest/v2/manager/query/profile/text/{query_id}

Описание​

Возвращает SQL и текстовый профиль запроса с указанным идентификатором.

Параметры пути​

  • query_id

    Идентификатор запроса.

Параметры запроса​

  • is_all_node

    Необязательный параметр. Если true, запрос с указанным идентификатором ищется на всех узлах FE; если false, поиск выполняется на узлах FE, к которым установлено текущее подключение. По умолчанию true.

Ответ​

{
"msg": "success",
"code": 0,
"data": {
"sql": ""
},
"count": 0
}
{
"msg": "success",
"code": 0,
"data": {
"profile": ""
},
"count": 0
}
Информация

Начиная с версии Doris 1.2 пользователи admin и root могут просматривать все запросы. Обычные пользователи могут просматривать только запросы, отправленные ими самими. Если указанный Trace ID не существует или у пользователя нет прав доступа, возвращается Bad Request:

{
"msg": "Bad Request",
"code": 403,
"data": "error messages",
"count": 0
}

Примеры​

  1. Получение SQL.

    GET /rest/v2/manager/query/sql/d7c93d9275334c35-9e6ac5f295a7134b

    Response:
    {
    "msg": "success",
    "code": 0,
    "data": {
    "sql": "select c.id, c.name, p.age, p.phone, c.date, c.cost from cost c join people p on c.id = p.id where p.age > 20 order by c.id"
    },
    "count": 0
    }

Получение информации о фрагментах и экземплярах указанного запроса​

GET /rest/v2/manager/query/profile/fragments/{query_id}

предупреждение

Начиная с версии 2.1.1 этот API устарел. Профиль по-прежнему можно скачать по адресу http://<fe_ip>:<fe_http_port>/QueryProfile

Описание​

Возвращает имя фрагмента, идентификатор экземпляра, IP-адрес и порт хоста, а также время выполнения для запроса с указанным идентификатором.

Параметры пути​

  • query_id

    Идентификатор запроса.

Параметры запроса​

  • is_all_node

    Необязательный параметр. Если true, запрос с указанным идентификатором ищется на всех узлах FE; если false, поиск выполняется на узлах FE, к которым установлено текущее подключение. По умолчанию true.

Ответ​

{
"msg": "success",
"code": 0,
"data": [
{
"fragment_id": "",
"time": "",
"instance_id": {
"": {
"host": "",
"active_time": ""
}
}
}
],
"count": 0
}
Информация

Начиная с версии Doris 1.2 пользователи admin и root могут просматривать все запросы. Обычные пользователи могут просматривать только запросы, отправленные ими самими. Если указанный Trace ID не существует или у пользователя нет прав доступа, возвращается Bad Request:

{
"msg": "Bad Request",
"code": 403,
"data": "error messages",
"count": 0
}

Примеры​

GET /rest/v2/manager/query/profile/fragments/d7c93d9275334c35-9e6ac5f295a7134b

Response:
{
"msg": "success",
"code": 0,
"data": [
{
"fragment_id": "0",
"time": "36.169ms",
"instance_id": {
"d7c93d9275334c35-9e6ac5f295a7134e": {
"host": "172.19.0.4:9060",
"active_time": "36.169ms"
}
}
},
{
"fragment_id": "1",
"time": "20.710ms",
"instance_id": {
"d7c93d9275334c35-9e6ac5f295a7134c": {
"host": "172.19.0.5:9060",
"active_time": "20.710ms"
}
}
},
{
"fragment_id": "2",
"time": "7.83ms",
"instance_id": {
"d7c93d9275334c35-9e6ac5f295a7134d": {
"host": "172.19.0.6:9060",
"active_time": "7.83ms"
},
"d7c93d9275334c35-9e6ac5f295a7134f": {
"host": "172.19.0.7:9060",
"active_time": "10.873ms"
}
}
}
],
"count": 0
}

Получение древовидного профиля указанного запроса​

GET /rest/v2/manager/query/profile/graph/{query_id}

Описание​

Возвращает древовидный профиль запроса с указанным идентификатором, как и команда show query profile.

Параметры пути​

  • query_id

    Идентификатор запроса.

Параметры запроса​

  • fragment_id и instance_id

    Необязательные параметры. Нужно либо указать оба параметра, либо не указывать ни один.
    Если оба параметра не указаны, возвращается упрощённое дерево профилей, что эквивалентно show query profile '/query_id';
    Если указаны оба параметра, возвращается подробное дерево профилей, что эквивалентно show query profile '/query_id/fragment_id/instance_id'.

  • is_all_node

    Необязательный параметр. Если true, информация о запросе с указанным идентификатором запрашивается на всех узлах FE; если false, информация запрашивается на узлах FE, к которым установлено текущее подключение. По умолчанию true.

Ответ​

{
"msg": "success",
"code": 0,
"data": {
"graph":""
},
"count": 0
}
Информация

Начиная с версии Doris 1.2 пользователи admin и root могут просматривать все запросы. Обычные пользователи могут просматривать только запросы, отправленные ими самими. Если указанный Trace ID не существует или у пользователя нет прав доступа, возвращается Bad Request:

{
"msg": "Bad Request",
"code": 403,
"data": "error messages",
"count": 0
}

Выполняющиеся запросы​

GET /rest/v2/manager/query/current_queries

Описание​

Возвращает выполняющиеся запросы со статистикой выполнения. Эта конечная точка использует то же представление статистики, что и SHOW PROC "/current_queries" и SHOW PROC "/current_query_stmts", предоставляя сведения о ходе выполнения задач и метрики ресурсов (scan/cpu/memory/shuffle/spill/cache). Доступно с версии 4.1.1+.

Параметры пути​

Параметры запроса​

  • is_all_node

    Необязательный параметр. Если true, возвращаются выполняющиеся запросы со всех FE. По умолчанию true.

Ответ​

{
"msg": "success",
"code": 0,
"data": {
"columnNames": [
"Frontend", "QueryId", "ConnectionId", "Catalog", "Database",
"User", "ExecTime", "SqlHash", "Statement",
"ScanRows", "ScanBytes", "ProcessRows", "CpuMs",
"MaxPeakMemoryBytes", "CurrentUsedMemoryBytes", "WorkloadGroupId",
"ShuffleSendBytes", "ShuffleSendRows",
"ScanBytesFromLocalStorage", "ScanBytesFromRemoteStorage",
"SpillWriteBytesToLocalStorage", "SpillReadBytesFromLocalStorage",
"BytesWriteIntoCache",
"TotalTasks", "FinishedTasks", "Progress"
],
"rows": [
[
"172.19.0.3", "108e47ab438a4560-ab1651d16c036491", "2", "internal",
"testdb", "root", "6074",
"1a35f62f4b14b9d7961b057b77c3102f", "select sleep(60)",
"0", "0.00", "0", "0",
"0.00", "0.00", "0",
"0.00", "0",
"0.00", "0.00",
"0.00", "0.00",
"0.00",
"1", "1", "100%"
]
]
},
"count": 0
}
СтолбецОписание
FrontendУзел FE, обрабатывающий запрос
QueryIdУникальный идентификатор запроса
ConnectionIdИдентификатор соединения MySQL
CatalogИмя Catalog
DatabaseИмя схемы/базы данных
UserПользователь, отправивший запрос
ExecTimeВремя выполнения в миллисекундах
SqlHashХеш MD5 инструкции SQL
StatementТекст инструкции SQL
ScanRowsОбщее число строк, просканированных в хранилище
ScanBytesОбщее число байтов, просканированных в хранилище
ProcessRowsСтроки, обработанные конвейером выполнения
CpuMsЗатраченное процессорное время в миллисекундах
MaxPeakMemoryBytesМаксимальный объём памяти, использованный во время выполнения
CurrentUsedMemoryBytesОбъём памяти, используемой запросом в данный момент
WorkloadGroupIdИдентификатор группы рабочей нагрузки
ShuffleSendBytesОбщее число байтов, отправленных через shuffle
ShuffleSendRowsОбщее число строк, отправленных через shuffle
ScanBytesFromLocalStorageЧисло байтов, просканированных в локальном хранилище
ScanBytesFromRemoteStorageЧисло байтов, просканированных в удалённом хранилище (например, HDFS, S3)
SpillWriteBytesToLocalStorageЧисло байтов, записанных на локальный диск при spill
SpillReadBytesFromLocalStorageЧисло байтов, прочитанных обратно с локального диска после spill
BytesWriteIntoCacheЧисло байтов, записанных в кеш
TotalTasksОбщее число задач конвейера выполнения для этого запроса
FinishedTasksЧисло завершённых задач конвейера выполнения
ProgressРассчитанный прогресс выполнения запроса (FinishedTasks / TotalTasks)

Отмена запроса​

POST /rest/v2/manager/query/kill/{query_id}

Описание​

Отменяет запрос указанного соединения.

Параметры пути​

  • {query_id}

    Идентификатор запроса. Его можно получить через API trance_id.

Параметры запроса​

Ответ​

{
"msg": "success",
"code": 0,
"data": null,
"count": 0
}

Получение прогресса выполнения запроса по Trace ID​

GET /rest/v2/manager/query/statistics/{trace_id} (4.0.0+)

Описание​

Возвращает статистику выполняющегося запроса по Trace ID. Этот API можно вызывать периодически, чтобы отслеживать ход выполнения запроса.

Параметры пути​

  • {trace_id}

    Trace ID. Заданный пользователем Trace ID, установленный с помощью SET session_context="trace_id:xxxx".

Ответ​

{
"msg": "success",
"code": 0,
"data": {
"scanRows": 1234567,
"scanBytes": 987654321,
"returnedRows": 12345,
"processRows": 2345678,
"cpuMs": 15600,
"maxPeakMemoryBytes": 536870912,
"currentUsedMemoryBytes": 268435456,
"shuffleSendBytes": 104857600,
"shuffleSendRows": 50000,
"scanBytesFromLocalStorage": 734003200,
"scanBytesFromRemoteStorage": 253651121,
"spillWriteBytesToLocalStorage": 0,
"spillReadBytesFromLocalStorage": 0,
"bytesWriteIntoCache": 0,
"totalTasksNum": 74,
"finishedTasksNum": 51,
"progress": "68%"
},
"count": 0
}