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

SHOW PROC

Описание​

Система Proc представляет собой уникальную возможность Doris. Тем, кто работал с Linux, эта концепция может быть понятнее. В системах Linux proc представляет собой виртуальную файловую систему, которая обычно монтируется в каталоге /proc. Через эту файловую систему пользователи могут просматривать внутренние структуры данных системы. Например, сведения о процессе с указанным pid можно просмотреть через /proc/pid.

Как и система proc в Linux, система proc в Doris организована в виде структуры каталогов. Это позволяет просматривать различные сведения о системе по указанному пользователем «пути к каталогу (пути proc)».

Система proc предназначена прежде всего для системных администраторов и позволяет удобно просматривать внутреннее состояние работающей системы: состояние tablet таблицы, балансировку кластера, состояние различных заданий и другие сведения. Это очень полезная возможность.

Просматривать систему proc в Doris можно двумя способами.

  1. Через веб-интерфейс Doris по адресу: http://FE_IP:FE_HTTP_PORT
  2. С помощью команды

Все команды, поддерживаемые Doris PROC, можно просмотреть с помощью SHOW PROC "/";

После подключения к Doris через клиент MySQL можно выполнить оператор SHOW PROC, чтобы просмотреть сведения об указанном каталоге proc. Каталог proc задаётся абсолютным путём, начинающимся с "/".

Результаты оператора show proc представлены в виде двумерной таблицы. Обычно первый столбец этой таблицы содержит имена подкаталогов proc следующего уровня.

mysql> show proc "/";
+---------------------------+
| name |
+---------------------------+
| auth |
| backends |
| bdbje |
| brokers |
| catalogs |
| cluster_balance |
| cluster_health |
| colocation_group |
| current_backend_instances |
| current_queries |
| current_query_stmts |
| dbs |
| diagnose |
| frontends |
| jobs |
| load_error_hub |
| monitor |
| resources |
| routine_loads |
| statistic |
| stream_loads |
| tasks |
| transactions |
| trash |
+---------------------------+
23 rows in set (0.00 sec)

Пояснения:

  1. auth: имя пользователя и сведения о соответствующих правах доступа.
  2. backends: отображает список узлов BE в кластере; эквивалентно SHOW BACKENDS.
  3. bdbje: чтобы просмотреть список баз данных bdbje, добавьте в файл fe.conf параметр enable_bdbje_debug_mode=true, а затем запустите FE командой sh start_fe.sh --daemon, чтобы перейти в режим debug. После перехода в режим debug запускаются только http server и MySQLServer и открывается экземпляр BDBJE; загрузка метаданных и последующие этапы запуска не выполняются.
  4. binlog: просмотр сведений о binlog, включая количество записей binlog, размер binlog в байтах, временной диапазон binlog и другие сведения.
  5. brokers : просмотр сведений об узлах broker кластера; эквивалентно SHOW BROKER.
  6. catalogs : просмотр созданных объектов Catalog; эквивалентно SHOW CATALOGS.
  7. cluster_balance : проверка балансировки кластера. Подробнее см. в разделе Управление репликами данных.
  8. cluster_health: выполните оператор SHOW PROC '/cluster_health/tablet_health';, чтобы просмотреть состояние реплик во всём кластере.
  9. colocation_group : эта команда позволяет просмотреть сведения о существующих группах в кластере. Подробнее см. в разделе Colocation Join.
  10. current_backend_instances : отображает список узлов be, которые в данный момент выполняют задания.
  11. current_queries : просмотр списка выполняемых запросов со статистикой времени выполнения, включая ход выполнения задач и показатели ресурсов (сканирование/CPU/память/shuffle/spill/кэш). Начиная с 4.1.1 здесь представлено то же расширенное представление, что и в current_query_stmts.
  12. current_query_stmts: возвращает выполняемый запрос с тем же представлением статистики, что и current_queries, включая ход выполнения отдельных задач и показатели ресурсов.
  13. dbs: используется главным образом для просмотра метаданных каждой базы данных и таблиц в кластере Doris. Эти сведения включают структуру таблиц, разделы, материализованные представления, шарды данных, реплики и многое другое. Этот каталог и его подкаталоги позволяют наглядно просматривать метаданные таблиц кластера и находить такие проблемы, как неравномерное распределение данных, сбои реплик и т. д.
  14. diagnose: выявление и диагностика распространённых проблем управления кластером, включая балансировку и перенос реплик, ошибки транзакций и т. д.
  15. frontends: отображает сведения обо всех узлах FE в кластере, включая IP-адрес, роль, состояние, признак ведущего узла и т. д.; эквивалентно SHOW FRONTENDS.
  16. jobs: отображает статистику заданий всех типов. Если задан конкретный dbId, возвращается статистика соответствующей базы данных. Если dbId равен -1, возвращается суммарная статистика по всем базам данных.
  17. load_error_hub: Doris поддерживает централизованное хранение сведений об ошибках заданий загрузки в хранилище ошибок. Затем сообщения об ошибках можно просматривать непосредственно с помощью оператора SHOW LOAD WARNINGS;. Здесь отображаются сведения о конфигурации хранилища ошибок.
  18. monitor : отображает использование ресурсов JVM процесса FE.
  19. resources : просмотр системных ресурсов. Обычные учётные записи могут видеть только ресурсы, на использование которых у них есть право USAGE_PRIV. Только учётные записи root и admin могут видеть все ресурсы. Эквивалентно SHOW RESOURCES.
  20. routine_loads: отображает сведения обо всех заданиях Routine Load, включая имя задания, состояние и т. д.
  21. statistics: используется главным образом для обобщения и просмотра количества баз данных, таблиц, разделов, шардов и реплик в кластере Doris, а также количества неисправных реплик. Эти сведения помогают контролировать общий объём метаданных кластера, дают общее представление о шардировании кластера и позволяют быстро проверить состояние шардов. Это помогает определить проблемные шарды данных.
  22. stream_loads: возвращает выполняемую задачу Stream Load.
  23. tasks : отображает общее количество задач различных заданий и количество сбоев.
  24. transactions : используется для просмотра подробных сведений о транзакции с указанным идентификатором; эквивалентно SHOW TRANSACTION.
  25. trash: этот оператор используется для просмотра объёма пространства, занимаемого мусорными данными в backend. Эквивалентно SHOW TRASH.

Подробное описание​

  1. /binlog

Binlog регистрирует изменения данных в Doris. С помощью этой команды администраторы могут отслеживать состояние Binlog, обеспечивать его нормальную работу и рационально планировать пространство для хранения.

Имя поляТип данныхОписание
NameStringИмя базы данных или таблицы.
TypeStringТип объекта данных; значение может быть "db" (база данных) или "table" (таблица).
IdNumberИдентификатор базы данных или таблицы.
DroppedBooleanУдалена ли база данных или таблица. Значение "true" означает, что объект удалён из Doris, но его записи Binlog ещё сохраняются; значение "false" означает, что объект по-прежнему существует в системе. Даже после удаления базы данных или таблицы система некоторое время сохраняет записи Binlog, пока не истечёт TTL или они не будут очищены вручную.
BinlogLengthNumberОбщее количество записей бинарного журнала для этой базы данных или таблицы.
BinlogSizeNumberОбщий размер бинарных журналов (байты).
FirstBinlogCommittedTimeNumberМетка времени фиксации первой записи бинарного журнала (метка времени Unix, миллисекунды).
ReadableFirstBinlogCommittedTimeStringВремя фиксации первой записи бинарного журнала (в удобочитаемом формате).
LastBinlogCommittedTimeNumberМетка времени фиксации последней записи бинарного журнала (метка времени Unix, миллисекунды).
ReadableLastBinlogCommittedTimeStringВремя фиксации последней записи бинарного журнала (в удобочитаемом формате).
BinlogTtlSecondsNumberСрок хранения бинарных журналов (секунды); журналы, превысившие этот срок, могут быть удалены.
BinlogMaxBytesNumberМаксимальный размер бинарных журналов (байты); превышение этого размера может запустить очистку.
BinlogMaxHistoryNumsNumberМаксимальное количество сохраняемых исторических записей бинарного журнала; превышение этого количества может запустить очистку.

Примечания:

  • В результатах этой команды отображаются только базы данных и таблицы, для которых включено ведение бинарного журнала.
  • Если ведение бинарного журнала включено на уровне базы данных, отображаются сведения о бинарном журнале базы данных; в противном случае отображаются сведения об отдельных таблицах этой базы данных, для которых включено ведение бинарного журнала.

Пример​

  1. Например, "/dbs" отображает все базы данных, а "/dbs/10002" отображает все таблицы базы данных с идентификатором 10002.

    mysql> show proc "/dbs/10002";
    +---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
    | TableId | TableName | IndexNum | PartitionColumnName | PartitionNum | State | Type | LastConsistencyCheckTime | ReplicaCount |
    +---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
    | 10065 | dwd_product_live | 1 | dt | 9 | NORMAL | OLAP | NULL | 18 |
    | 10109 | ODS_MR_BILL_COSTS_DO | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
    | 10119 | test | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
    | 10124 | test_parquet_import | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
    +---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
    4 rows in set (0.00 sec)
  2. Отображение сведений о количестве таблиц во всех базах данных кластера.

    mysql> show proc '/statistic';
    +-------+----------------------+----------+--------------+----------+-----------+------------+
    | DbId | DbName | TableNum | PartitionNum | IndexNum | TabletNum | ReplicaNum |
    +-------+----------------------+----------+--------------+----------+-----------+------------+
    | 10002 | default_cluster:test | 4 | 12 | 12 | 21 | 21 |
    | Total | 1 | 4 | 12 | 12 | 21 | 21 |
    +-------+----------------------+----------+--------------+----------+-----------+------------+
    2 rows in set (0.00 sec)
  3. Следующая команда позволяет просмотреть сведения о существующих группах в кластере.

    SHOW PROC '/colocation_group';

    +-------------+--------------+--------------+------------+-------------------+----------+----------+----------+
    | GroupId | GroupName | TableIds | BucketsNum | ReplicaAllocation | DistCols | IsStable | ErrorMsg |
    +-------------+--------------+--------------+------------+-------------------+----------+----------+----------+
    | 10005.10008 | 10005_group1 | 10007, 10040 | 10 | tag.location.default: 3 | int(11) | true | |
    +-------------+--------------+--------------+------------+-------------------+----------+----------+----------+
    • GroupId: уникальный в пределах кластера идентификатор группы; первая часть представляет собой идентификатор базы данных, а вторая часть представляет собой идентификатор группы.
    • GroupName: полное имя группы.
    • TableIds: список идентификаторов таблиц, входящих в эту группу.
    • BucketsNum: количество бакетов.
    • ReplicaAllocation: политика распределения реплик.
    • DistCols: столбцы распределения, то есть тип столбца бакетирования.
    • IsStable: стабильна ли группа (определение стабильности см. в разделе Colocation replica balance and repair).
    • ErrorMsg: текущее сообщение об ошибке группы; пустое, если всё в порядке.
    Изменение поведения (4.0.8)

    Начиная с версии 4.0.8 столбец ReplicaAllocation отображает null в режиме с разделением вычислений и хранения. В этой архитектуре репликами управляет слой хранения, поэтому семантика распределения реплик режима с совмещёнными хранением и вычислениями здесь неприменима, а ранее отображавшееся значение вводило в заблуждение.

  4. Используйте следующие команды для более подробного просмотра распределения данных группы:

    SHOW PROC '/colocation_group/10005.10008';

    +-------------+---------------------+
    | BucketIndex | BackendIds |
    +-------------+---------------------+
    | 0 | 10004, 10002, 10001 |
    | 1 | 10003, 10002, 10004 |
    | 2 | 10002, 10004, 10001 |
    | 3 | 10003, 10002, 10004 |
    | 4 | 10002, 10004, 10003 |
    | 5 | 10003, 10002, 10001 |
    | 6 | 10003, 10004, 10001 |
    | 7 | 10003, 10004, 10002 |
    +-------------+---------------------+
    • BucketIndex: индекс бакета в последовательности.
    • BackendIds: список идентификаторов узлов BE, на которых расположены шарды данных бакета.

    Имена столбцов, кроме BucketIndex, зависят от режима развёртывания: в режиме с совмещёнными хранением и вычислениями каждому тегу ресурсов соответствует отдельный столбец, а в режиме с разделением вычислений и хранения отдельный столбец соответствует каждой вычислительной группе. Если такого разбиения нет, используется единственный столбец BackendIds.

  5. Отображение общего количества задач различных заданий и количества сбоев.

    mysql> show proc '/tasks';
    +-------------------------+-----------+----------+
    | TaskType | FailedNum | TotalNum |
    +-------------------------+-----------+----------+
    | CREATE | 0 | 0 |
    | DROP | 0 | 0 |
    | PUSH | 0 | 0 |
    | CLONE | 0 | 0 |
    | STORAGE_MEDIUM_MIGRATE | 0 | 0 |
    | ROLLUP | 0 | 0 |
    | SCHEMA_CHANGE | 0 | 0 |
    | CANCEL_DELETE | 0 | 0 |
    | MAKE_SNAPSHOT | 0 | 0 |
    | RELEASE_SNAPSHOT | 0 | 0 |
    | CHECK_CONSISTENCY | 0 | 0 |
    | UPLOAD | 0 | 0 |
    | DOWNLOAD | 0 | 0 |
    | CLEAR_REMOTE_FILE | 0 | 0 |
    | MOVE | 0 | 0 |
    | REALTIME_PUSH | 0 | 0 |
    | PUBLISH_VERSION | 0 | 0 |
    | CLEAR_ALTER_TASK | 0 | 0 |
    | CLEAR_TRANSACTION_TASK | 0 | 0 |
    | RECOVER_TABLET | 0 | 0 |
    | STREAM_LOAD | 0 | 0 |
    | UPDATE_TABLET_META_INFO | 0 | 0 |
    | ALTER | 0 | 0 |
    | INSTALL_PLUGIN | 0 | 0 |
    | UNINSTALL_PLUGIN | 0 | 0 |
    | Total | 0 | 0 |
    +-------------------------+-----------+----------+
    26 rows in set (0.01 sec)
  6. Отображение состояния реплик во всём кластере.

    mysql> show proc '/cluster_health/tablet_health';
    +----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
    | DbId | DbName | TabletNum | HealthyNum | ReplicaMissingNum | VersionIncompleteNum | ReplicaRelocatingNum | RedundantNum | ReplicaMissingInClusterNum | ReplicaMissingForTagNum | ForceRedundantNum | ColocateMismatchNum | ColocateRedundantNum | NeedFurtherRepairNum | UnrecoverableNum | ReplicaCompactionTooSlowNum | InconsistentNum | OversizeNum | CloningNum |
    +----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
    | 25852112 | default_cluster:bowen | 1920 | 1920 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
    | 25342914 | default_cluster:bw | 128 | 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
    | 2575532 | default_cluster:cps | 1440 | 1440 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 0 |
    | 26150325 | default_cluster:db | 38374 | 38374 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 453 | 0 |
    +----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+
    4 rows in set (0.01 sec)

    Просмотр состояния реплик в отдельной базе данных, например в базе данных с DbId 25852112.

    mysql> show proc '/cluster_health/tablet_health/25852112';
    Изменение поведения (4.0.8)

    Начиная с версии 4.0.8 в режиме с разделением вычислений и хранения все tablet учитываются как HEALTHY, а такие счётчики, как UnrecoverableNum, больше не показывают ненулевые значения.

    В режиме с разделением вычислений и хранения за состояние реплик отвечает слой хранения. Ранее проверка состояния использовала логику режима с совмещёнными хранением и вычислениями и ошибочно классифицировала исправные tablet как UNRECOVERABLE. Из-за этого SHOW PROC '/diagnose' сообщал о несуществующей проблеме Tablet Health. Статистика режима с совмещёнными хранением и вычислениями не изменилась.

  7. Выявление и диагностика проблем управления кластером

    MySQL > show proc "/diagnose";
    +-----------------+----------+------------+
    | Item | ErrorNum | WarningNum |
    +-----------------+----------+------------+
    | cluster_balance | 2 | 0 |
    | Total | 2 | 0 |
    +-----------------+----------+------------+

    2 rows in set

    Просмотр проблем балансировки и переноса реплик

    MySQL > show proc "/diagnose/cluster_balance";
    +-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+
    | Item | Status | Content | Detail Cmd | Suggestion |
    +-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+
    | Tablet Health | ERROR | healthy tablet num 691 < total tablet num 1014 | show proc "/cluster_health/tablet_health"; | <null> |
    | BeLoad Balance | ERROR | backend load not balance for tag {"location" : "default"}, low load backends [], high load backends [10009] | show proc "/cluster_balance/cluster_load_stat/location_default/HDD" | <null> |
    | Disk Balance | OK | <null> | <null> | <null> |
    | Colocate Group Stable | OK | <null> | <null> | <null> |
    | History Tablet Sched | OK | <null> | <null> | <null> |
    +-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+

    5 rows in set

Ключевые слова​

SHOW, PROC

Рекомендации​