Huawei Cloud Dli Manage logo

Huawei Cloud Dli Manage

Organization
huaweicloud
huawei-cloud-dli-manage

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.

Overview

Publisherhuaweicloud
Repositoryhuaweicloud-skills
Skill namehuawei-cloud-dli-manage
Stars
59
Forks
24
Bundled files
9
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by huaweicloud on GitHub. Read the source before you install it.

Installation

Install the Huawei Cloud Dli Manage AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/huaweicloud/huaweicloud-skills/tree/master/skills/bigdata/dli/huawei-cloud-dli-manage
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/huaweicloud/huaweicloud-skills.git /tmp/huaweicloud-skills
mkdir -p .claude/skills
cp -r /tmp/huaweicloud-skills/skills/bigdata/dli/huawei-cloud-dli-manage .claude/skills/huawei-cloud-dli-manage
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Huawei Cloud Dli Manage in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Huawei Cloud Dli Manage on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Huawei Cloud Dli Manage is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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:

  1. Queue management — ListQueues, ShowQueue, CreateQueue, DeleteQueue, RunQueueAction (scale), queue plans, CIDR
  2. Batch jobs (SQL/Spark) — CreateSqlJob, ListSqlJobs, ShowSqlJobStatus/Detail/Progress, CancelSqlJob, ExportSqlJobResult, PreviewSqlJobResult, Spark equivalents + ShowSparkJobLog
  3. Flink stream jobs — CreateFlinkSqlJob, CreateFlinkJarJob, ListFlinkJobs, ShowFlinkJob, UpdateFlink*, BatchRunFlinkJobs, BatchStopFlinkJobs, BatchDeleteFlinkJobs, ShowFlinkMetric
  4. Database management — ListDatabases, CreateDatabase, DeleteDatabase, UpdateDatabaseOwner, ListDatabaseUsers
  5. Table management — ListTables, ShowTable, CreateTable, DeleteTable, UpdateTableOwner, ListPartitions, PreviewTable, table users/privileges
  6. Enhanced connections — ListEnhancedConnections, Create/Update/DeleteEnhancedConnection, queue binding, CreateConnectivityTask/ShowConnectivityTask
  7. Resource packages — ListJobResources, ShowJobResource, UploadJar/PythonFile/FileJobResources, DeleteJobResource, UpdateJobResourceOwner
  8. Global variables — ListGlobalVariables, CreateGlobalVariable, UpdateGlobalVariable, DeleteGlobalVariable; Job templates — SQL/Flink SQL/Spark templates: list, create, update, delete
  9. Privileges & patrol — authorization actions, queue/database/table users, elastic resource pools (CU), quota, agency, catalogs

Important Constraints

ConstraintPolicy
High-risk operationsDouble 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 SQLThis 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 cleanupNever arbitrarily clean production business metadata. Idle-resource cleanup proposals must be reported and confirmed by the user first
ScopeAll operations stay within DLI resource management; no changes to OBS data content, no IAM policy changes

Prerequisites

  1. hcloud CLI installed and authenticated with a valid AK/SK profile (installation guide and verification: see references/cli-installation-guide.md).
  2. IAM permissions: DLI read permissions for query operations; DLI admin/write permissions for create/update/delete. See references/iam-policies.md.
  3. Region: DLI resources are regional; pass --cli-region={region} on every command.
  4. OBS paths (resource upload / result export): a pre-existing OBS bucket with readable paths, passed as OBS object URLs for --paths.[N].
  5. 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 <Operation>. --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.

1. Queue Management

List Queues
bash
hcloud dli ListQueues --cli-region={region} --queue_type={sql|general|all} [--tags={key=value}]
ParameterRequiredDescription
--queue_typeNosql, general, or all (default sql)
--tagsNoTag filter, e.g. owner=ph
Show Queue
bash
hcloud dli ShowQueue --cli-region={region} --queue_name={queue_name}
ParameterRequiredDescription
--queue_nameYesName of the queue
Create Queue
bash
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}]
ParameterRequiredDescription
--queue_nameYesQueue name (unique in project)
--cu_countYesNumber of CUs (16 minimum)
--queue_typeNosql or general (default sql)
--engineNospark, flink, or hetero
--charging_modeNoprePaid or postPaid
Scale Queue (risk: double confirm for scale_in)
bash
hcloud dli RunQueueAction --cli-region={region} --queue_name={queue_name} --action={scale_out|scale_in} [--cu_count={cu_count}] [--force=true]
ParameterRequiredDescription
--actionYesscale_out or scale_in
--queue_nameYesQueue to scale
--cu_countNoTarget CU count
--forceNoForce scale when jobs are running
Delete Queue (risk: double confirm)
bash
hcloud dli DeleteQueue --cli-region={region} --queue_name={queue_name}
ParameterRequiredDescription
--queue_nameYesQueue to delete (must be stopped/empty)
Queue Plans (定时扩缩容)
bash
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}
ParameterRequiredDescription
--queue_nameYesTarget queue
--plan_nameYes (create/update)Plan name
--plan_idYes (update/delete)Plan ID
--start_hour / --start_minuteYes (create/update)Trigger time of day (0-23 / 0-59)
--target_cuYes (create/update)Target CU count after scaling
--activateNoActivate immediately

2. Batch Jobs (SQL / Spark)

Submit SQL Job (cloud-side only; see Constraints)
bash
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}]
ParameterRequiredDescription
--sqlYesSQL statement (non-destructive only unless user-confirmed)
--queue_nameNoTarget queue (default queue if omitted)
--currentdbNoDatabase context for the SQL
--sql_typeNoddl, dcl, import, query, insert
--conf.[N]NoJob config as key=value array
List SQL Jobs
bash
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}]
ParameterRequiredDescription
--job-statusNopending, running, success, failed, cancelled
--job-typeNoDDL, DCL, IMPORT, QUERY, INSERT
--db_nameNoDatabase filter
--queue_nameNoQueue filter
--page-size / --current-pageNoPagination (default 10 / 1)
Show SQL Job Status / Detail / Progress
bash
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}
ParameterRequiredDescription
--job_idYesSQL job ID
Cancel SQL Job (risk: double confirm for running jobs)
bash
hcloud dli CancelSqlJob --cli-region={region} --job_id={job_id}
Export / Preview SQL Result
bash
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}]
ParameterRequiredDescription
--job_idYesCompleted SQL job ID
--data_pathYes (export)OBS destination path (s3a://... or obs://...)
--data_typeYes (export)csv, json, parquet
Spark Jobs
bash
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
ParameterRequiredDescription
--fileYes (create)JAR resource name already uploaded to DLI resource management
--classNameYes (create)Java/Spark main class (capital C)
--batch_idYes (show/cancel)Spark batch job ID

3. Flink Stream Jobs

bash
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}]
ParameterRequiredDescription
--nameYes (create)Flink job name
--job_idYes (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

bash
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}
ParameterRequiredDescription
--database_nameYesDatabase name
--new_ownerYes (owner update)New owner username
--cascadeNo (delete)Delete tables inside the database too (irreversible!)

5. Table Management

bash
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}
ParameterRequiredDescription
--database_nameYesParent database
--table_nameYesTable name
--data_locationYes (create)DLI, OBS, or VIEW
--columns.[N].column_name / .typeYes (create)Column schema as indexed pairs
--data_pathNoRequired for OBS tables, must start with s3a://

6. Enhanced / Cross-Source Connections

bash
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}
ParameterRequiredDescription
--connection_idYes (show/update/delete)Enhanced/datasource connection UUID
--dest_vpc_id / --dest_network_idYes (create enhanced)Destination VPC and subnet
--queue_name / --addressYes (connectivity)Queue and target address for connectivity test
--hosts.[N].ip / .nameNo (update)New host whitelist; provided host list fully replaces old one

7. Resource Packages

bash
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}]
ParameterRequiredDescription
--groupYes (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_nameYes (show/delete)Resource name
--new_ownerYes (owner update)New owner

8. Global Variables

bash
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
ParameterRequiredDescription
--var_nameYesVariable name
--var_valueYes (create/update)Variable value
--is_sensitiveNoMark as sensitive (hidden in job details)

9. Job Templates

bash
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}]
ParameterRequiredDescription
--sql_name / --nameYes (create)Template name
--sql_ids.[N]Yes (batch delete)SQL template IDs
--template_id / --sql_idYes (update/delete)Template ID

10. Privileges & Patrol

bash
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}
ParameterRequiredDescription
--objectYes (list privileges)Authorization object to inspect
--actionYes (auth)grant or revoke
--user_nameYes (data auth / register)Target user
--elastic_resource_pool_nameYes (pool ops)Elastic resource pool name

Parameter Confirmation

ParameterRequiredDescription
--cli-regionYes (auto)Region, auto-filled by KooCLI profile; explicitly pass --cli-region={region}
--project_idYes (auto)Project ID, auto-filled by KooCLI (parent project of the region)
--queue_nameDependsQueue operations; job submit routing
--job_id / --batch_idDependsSQL job ID / Spark batch ID / Flink job ID
--database_nameDependsDatabase-scoped operations
--table_nameDependsTable-scoped operations
--connection_idDependsConnection-scoped operations
--user_nameDependsOwner 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 <service>, <Operation> and parameters):

hcloud <service> <Operation> --cli-region=<region> [--key=value ...]

FeatureStandard
Service namedli (metadata case; hcloud dli <Operation> works, KooCLI shows DLI)
Operation namePascalCase, e.g. ListQueues, CreateSqlJob, BatchStopFlinkJobs
Region--cli-region=<value> 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

bash
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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Huawei Cloud Dli Manage AI skill do?

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...

Why use Huawei Cloud Dli Manage on TypingMind?

Because you install it once and use it with any model. Huawei Cloud Dli Manage is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Huawei Cloud Dli Manage in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/huaweicloud/huaweicloud-skills/tree/master/skills/bigdata/dli/huawei-cloud-dli-manage. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Huawei Cloud Dli Manage?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Huawei Cloud Dli Manage?

As many as you like. As long as a model supports skills, you can use Huawei Cloud Dli Manage with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Huawei Cloud Dli Manage AI skill free?

Yes. It is published on GitHub by huaweicloud under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇