安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install huawei-cloud-dli-manage
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-huawei-cloud-dli-manage。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
huawei-cloud-dli-manage
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install huawei-cloud-dli-manage - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 huawei-cloud-dli-manage。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
此 Openclaw Skills 条目赋能 AI 代码 Agent,使其能够通过 hcloud CLI 管理 Huawei Cloud Data Lake Insight (DLI) 资源的生命周期。它涵盖队列容量与计划、SQL 与 Spark 批处理作业、Flink 流作业、数据库与表元数据、跨源连接、资源包、全局变量、作业模板、权限以及 CU 使用率巡检。
该技能支持运维巡检、故障排查、授权变更以及结构化报告或变更快照。它被特意限定在云端 DLI 资源管理的范围内:不会修改 OBS 数据内容、不会更改 IAM 策略,也不会自主运行具有破坏性的业务 SQL。高风险操作需要显式的二次确认,这使得这些 Openclaw Skills 非常适合用于受控的数据平台运维。
应用场景
日常 DLI 巡检:
盘点队列、作业、弹性资源池、配额和委托状态;标记 CU 使用率超过 80% 的情况并汇报风险或清理建议。
批处理作业故障排查:
查找失败的 SQL 或 Spark 作业,检查状态、详情、进度和日志,然后总结可能的原因,如 SQL、参数、配额或网络连接问题。
Flink 运维:
审查作业状态与指标,并在具备所需确认保护措施的前提下管理启动、停止、更新或删除。
元数据治理:
检查数据库、表、Schema、分区、所有者、用户及权限;准备授权的所有权或元数据变更。
跨源连接性检查:
审查增强型连接,运行连通性任务,检查队列绑定,并汇报可能的网络或配置问题。
资源与模板维护:
盘点资源包、全局变量、队列计划以及 SQL、Flink 或 Spark 模板;提出闲置资源清理方案供用户审批。
队列容量管理:
审查队列配置和 CU 使用情况,创建或缩放队列,并管理定时队列计划,同时在执行缩容操作时保持谨慎。
工作原理
检查前提条件与范围: 使用已通过身份验证且具备适当 DLI 权限的 hcloud CLI 配置,确认目标区域,并确认所请求的任务处于 DLI 资源管理范围内。
操作前检查: 查询相关队列、作业、元数据、连接、权限或配额。使用筛选器和分页保持结果精准;在向队列路由作业之前验证该队列是否存在。
分析状态: 关联命令结果以识别失败、CU 压力、所有权或权限问题、陈旧资源或连接风险。对于巡检和故障排查,将发现汇总为结构化报告。
提出变更: 解释拟议的操作及其范围。对于清理工作,先提交方案并等待用户批准;切勿任意删除生产业务元数据。
应用授权操作: 运行带有正确区域和资源标识符的相应 hcloud dli 命令。仅在获得明确授权且非破坏性的情况下提交 SQL,例如以检查为导向的 SELECT 或元数据 SHOW 语句。
使用安全关卡: 在每次高风险操作前,展示确切命令、影响范围和不可逆警告,然后等待显式确认。切勿在没有逐条命令确认的情况下批量执行破坏性操作。
验证并汇报: 重新查询受影响的资源或作业,总结结果,并提供变更快照或巡检报告。在输出中掩码 AK/SK 凭据和敏感变量值。
配置指南
Prerequisites
安装并通过有效的 AK/SK 配置验证 hcloud CLI。遵循 references/cli-installation-guide.md 进行安装和配置。
授予任务所需的最小权限 IAM 权限:用于查询的 DLI 读取权限,以及用于变更的 DLI 写入或管理员权限。参见 references/iam-policies.md。
确认 DLI 区域。在命令中包含 --cli-region={region};KooCLI 可能会从已配置的 profile 中自动填充区域和项目 ID。
对于资源上传或 SQL 结果导出,准备一个现有的 OBS 桶并提供所需的 OBS 对象 URL。CreateTable --data_path 使用 s3a:// 路径;其他文档说明的 OBS 路径使用 obs://。
在提交 SQL 或 Spark 作业前,使用 ListQueues 确认有适当的运行中队列可用。
Verify CLI access
hcloud dli ListQueues --cli-region={region} --queue_type=all
hcloud dli ListDatabases --cli-region={region} --limit=5
hcloud dli ShowQuota --cli-region={region}
Command conventions
hcloud dli --cli-region= [--key=value ...]
将占位符替换为目标区域和资源参数。Operation 名称使用 PascalCase,例如 ListQueues 或 CreateSqlJob;带索引的参数使用后缀,如 --job_ids.1=101。查阅 references/dli-operation-catalog.md 获取特定操作的参数,查阅 references/common-workflows.md 获取工作流食谱。
Huawei Cloud DLI Resource Management 数据架构与分类体系
该技能通过 hcloud CLI 操作作用于 Huawei Cloud DLI 资源;SKILL.md 未定义本地数据库或规定的磁盘输出格式。其工作数据围绕以下云资源类型组织:
Resource group Representative identifiers and fields Typical operations
队列和资源池 区域、队列名称、队列类型、CU 数量、资源池名称、容量和状态 列出、检查、创建、缩放、计划和删除
SQL 和 Spark 作业 作业 ID 或批处理 ID、状态、队列、数据库、进度、详情和日志 提交、列出、检查、取消、预览、导出和排查故障
Flink 作业 作业 ID、作业类型、状态、队列、CU、并行度和指标 创建、列出、检查、更新、启动、停止、删除和度量
数据库和表 数据库和表名称、Schema、位置、所有者、分区、用户和权限 盘点、检查、创建、治理、预览和删除
增强型连接 连接 ID、VPC、子网、主机、队列绑定和连通性任务 创建、检查、更新、绑定、测试和删除
支撑资源 资源包名称和组;全局变量名称和敏感性;模板 ID 和类型 上传、列出、更新、授权和管理
报告应将相关命令结果整合为一份结构化的巡检报告,其中包含清单、发现、风险和清理建议。授权变更可以总结在变更快照中。这些是该技能所描述的报告输出,而不是自动将文件写入磁盘的保证。对凭据和敏感变量值进行掩码;适当地对大型列表进行分页并使用状态筛选器。
高级特性
广泛的 DLI 生命周期覆盖:
通过 hcloud CLI 中的 DLI 服务协调队列、SQL、Spark、Flink、元数据、连接、资源包、变量、模板、权限和配额操作。
破坏性变更的安全关卡:
对高风险操作需要显式的二次确认,包括数据库或表删除、队列删除、队列缩容、取消运行中的流作业以及 Flink 批量停止或删除。
非破坏性 SQL 边界:
不自主运行业务写入或覆盖 SQL。SQL 提交仅限于经用户明确确认的非破坏性语句或授权任务。
运维诊断:
支持作业状态、详情、进度、日志、指标、配额和连接性检查,以辅助故障排查和资源巡检。
容量监控:
比较配额使用情况,标记超过 80% 的使用率,并使用弹性资源池缩放记录来提供建议。
连接故障排查:
测试连通性并检查队列绑定;当测试失败时,文档中的做法是在重新创建连接之前验证安全组和 VPC 路由。
受控清理工作流:
盘点可能闲置的资源,报告清理建议,并在删除前等待用户确认。
凭据与输出卫生:
掩码 AK/SK 和敏感变量值,优先使用经过筛选和分页的结果,并生成结构化报告和变更快照。
name: huawei-cloud-dli-manage
description: >
Manages Huawei Cloud DLI (Data Lake Insight) full lifecycle operations:
compute queue management (create/scale/plan/delete), batch jobs (SQL/Spark
submit, cancel, status, logs, result export), Flink stream jobs (submit,
start/stop, batch delete, metrics), database and table metadata governance
(create/delete/owner/privileges/partitions/preview), enhanced cross-source
connections (create/update/delete, queue binding, connectivity checks),
resource packages (JAR/Py/File upload), global variables, SQL/Flink/Spark job
templates, permission authorization, and CU usage patrol. Produces structured
inspection reports and change snapshots, detects over-high CU usage and
cross-source connectivity failures. High-risk operations require double
confirmation; cloud-side operations only, no autonomous business SQL overwrite.
triggers:
- "DLI队列管理"
- "DLI作业排查"
- "Flink作业运维"
- "库表元数据治理"
- "跨源连接配置"
- "资源包上传"
- "全局变量管理"
- "作业模板管理"
- "CU用量巡检"
- "闲置资源清理"
- "DLI日常巡检"
- "DLI troubleshooting"
- "DLI inspection"
- "DLI queue scale"
- "DLI job submit"
- "query DLI databases/tables" tags: [huawei-cloud, dli, bigdata, data-lake-insight, ops]
Huawei Cloud DLI Resource Management Skill
Overview
This Skill provides a full-lifecycle operations toolkit for Huawei Cloud DLI (Data Lake Insight) using the dli service of the hcloud CLI, covering ten capability groups:
Queue management — ListQueues, ShowQueue, CreateQueue, DeleteQueue, RunQueueAction (scale), queue plans, CIDR
Batch jobs (SQL/Spark) — CreateSqlJob, ListSqlJobs, ShowSqlJobStatus/Detail/Progress, CancelSqlJob, ExportSqlJobResult, PreviewSqlJobResult, Spark equivalents + ShowSparkJobLog
Flink stream jobs — CreateFlinkSqlJob, CreateFlinkJarJob, ListFlinkJobs, ShowFlinkJob, UpdateFlink*, BatchRunFlinkJobs, BatchStopFlinkJobs, BatchDeleteFlinkJobs, ShowFlinkMetric
Database management — ListDatabases, CreateDatabase, DeleteDatabase, UpdateDatabaseOwner, ListDatabaseUsers
Table management — ListTables, ShowTable, CreateTable, DeleteTable, UpdateTableOwner, ListPartitions, PreviewTable, table users/privileges
Enhanced connections — ListEnhancedConnections, Create/Update/DeleteEnhancedConnection, queue binding, CreateConnectivityTask/ShowConnectivityTask
Resource packages — ListJobResources, ShowJobResource, UploadJar/PythonFile/FileJobResources, DeleteJobResource, UpdateJobResourceOwner
Global variables — ListGlobalVariables, CreateGlobalVariable, UpdateGlobalVariable, DeleteGlobalVariable; Job templates — SQL/Flink SQL/Spark templates: list, create, update, delete
Privileges & patrol — authorization actions, queue/database/table users, elastic resource pools (CU), quota, agency, catalogs
Important Constraints
Constraint Policy
High-risk operations Double confirmation required before: deleting databases (especially --cascade), deleting tables, deleting queues, deleting/cancelling running stream jobs, batch-stop/batch-delete Flink jobs, scaling queues down (scale_in), deleting queue plans (metadata is permanently irrecoverable — verify target and scope before confirming)
Business SQL This Skill performs cloud-side operations only. It never autonomously runs business write/overwrite SQL (INSERT OVERWRITE, DELETE, UPDATE, DROP) against user business tables via CreateSqlJob. SQL submission is allowed only for explicitly user-confirmed, non-destructive statements (e.g. SELECT / metadata SHOW), scoped to inspection or user-authorized tasks
Production idle cleanup Never arbitrarily clean production business metadata. Idle-resource cleanup proposals must be reported and confirmed by the user first
Scope All operations stay within DLI resource management; no changes to OBS data content, no IAM policy changes
Prerequisites
hcloud CLI installed and authenticated with a valid AK/SK profile (installation guide and verification: see references/cli-installation-guide.md).
IAM permissions: DLI read permissions for query operations; DLI admin/write permissions for create/update/delete. See references/iam-policies.md.
Region: DLI resources are regional; pass --cli-region={region} on every command.
OBS paths (resource upload / result export): a pre-existing OBS bucket with readable paths, passed as OBS object URLs for --paths.[N].
Queue for SQL/Spark jobs: a running SQL or general queue is required to submit jobs; check ListQueues first.
Workflow
Scenario 1: Daily Resource Patrol (巡检)
ListQueues --with-charge-info -> queue inventory/CU; ListElasticResourcePools + ScaleRecords -> pool CU
ListSqlJobs / ListFlinkJobs -> running & failed jobs; ShowQuota -> CU used/remaining (>80% flag)
ShowDliAgency -> agency state; Output: structured patrol report (inventory + risks + cleanup proposals)
Scenario 2: Batch Job Troubleshooting (批作业故障排查)
ListSqlJobs --job-status=failed / ListSparkJobs --state=failed -> find failures
ShowSqlJobStatus/ShowSqlJobDetail -> reason & logs; (Spark) ShowSparkJobLog -> log tail
ShowSqlJobProgress -> running progress; Output: root-cause report (SQL/parameter/quota/connection)
Scenario 3: Flink Stream Job Operations (流作业运维)
ListFlinkJobs --job_type --status -> jobs; ShowFlinkJob -> detail/restart/checkpoint info
BatchRunFlinkJobs / BatchStopFlinkJobs (--trigger_savepoint) -> start/stop after double confirmation
ShowFlinkMetric -> CU metrics; Output: change snapshot of start/stop actions
Scenario 4: Metadata Governance (库表元数据治理)
ListDatabases / ListTables --with-detail -> inventory; ShowTable -> schema/location/owner
ListPartitions -> partition layout; UpdateTableOwner / UpdateDatabaseOwner -> ownership alignment
DeleteDatabase/DeleteTable -> ONLY with user double confirmation (cascade risk!); Output: change snapshot
Scenario 5: Cross-Source Connection (跨源连接)
ListEnhancedConnections -> inventory + status; CreateConnectivityTask + ShowConnectivityTask -> test result
AssociateQueueToEnhancedConnection / DisassociateQueueFromEnhancedConnection -> queue binding (if test fails)
UpdateEnhancedConnection --hosts.[N].ip/.name -> host whitelist (full overwrite); Output: connectivity risk report
Scenario 6: Idle Resource Cleanup (闲置资源清理)
ListQueues/ListQueuePlans/ListJobResources/ListGlobalVariables/ListSqlJobTemplates -> stale inventory
Report cleanup proposals to user -> wait for confirmation
After confirmation: DeleteQueue, DeleteJobResource, DeleteGlobalVariable, BatchDeleteSqlJobTemplates; Output: snapshot
Safety Gate (all scenarios)
Before any high-risk command (see Constraints), present the exact command, its scope, and irreversibility warning to the user and wait for an explicit confirmation keyword. Never batch-execute destructive commands without per-command confirmation. Mask AK/SK in outputs and logs.
Core Commands
All commands use hcloud dli . --cli-region and --project_id are auto-filled by KooCLI (from profile) and omitted in parameter tables below. The full operation catalog with per-command parameter tables lives in references/dli-operation-catalog.md.
- Queue Management
List Queues
hcloud dli ListQueues --cli-region={region} --queue_type={sql|general|all} [--tags={key=value}]
Parameter Required Description
--queue_type No sql, general, or all (default sql) --tags No Tag filter, e.g. owner=ph
Show Queue
hcloud dli ShowQueue --cli-region={region} --queue_name={queue_name}
Parameter Required Description
--queue_name Yes Name of the queue
Create Queue
hcloud dli CreateQueue --cli-region={region} --queue_name={queue_name} --cu_count={cu_count} [--queue_type={sql|general}] [--engine={spark|flink|hetero}] [--charging_mode={prePaid|postPaid}]
Parameter Required Description
--queue_name Yes Queue name (unique in project)
--cu_count Yes Number of CUs (16 minimum)
--queue_type No sql or general (default sql)
--engine No spark, flink, or hetero
--charging_mode No prePaid or postPaid
Scale Queue (risk: double confirm for scale_in)
hcloud dli RunQueueAction --cli-region={region} --queue_name={queue_name} --action={scale_out|scale_in} [--cu_count={cu_count}] [--force=true]
Parameter Required Description
--action Yes scale_out or scale_in
--queue_name Yes Queue to scale
--cu_count No Target CU count
--force No Force scale when jobs are running
Delete Queue (risk: double confirm)
hcloud dli DeleteQueue --cli-region={region} --queue_name={queue_name}
Parameter Required Description
--queue_name Yes Queue to delete (must be stopped/empty)
Queue Plans (定时扩缩容)
hcloud dli ListQueuePlans --cli-region={region} --queue_name={queue_name}
hcloud dli CreateQueuePlan --cli-region={region} --queue_name={queue_name} --plan_name={plan_name}
--start_hour={hour} --start_minute={minute} --target_cu={cu_count} [--activate={true|false}]
hcloud dli UpdateQueuePlan --cli-region={region} --queue_name={queue_name} --plan_id={plan_id}
--plan_name={plan_name} --start_hour={hour} --start_minute={minute} --target_cu={cu_count}
hcloud dli DeleteQueuePlan --cli-region={region} --queue_name={queue_name} --plan_id={plan_id}
Parameter Required Description
--queue_name Yes Target queue
--plan_name Yes (create/update) Plan name
--plan_id Yes (update/delete) Plan ID
--start_hour / --start_minute Yes (create/update) Trigger time of day (0-23 / 0-59)
--target_cu Yes (create/update) Target CU count after scaling
--activate No Activate immediately
2. Batch Jobs (SQL / Spark)
Submit SQL Job (cloud-side only; see Constraints)
hcloud dli CreateSqlJob --cli-region={region} --sql={sql_statement} \
[--queue_name={queue_name}] [--currentdb={database}] [--sql_type={ddl|dcl|import|query|insert}] [--conf.1={key=value}]
Parameter Required Description
--sql Yes SQL statement (non-destructive only unless user-confirmed) --queue_name No Target queue (default queue if omitted) --currentdb No Database context for the SQL --sql_type No ddl, dcl, import, query, insert --conf.[N] No Job config as key=value array
List SQL Jobs
hcloud dli ListSqlJobs --cli-region={region} [--job-status={pending|running|success|failed|cancelled}] [--job-type={DDL|DCL|IMPORT|QUERY|INSERT}] [--db_name={database}] [--queue_name={queue_name}] [--page-size={n}] [--current-page={n}]
Parameter Required Description
--job-status No pending, running, success, failed, cancelled --job-type No DDL, DCL, IMPORT, QUERY, INSERT --db_name No Database filter --queue_name No Queue filter --page-size / --current-page No Pagination (default 10 / 1)
Show SQL Job Status / Detail / Progress
hcloud dli ShowSqlJobStatus --cli-region={region} --job_id={job_id}
hcloud dli ShowSqlJobDetail --cli-region={region} --job_id={job_id}
hcloud dli ShowSqlJobProgress --cli-region={region} --job_id={job_id}
Parameter Required Description
--job_id Yes SQL job ID
Cancel SQL Job (risk: double confirm for running jobs)
hcloud dli CancelSqlJob --cli-region={region} --job_id={job_id}
Export / Preview SQL Result
hcloud dli ExportSqlJobResult --cli-region={region} --job_id={job_id} --data_path={obs_path} --data_type={csv|json|parquet} [--compress={gzip|none}]
hcloud dli PreviewSqlJobResult --cli-region={region} --job_id={job_id} [--queue-name={queue_name}]
Parameter Required Description
--job_id Yes Completed SQL job ID --data_path Yes (export) OBS destination path (s3a://... or obs://...) --data_type Yes (export) csv, json, parquet
Spark Jobs
hcloud dli CreateSparkJob --cli-region={region} --file={jar_resource} --className={main_class} \
[--queue={queue_name}] [--name={job_name}] [--args.1={arg}] [--conf.1={key=value}] [--driver_memory={mem}] [--executor_memory={mem}] [--executor_cores={n}] [--num_executors={n}]
hcloud dli ListSparkJobs --cli-region={region} [--state={starting|running|success|failed|cancelled}] [--job_name={name}] [--queue_name={queue}] [--size={n}] [--from={offset}]
hcloud dli ShowSparkJob --cli-region={region} --batch_id={batch_id}
hcloud dli ShowSparkJobStatus --cli-region={region} --batch_id={batch_id}
hcloud dli ShowSparkJobLog --cli-region={region} --batch_id={batch_id} [--size={n}] [--type={all|driver|executor}]
hcloud dli CancelSparkJob --cli-region={region} --batch_id={batch_id} # risk: double confirm
Parameter Required Description
--file Yes (create) JAR resource name already uploaded to DLI resource management
--className Yes (create) Java/Spark main class (capital C)
--batch_id Yes (show/cancel) Spark batch job ID
3. Flink Stream Jobs
hcloud dli CreateFlinkSqlJob --cli-region={region} --name={job_name} [--queue_name={queue}] [--cu_number={cu}] [--sql={flink_sql}] [--parallel_number={n}] [--smn_topic={topic}]
hcloud dli CreateFlinkJarJob --cli-region={region} --name={job_name} [--queue_name={queue}] [--entrypoint={jar_resource}] [--cu_number={cu}]
hcloud dli ListFlinkJobs --cli-region={region} [--job_type={flink_sql_job|flink_jar_job}] [--status={job_running|job_cancelled|job_failed|...}] [--name={name}] [--queue_name={queue}] [--limit={n}] [--offset={n}]
hcloud dli ShowFlinkJob --cli-region={region} --job_id={job_id}
hcloud dli UpdateFlinkSqlJob --cli-region={region} --job_id={job_id} [--cu_number={cu}] [--sql={flink_sql}] [--parallel_number={n}]
hcloud dli UpdateFlinkJarJob --cli-region={region} --job_id={job_id} [--cu_number={cu}] [--entrypoint={jar_resource}]
hcloud dli BatchRunFlinkJobs --cli-region={region} --job_ids.1={job_id} [--resume_savepoint={true|false}] # risk: double confirm
hcloud dli BatchStopFlinkJobs --cli-region={region} --job_ids.1={job_id} [--trigger_savepoint={true|false}] # risk: double confirm
hcloud dli BatchDeleteFlinkJobs --cli-region={region} --job_ids.1={job_id} # risk: double confirm
hcloud dli ShowFlinkMetric --cli-region={region} --job_ids.1={job_id} [--job_ids.2={job_id_2}]
Parameter Required Description
--name Yes (create) Flink job name
--job_id Yes (show/update) Flink job ID
--job_ids.[N] Yes (batch ops / ShowFlinkMetric) One or more job IDs, e.g. --job_ids.1=101 --job_ids.2=102
4. Database Management
hcloud dli ListDatabases --cli-region={region} [--keyword={kw}] [--limit={n}] [--offset={n}] [--tags={k=v}]
hcloud dli CreateDatabase --cli-region={region} --database_name={db_name} [--description={desc}]
hcloud dli DeleteDatabase --cli-region={region} --database_name={db_name} [--cascade={true|false}] [--async={true|false}] # risk: double confirm
hcloud dli UpdateDatabaseOwner --cli-region={region} --database_name={db_name} --new_owner={user_name}
hcloud dli ListDatabaseUsers --cli-region={region} --database_name={db_name}
Parameter Required Description
--database_name Yes Database name
--new_owner Yes (owner update) New owner username
--cascade No (delete) Delete tables inside the database too (irreversible!)
5. Table Management
hcloud dli ListTables --cli-region={region} --database_name={db_name} [--table-type={MANAGED|EXTERNAL|VIEW}] [--keyword={kw}] [--with-detail={true|false}] [--page-size={n}] [--current-page={n}]
hcloud dli ShowTable --cli-region={region} --database_name={db_name} --table_name={table_name}
hcloud dli CreateTable --cli-region={region} --database_name={db_name} --table_name={table_name} --data_location={DLI|OBS|VIEW}
--columns.1.column_name={col} --columns.1.type={TYPE} [--columns.2.column_name={col2}] [--columns.2.type={TYPE2}]
[--data_path={s3a://...}] [--data_type={Parquet|ORC|CSV|JSON|Carbon|Avro}] [--delimiter={c}]
hcloud dli DeleteTable --cli-region={region} --database_name={db_name} --table_name={table_name} [--async={true|false}] # risk: double confirm
hcloud dli UpdateTableOwner --cli-region={region} --database_name={db_name} --table_name={table_name} --new_owner={user_name}
hcloud dli ListPartitions --cli-region={region} --database_name={db_name} --table_name={table_name} [--limit={n}] [--offset={n}]
hcloud dli PreviewTable --cli-region={region} --database_name={db_name} --table_name={table_name} [--mode={preview|sample}]
hcloud dli ListTableUsers --cli-region={region} --database_name={db_name} --table_name={table_name}
hcloud dli ListTablePrivileges --cli-region={region} --database_name={db_name} --table_name={table_name} --user_name={user}
Parameter Required Description
--database_name Yes Parent database
--table_name Yes Table name
--data_location Yes (create) DLI, OBS, or VIEW
--columns.[N].column_name / .type Yes (create) Column schema as indexed pairs
--data_path No Required for OBS tables, must start with s3a://
6. Enhanced / Cross-Source Connections
hcloud dli ListEnhancedConnections --cli-region={region} [--name={name}] [--status={ACTIVE|FAILED}] [--limit={n}] [--offset={n}]
hcloud dli ShowEnhancedConnection --cli-region={region} --connection_id={connection_id}
hcloud dli CreateEnhancedConnection --cli-region={region} --name={conn_name} --dest_vpc_id={vpc_id} --dest_network_id={subnet_id} [--routetable_id={rt_id}]
hcloud dli UpdateEnhancedConnection --cli-region={region} --connection_id={connection_id} [--hosts.1.ip={ip}] [--hosts.1.name={host}] # full overwrite of host list
hcloud dli DeleteEnhancedConnection --cli-region={region} --connection_id={connection_id} # risk: double confirm
hcloud dli AssociateQueueToEnhancedConnection --cli-region={region} --connection_id={connection_id} --queues.1={queue_name}
hcloud dli DisassociateQueueFromEnhancedConnection --cli-region={region} --connection_id={connection_id}
hcloud dli CreateConnectivityTask --cli-region={region} --queue_name={queue_name} --address={ip_or_domain:port}
hcloud dli ShowConnectivityTask --cli-region={region} --queue_name={queue_name} --task_id={task_id}
Parameter Required Description
--connection_id Yes (show/update/delete) Enhanced/datasource connection UUID
--dest_vpc_id / --dest_network_id Yes (create enhanced) Destination VPC and subnet
--queue_name / --address Yes (connectivity) Queue and target address for connectivity test
--hosts.[N].ip / .name No (update) New host whitelist; provided host list fully replaces old one
7. Resource Packages
hcloud dli ListJobResources --cli-region={region} [--kind={jar|pyFile|file}] [--tags={k=v}]
hcloud dli ShowJobResource --cli-region={region} --resource_name={resource_name} [--group={group_name}]
hcloud dli UploadJarJobResources --cli-region={region} --group={group_name} --paths.1={obs://bucket/xx.jar}
hcloud dli UploadPythonFileJobResources --cli-region={region} --group={group_name} --paths.1={obs://bucket/xx.py}
hcloud dli UploadFileJobResources --cli-region={region} --group={group_name} --paths.1={obs://bucket/xx.conf}
hcloud dli DeleteJobResource --cli-region={region} --resource_name={resource_name} [--group={group_name}] # risk: double confirm
hcloud dli UpdateJobResourceOwner --cli-region={region} --group_name={group_name} --new_owner={user_name} [--resource_name={name}]
Parameter Required Description
--group Yes (upload) Package group name (new group with same name overwrites old)
--paths.[N] Yes (upload) OBS object URL list, e.g. --paths.1=obs://bkt/x.jar
--resource_name Yes (show/delete) Resource name
--new_owner Yes (owner update) New owner
8. Global Variables
hcloud dli ListGlobalVariables --cli-region={region} [--limit={n}] [--offset={n}]
hcloud dli CreateGlobalVariable --cli-region={region} --var_name={var_name} --var_value={var_value} [--is_sensitive={true|false}]
hcloud dli UpdateGlobalVariable --cli-region={region} --var_name={var_name} --var_value={var_value}
hcloud dli DeleteGlobalVariable --cli-region={region} --var_name={var_name} # risk: double confirm
Parameter Required Description
--var_name Yes Variable name
--var_value Yes (create/update) Variable value
--is_sensitive No Mark as sensitive (hidden in job details)
9. Job Templates
hcloud dli ListSqlJobTemplates --cli-region={region} [--keyword={kw}]
hcloud dli CreateSqlJobTemplate --cli-region={region} --sql_name={template_name} --sql={sql_body} [--description={desc}] [--group={group}]
hcloud dli UpdateSqlJobTemplate --cli-region={region} --sql_id={template_id} [--sql_name={name}] [--sql={sql_body}] [--description={desc}]
hcloud dli BatchDeleteSqlJobTemplates --cli-region={region} --sql_ids.1={template_id} # risk: double confirm
hcloud dli ListFlinkSqlJobTemplates --cli-region={region} [--name={name}] [--limit={n}] [--offset={n}]
hcloud dli CreateFlinkSqlJobTemplate --cli-region={region} --name={template_name} [--sql_body={flink_sql}] [--job_type={flink_sql_job|flink_jar_job}] [--desc={desc}]
hcloud dli UpdateFlinkSqlJobTemplate --cli-region={region} --template_id={template_id} [--name={name}] [--sql_body={flink_sql}] [--desc={desc}]
hcloud dli DeleteFlinkSqlJobTemplate --cli-region={region} --template_id={template_id} # risk: double confirm
hcloud dli ListSparkJobTemplates --cli-region={region} [--type={1|2}] [--page-size={n}] [--current-page={n}]
hcloud dli CreateSparkJobTemplate --cli-region={region} --name={template_name} --type={1|2} [--description={desc}] [--group={group}] [--language={en|zh}]
hcloud dli UpdateSparkJobTemplate --cli-region={region} --template_id={template_id} --name={template_name} [--description={desc}] [--group={group}]
Parameter Required Description
--sql_name / --name Yes (create) Template name
--sql_ids.[N] Yes (batch delete) SQL template IDs
--template_id / --sql_id Yes (update/delete) Template ID
10. Privileges & Patrol
hcloud dli ListAuthorizationPrivileges --cli-region={region} --object={object}
hcloud dli RunAuthorizationAction --cli-region={region} --action={grant|revoke} [--user_name={user}] [--privileges.1.object={object}] [--privileges.1.privileges.1={privilege}]
hcloud dli RunDataAuthorizationAction --cli-region={region} --action={grant|revoke} --user_name={user} # data-level auth
hcloud dli RegisterAuthorizedQueue --cli-region={region} --queue_name={queue_name} --user_name={user} --action={grant|revoke}
hcloud dli ShowEnhancedConnectionPrivilege --cli-region={region} --connection_id={connection_id}
hcloud dli ListElasticResourcePools --cli-region={region} [--name={name}] [--status={AVAILABLE|SCALING|CREATING|FAILED}] [--limit={n}]
hcloud dli UpdateElasticResourcePool --cli-region={region} --elastic_resource_pool_name={pool_name} [--min_cu={n}] [--max_cu={n}] [--description={desc}] # risk: double confirm for shrinking
hcloud dli ListElasticResourcePoolScaleRecords --cli-region={region} --elastic_resource_pool_name={pool_name} [--status={SUCCESS|FAIL}] [--limit={n}]
hcloud dli ShowQuota --cli-region={region}
hcloud dli ShowDliAgency --cli-region={region}
hcloud dli ShowFlinkMetric --cli-region={region} --job_ids.1={job_id} [--job_ids.2={job_id_2}]
hcloud dli ListCatalogs --cli-region={region} [--limit={n}] [--offset={n}]
hcloud dli ShowCatalog --cli-region={region} --catalog_name={catalog_name}
Parameter Required Description
--object Yes (list privileges) Authorization object to inspect --action Yes (auth) grant or revoke --user_name Yes (data auth / register) Target user --elastic_resource_pool_name Yes (pool ops) Elastic resource pool name
Parameter Confirmation
Parameter Required Description
--cli-region Yes (auto) Region, auto-filled by KooCLI profile; explicitly pass --cli-region={region} --project_id Yes (auto) Project ID, auto-filled by KooCLI (parent project of the region) --queue_name Depends Queue operations; job submit routing --job_id / --batch_id Depends SQL job ID / Spark batch ID / Flink job ID --database_name Depends Database-scoped operations --table_name Depends Table-scoped operations --connection_id Depends Connection-scoped operations --user_name Depends Owner change / authorization operations
Common conventions:
Indexed/array parameters use .[N] suffixes (--paths.1=..., --job_ids.1=...); booleans accept true/false; time params use RFC3339.
OBS paths use obs://bucket/key, except CreateTable --data_path which requires s3a://.
KooCLI Command Format Standard
Generic command template (do not execute as-is — replace , and parameters):
hcloud --cli-region= [--key=value ...]
Feature Standard
Service name dli (metadata case; hcloud dli works, KooCLI shows DLI)
Operation name PascalCase, e.g. ListQueues, CreateSqlJob, BatchStopFlinkJobs
Region --cli-region= always included
Simple / indexed parameter --key=value, e.g. --queue_name=myqueue; indexed --key.1=value1, e.g. --job_ids.1=101
Reference Documents
references/iam-policies.md — Least-privilege IAM policies for DLI operations
references/cli-installation-guide.md — hcloud CLI installation & AK/SK configuration
references/dli-operation-catalog.md — Full DLI operation catalog with parameter tables
references/common-workflows.md — Scenario-based workflow recipes
references/dataflow-diagram.md — Mermaid data flow diagram
references/verification-method.md — Verification method details
references/acceptance-criteria.md — Acceptance criteria
Best Practices
Confirm the queue exists (ListQueues) before submitting jobs; never submit to an unknown queue.
Keep output small: paginate with --limit/--offset or --page-size/--current-page; use status filters (--job-status, --status) for targeted troubleshooting.
Merge multiple List* outputs into one structured markdown report; mask AK/SK and sensitive variable values (--is_sensitive variables render masked).
Always present high-risk commands to the user with expected impact and wait for explicit confirmation (see Constraints).
When a connectivity check fails, verify queue binding (AssociateQueueToEnhancedConnection), security group, and VPC route before recreating the connection.
CU patrol: compare ShowQuota used vs quota; flag > 80%; use ListElasticResourcePoolScaleRecords before suggesting scaling changes.
Verification Method
hcloud dli ListQueues --cli-region={region} --queue_type=all # read smoke test
hcloud dli ListDatabases --cli-region={region} --limit=5 # metadata read smoke test
hcloud dli ShowQuota --cli-region={region} # quota read smoke test
See references/verification-method.md for the detailed verification matrix.
华为云网络拓扑审计