@thinkingai/ae-cli 1.0.1 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -64
- package/README.zh.md +203 -0
- package/dist/{auth-JXELJNDS.js → auth-4GAHTBVH.js} +2 -2
- package/dist/{auth-L3G3A74I.js → auth-U2GHFMFY.js} +20 -6
- package/dist/{chunk-OVQOK35G.js → chunk-EBFUVWIZ.js} +25 -6
- package/dist/{chunk-3GM5LJZR.js → chunk-OQ4XEG77.js} +7 -4
- package/dist/{chunk-JD5DXMKL.js → chunk-TJIMDNAU.js} +10 -8
- package/dist/{chunk-RJNLN3KQ.js → chunk-UK6HO5O5.js} +7 -6
- package/dist/{client-5QSQBBDB.js → client-HU63573O.js} +3 -3
- package/dist/{config-Q7J3Z7Z2.js → config-OLF7RBPM.js} +5 -5
- package/dist/index.js +18 -17
- package/dist/{raw-ZNVURYMR.js → raw-GDO4IWNW.js} +8 -6
- package/dist/{te-analysis-7NN3SY3I.js → te-analysis-ZDJXMWZY.js} +64 -26
- package/dist/{te-audience-P43BWMHM.js → te-audience-T5B52EEB.js} +65 -25
- package/dist/{te-common-H3IPTI2I.js → te-common-BPTXXTHQ.js} +11 -38
- package/dist/{community-GMALVSRF.js → te-community-FPB5LH56.js} +59 -59
- package/dist/{te-dataops-WCGDBJLF.js → te-dataops-2NUJVG47.js} +3 -28
- package/dist/{te-engage-UTRVNTGU.js → te-engage-K3EANZ5P.js} +502 -520
- package/dist/{te-meta-HGYNXVGF.js → te-meta-JJMV75KB.js} +88 -20
- package/package.json +9 -7
- package/skills/ae-analysis/SKILL.md +229 -0
- package/skills/{te-meta/references/batch-create-metadata.md → ae-analysis/references/batch_create_metadata.md} +5 -5
- package/skills/{te-meta/references/batch-edit-metadata.md → ae-analysis/references/batch_edit_metadata.md} +4 -4
- package/skills/{te-analysis/references/build-entity-details-sql.md → ae-analysis/references/build_entity_details_sql.md} +14 -14
- package/skills/{te-analysis/references/build-event-details-sql.md → ae-analysis/references/build_event_details_sql.md} +14 -14
- package/skills/{te-analysis/references/create-alert.md → ae-analysis/references/create_alert.md} +7 -7
- package/skills/{te-audience/references/create-cluster.md → ae-analysis/references/create_cluster.md} +26 -22
- package/skills/{te-analysis/references/create-dashboard.md → ae-analysis/references/create_dashboard.md} +5 -5
- package/skills/{te-meta/references/create-metric.md → ae-analysis/references/create_metric.md} +16 -16
- package/skills/{te-analysis/references/create-or-update-dashboard-note.md → ae-analysis/references/create_or_update_dashboard_note.md} +5 -5
- package/skills/{te-meta/references/create-project-mark-time.md → ae-analysis/references/create_project_mark_time.md} +5 -5
- package/skills/{te-analysis/references/create-public-access-link.md → ae-analysis/references/create_public_access_link.md} +5 -5
- package/skills/{te-analysis/references/create-report.md → ae-analysis/references/create_report.md} +14 -14
- package/skills/{te-analysis/references/create-result-cluster.md → ae-analysis/references/create_result_cluster.md} +8 -8
- package/skills/{te-audience/references/create-tag.md → ae-analysis/references/create_tag.md} +18 -17
- package/skills/{te-meta/references/create-virtual-event.md → ae-analysis/references/create_virtual_event.md} +14 -14
- package/skills/{te-meta/references/create-virtual-property.md → ae-analysis/references/create_virtual_property.md} +11 -11
- package/skills/{te-meta/references/delete-project-mark-times.md → ae-analysis/references/delete_project_mark_times.md} +4 -4
- package/skills/{te-meta/references/delete-track-items.md → ae-analysis/references/delete_track_items.md} +4 -4
- package/skills/{te-analysis/references/drilldown-user-events.md → ae-analysis/references/drilldown_user_events.md} +11 -11
- package/skills/{te-analysis/references/drilldown-users.md → ae-analysis/references/drilldown_users.md} +12 -9
- package/skills/ae-analysis/references/generate_track_program.md +51 -0
- package/skills/ae-analysis/references/generate_track_sdk_sample.md +43 -0
- package/skills/{te-analysis/references/get-alert.md → ae-analysis/references/get_alert.md} +4 -4
- package/skills/{te-analysis/references/get-alert-definition-schema.md → ae-analysis/references/get_alert_definition_schema.md} +4 -4
- package/skills/ae-analysis/references/get_analysis_query_schema.md +61 -0
- package/skills/ae-analysis/references/get_cluster_definition_schema.md +53 -0
- package/skills/ae-analysis/references/get_clusters_by_name.md +69 -0
- package/skills/{te-analysis/references/get-filter-schema.md → ae-analysis/references/get_filter_schema.md} +4 -4
- package/skills/{te-analysis/references/get-groupby-schema.md → ae-analysis/references/get_groupby_schema.md} +4 -4
- package/skills/{te-meta/references/get-metric.md → ae-analysis/references/get_metric.md} +4 -4
- package/skills/{te-meta/references/get-project-config.md → ae-analysis/references/get_project_config.md} +4 -4
- package/skills/{te-analysis/references/get-report-definition.md → ae-analysis/references/get_report_definition.md} +4 -4
- package/skills/{te-common/references/get-resource-url.md → ae-analysis/references/get_resource_url.md} +7 -7
- package/skills/{te-analysis/references/get-table-columns.md → ae-analysis/references/get_table_columns.md} +4 -4
- package/skills/ae-analysis/references/get_tag_definition_schema.md +49 -0
- package/skills/ae-analysis/references/get_tags_by_name.md +69 -0
- package/skills/{te-meta/references/get-track-program.md → ae-analysis/references/get_track_program.md} +4 -4
- package/skills/{te-analysis/references/list-alerts.md → ae-analysis/references/list_alerts.md} +8 -5
- package/skills/{te-audience/references/list-cluster-members.md → ae-analysis/references/list_cluster_members.md} +13 -6
- package/skills/{te-audience/references/list-clusters.md → ae-analysis/references/list_clusters.md} +12 -6
- package/skills/{te-analysis/references/list-dashboards.md → ae-analysis/references/list_dashboards.md} +10 -6
- package/skills/{te-meta/references/list-entities.md → ae-analysis/references/list_entities.md} +12 -5
- package/skills/{te-meta/references/list-events.md → ae-analysis/references/list_events.md} +10 -7
- package/skills/ae-analysis/references/list_metrics.md +41 -0
- package/skills/ae-analysis/references/list_project_mark_times.md +42 -0
- package/skills/{te-meta/references/list-project-users.md → ae-analysis/references/list_project_users.md} +4 -4
- package/skills/{te-common/references/list-projects.md → ae-analysis/references/list_projects.md} +9 -7
- package/skills/{te-meta/references/list-properties.md → ae-analysis/references/list_properties.md} +11 -6
- package/skills/ae-analysis/references/list_public_access_links.md +41 -0
- package/skills/{te-analysis/references/list-reports.md → ae-analysis/references/list_reports.md} +10 -6
- package/skills/{te-audience/references/list-tag-members.md → ae-analysis/references/list_tag_members.md} +13 -6
- package/skills/{te-audience/references/list-tags.md → ae-analysis/references/list_tags.md} +12 -6
- package/skills/{te-analysis/references/load-filters.md → ae-analysis/references/load_filters.md} +5 -5
- package/skills/{te-analysis/references/query-adhoc.md → ae-analysis/references/query_adhoc.md} +19 -14
- package/skills/{te-analysis/references/query-dashboard-detail.md → ae-analysis/references/query_dashboard_detail.md} +4 -4
- package/skills/{te-analysis/references/query-dashboard-report-data.md → ae-analysis/references/query_dashboard_report_data.md} +13 -13
- package/skills/{te-analysis/references/query-entity-details.md → ae-analysis/references/query_entity_details.md} +15 -15
- package/skills/{te-analysis/references/query-event-details.md → ae-analysis/references/query_event_details.md} +17 -17
- package/skills/{te-analysis/references/query-report-data.md → ae-analysis/references/query_report_data.md} +16 -16
- package/skills/{te-audience/references/refresh-cluster.md → ae-analysis/references/refresh_cluster.md} +4 -4
- package/skills/{te-audience/references/refresh-tag.md → ae-analysis/references/refresh_tag.md} +4 -4
- package/skills/{te-meta/references/save-track-items.md → ae-analysis/references/save_track_items.md} +4 -4
- package/skills/{te-analysis/references/update-alert.md → ae-analysis/references/update_alert.md} +7 -7
- package/skills/{te-audience/references/update-cluster.md → ae-analysis/references/update_cluster.md} +17 -15
- package/skills/{te-analysis/references/update-dashboard.md → ae-analysis/references/update_dashboard.md} +5 -5
- package/skills/{te-meta/references/update-metric.md → ae-analysis/references/update_metric.md} +14 -14
- package/skills/{te-meta/references/update-project-mark-time.md → ae-analysis/references/update_project_mark_time.md} +5 -5
- package/skills/{te-analysis/references/update-public-access-link.md → ae-analysis/references/update_public_access_link.md} +5 -5
- package/skills/{te-audience/references/update-tag.md → ae-analysis/references/update_tag.md} +17 -16
- package/skills/ae-community/SKILL.md +305 -0
- package/skills/ae-community/references/community-activity-analysis.md +67 -0
- package/skills/ae-community/references/community-analyzing-official-content.md +71 -0
- package/skills/ae-community/references/community-analyzing-theme-comment.md +123 -0
- package/skills/ae-community/references/community-character-analysis.md +70 -0
- package/skills/ae-community/references/community-daily-report.md +84 -0
- package/skills/ae-community/references/community-hottopic-insight.md +113 -0
- package/skills/ae-community/references/community-weekly-report.md +84 -0
- package/skills/ae-community/references/get_channel_info.md +20 -0
- package/skills/ae-community/references/get_comment_tag_analysis.md +29 -0
- package/skills/ae-community/references/get_comments_summary.md +32 -0
- package/skills/ae-community/references/get_corpus_tags.md +20 -0
- package/skills/ae-community/references/get_daily_summary.md +22 -0
- package/skills/ae-community/references/get_hot_topics.md +25 -0
- package/skills/ae-community/references/get_livestream_analysis.md +22 -0
- package/skills/ae-community/references/get_livestream_detail.md +33 -0
- package/skills/ae-community/references/get_livestream_list.md +25 -0
- package/skills/ae-community/references/get_livestream_overview.md +24 -0
- package/skills/ae-community/references/get_livestream_room_metrics.md +25 -0
- package/skills/ae-community/references/get_livestream_rooms.md +25 -0
- package/skills/ae-community/references/get_overview_metrics.md +25 -0
- package/skills/ae-community/references/get_post_detail.md +37 -0
- package/skills/ae-community/references/get_risk_content.md +42 -0
- package/skills/ae-community/references/get_sentiment_overview.md +33 -0
- package/skills/ae-community/references/get_tag_trends.md +27 -0
- package/skills/ae-community/references/get_topic_detail.md +26 -0
- package/skills/ae-community/references/search_posts.md +47 -0
- package/skills/ae-dataops/SKILL.md +706 -0
- package/skills/ae-dataops/references/dataops-flow-create.md +163 -0
- package/skills/ae-dataops/references/dataops-flow-monitor.md +118 -0
- package/skills/ae-dataops/references/dataops-integration.md +251 -0
- package/skills/ae-dataops/references/dataops-query.md +111 -0
- package/skills/ae-dataops/references/dataops-table.md +122 -0
- package/skills/ae-engage/SKILL.md +311 -0
- package/skills/ae-engage/references/add-approver.md +24 -0
- package/skills/ae-engage/references/add-channel.md +74 -0
- package/skills/ae-engage/references/approver-list.md +19 -0
- package/skills/ae-engage/references/cancel-query-by-request-id.md +23 -0
- package/skills/ae-engage/references/channel-detail.md +52 -0
- package/skills/ae-engage/references/channel-list.md +41 -0
- package/skills/ae-engage/references/config-channel-detail.md +32 -0
- package/skills/ae-engage/references/config-channel-list.md +27 -0
- package/skills/ae-engage/references/config-item-analysis-report.md +34 -0
- package/skills/ae-engage/references/config-item-detail.md +30 -0
- package/skills/ae-engage/references/config-item-list.md +19 -0
- package/skills/ae-engage/references/config-item-strategy-comparison.md +25 -0
- package/skills/ae-engage/references/config-item-trigger-report.md +42 -0
- package/skills/ae-engage/references/copy-config-template.md +29 -0
- package/skills/ae-engage/references/delete-channel.md +24 -0
- package/skills/ae-engage/references/delete-config-channel.md +24 -0
- package/skills/ae-engage/references/delete-config-item.md +25 -0
- package/skills/ae-engage/references/delete-flow.md +24 -0
- package/skills/ae-engage/references/flow-ab-split-node-report.md +54 -0
- package/skills/ae-engage/references/flow-detail.md +79 -0
- package/skills/ae-engage/references/flow-list.md +19 -0
- package/skills/ae-engage/references/flow-node-config-schema.md +44 -0
- package/skills/ae-engage/references/flow-node-detail-report.md +55 -0
- package/skills/ae-engage/references/flow-node-overview-report.md +52 -0
- package/skills/ae-engage/references/flow-process-report.md +59 -0
- package/skills/ae-engage/references/manage-flow.md +94 -0
- package/skills/ae-engage/references/manage-strategy.md +74 -0
- package/skills/ae-engage/references/manage-task.md +37 -0
- package/skills/ae-engage/references/modify-flow-base-info.md +27 -0
- package/skills/ae-engage/references/save-flow.md +871 -0
- package/skills/ae-engage/references/strategy-detail.md +73 -0
- package/skills/ae-engage/references/strategy-list.md +21 -0
- package/skills/ae-engage/references/task-data-detail.md +74 -0
- package/skills/ae-engage/references/task-data-overview.md +42 -0
- package/skills/ae-engage/references/task-detail.md +61 -0
- package/skills/ae-engage/references/task-experiment-report.md +45 -0
- package/skills/ae-engage/references/task-list.md +91 -0
- package/skills/ae-engage/references/task-metric-detail.md +50 -0
- package/skills/ae-engage/references/task-stats.md +89 -0
- package/skills/ae-engage/references/update-channel-status.md +32 -0
- package/skills/ae-engage/references/update-config-channel-status.md +32 -0
- package/skills/ae-engage/references/validate-flow-node-config.md +52 -0
- package/skills/ae-engage/references/whitelist-list.md +19 -0
- package/skills/te-analysis/SKILL.md +0 -107
- package/skills/te-analysis/references/get-analysis-query-schema.md +0 -36
- package/skills/te-analysis/references/list-public-access-links.md +0 -31
- package/skills/te-audience/SKILL.md +0 -63
- package/skills/te-audience/references/get-cluster-definition-schema.md +0 -37
- package/skills/te-audience/references/get-clusters-by-name.md +0 -32
- package/skills/te-audience/references/get-tag-definition-schema.md +0 -32
- package/skills/te-audience/references/get-tags-by-name.md +0 -32
- package/skills/te-common/SKILL.md +0 -135
- package/skills/te-community/SKILL.md +0 -133
- package/skills/te-community/references/community-activity-analysis.md +0 -68
- package/skills/te-community/references/community-analyzing-official-content.md +0 -72
- package/skills/te-community/references/community-analyzing-theme-comment.md +0 -124
- package/skills/te-community/references/community-character-analysis.md +0 -71
- package/skills/te-community/references/community-daily-report.md +0 -82
- package/skills/te-community/references/community-hottopic-insight.md +0 -120
- package/skills/te-community/references/community-release-analysis.md +0 -79
- package/skills/te-community/references/community-weekly-report.md +0 -84
- package/skills/te-community/references/get_channel_info.md +0 -21
- package/skills/te-community/references/get_comment_tag_analysis.md +0 -30
- package/skills/te-community/references/get_comments_summary.md +0 -33
- package/skills/te-community/references/get_corpus_tags.md +0 -21
- package/skills/te-community/references/get_daily_summary.md +0 -23
- package/skills/te-community/references/get_hot_topics.md +0 -26
- package/skills/te-community/references/get_livestream_analysis.md +0 -23
- package/skills/te-community/references/get_livestream_detail.md +0 -34
- package/skills/te-community/references/get_livestream_list.md +0 -26
- package/skills/te-community/references/get_livestream_overview.md +0 -25
- package/skills/te-community/references/get_livestream_room_metrics.md +0 -26
- package/skills/te-community/references/get_livestream_rooms.md +0 -26
- package/skills/te-community/references/get_overview_metrics.md +0 -26
- package/skills/te-community/references/get_post_detail.md +0 -38
- package/skills/te-community/references/get_risk_content.md +0 -43
- package/skills/te-community/references/get_sentiment_overview.md +0 -34
- package/skills/te-community/references/get_tag_trends.md +0 -28
- package/skills/te-community/references/get_topic_detail.md +0 -27
- package/skills/te-community/references/search_posts.md +0 -48
- package/skills/te-dataops/SKILL.md +0 -645
- package/skills/te-dataops/references/dataops-flow-create.md +0 -163
- package/skills/te-dataops/references/dataops-flow-monitor.md +0 -118
- package/skills/te-dataops/references/dataops-integration.md +0 -246
- package/skills/te-dataops/references/dataops-operations.md +0 -107
- package/skills/te-dataops/references/dataops-query.md +0 -111
- package/skills/te-dataops/references/dataops-table.md +0 -122
- package/skills/te-engage/SKILL.md +0 -211
- package/skills/te-engage/references/add-approver.md +0 -24
- package/skills/te-engage/references/add-channel.md +0 -74
- package/skills/te-engage/references/approver-list.md +0 -19
- package/skills/te-engage/references/cancel-query-by-request-id.md +0 -23
- package/skills/te-engage/references/channel-detail.md +0 -52
- package/skills/te-engage/references/channel-list.md +0 -41
- package/skills/te-engage/references/config-channel-detail.md +0 -32
- package/skills/te-engage/references/config-channel-list.md +0 -27
- package/skills/te-engage/references/config-item-analysis-report.md +0 -34
- package/skills/te-engage/references/config-item-detail.md +0 -30
- package/skills/te-engage/references/config-item-list.md +0 -19
- package/skills/te-engage/references/config-item-strategy-comparison.md +0 -25
- package/skills/te-engage/references/config-item-trigger-report.md +0 -42
- package/skills/te-engage/references/copy-config-template.md +0 -29
- package/skills/te-engage/references/delete-channel.md +0 -24
- package/skills/te-engage/references/delete-config-channel.md +0 -24
- package/skills/te-engage/references/delete-config-item.md +0 -25
- package/skills/te-engage/references/delete-flow.md +0 -24
- package/skills/te-engage/references/flow-ab-split-node-report.md +0 -54
- package/skills/te-engage/references/flow-detail.md +0 -79
- package/skills/te-engage/references/flow-list.md +0 -19
- package/skills/te-engage/references/flow-node-config-schema.md +0 -44
- package/skills/te-engage/references/flow-node-detail-report.md +0 -55
- package/skills/te-engage/references/flow-node-overview-report.md +0 -52
- package/skills/te-engage/references/flow-process-report.md +0 -59
- package/skills/te-engage/references/manage-flow.md +0 -94
- package/skills/te-engage/references/manage-strategy.md +0 -74
- package/skills/te-engage/references/manage-task.md +0 -37
- package/skills/te-engage/references/modify-flow-base-info.md +0 -27
- package/skills/te-engage/references/save-flow.md +0 -870
- package/skills/te-engage/references/strategy-detail.md +0 -73
- package/skills/te-engage/references/strategy-list.md +0 -21
- package/skills/te-engage/references/task-data-detail.md +0 -81
- package/skills/te-engage/references/task-data-overview.md +0 -48
- package/skills/te-engage/references/task-detail.md +0 -61
- package/skills/te-engage/references/task-experiment-report.md +0 -51
- package/skills/te-engage/references/task-list.md +0 -91
- package/skills/te-engage/references/task-metric-detail.md +0 -56
- package/skills/te-engage/references/task-stats.md +0 -89
- package/skills/te-engage/references/update-channel-status.md +0 -32
- package/skills/te-engage/references/update-config-channel-status.md +0 -32
- package/skills/te-engage/references/validate-flow-node-config.md +0 -52
- package/skills/te-engage/references/whitelist-list.md +0 -19
- package/skills/te-meta/SKILL.md +0 -71
- package/skills/te-meta/references/list-metrics.md +0 -33
- package/skills/te-meta/references/list-project-mark-times.md +0 -33
- package/skills/te-shared/SKILL.md +0 -115
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dataops-flow-create
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Flow creation and configuration: create flows, add task nodes, configure dependencies, save task definitions, configure scheduling, test, and release to production. Trigger keywords: create flow, new workflow, configure schedule, add task node, release, cron, scheduled execution."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["ae-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DataOps Flow Creation and Configuration
|
|
11
|
+
|
|
12
|
+
> **Prerequisites:** Read [`ae-dataops/SKILL.md`](../SKILL.md) for general rules.
|
|
13
|
+
|
|
14
|
+
Use the `dataops_flow` subcommand to manage flow lifecycle.
|
|
15
|
+
|
|
16
|
+
**Flow Lifecycle: Create → Configure Nodes → Configure Schedule → Test in DEV → Release to PROD → Online Schedule**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Complete Flow Creation Process
|
|
21
|
+
|
|
22
|
+
Follow these steps in order to create a production-ready flow from scratch.
|
|
23
|
+
|
|
24
|
+
### Step 1: Create Flow
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ae-cli dataops_flow +create_flow --spaceCode "${spaceCode}" \
|
|
28
|
+
--flowName "Daily ETL Process" --remark "Process user data" --confirmed true
|
|
29
|
+
# Returns flowCode, required for subsequent steps
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Step 2: Create Task Nodes (can be called multiple times)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Create SQL task
|
|
36
|
+
ae-cli dataops_flow +create_task --spaceCode "${spaceCode}" \
|
|
37
|
+
--flowCode "${flowCode}" --taskName "Process User Data" --taskType "TRINO_SQL" --confirmed true
|
|
38
|
+
# Returns taskCode
|
|
39
|
+
|
|
40
|
+
# Create task with upstream dependency
|
|
41
|
+
ae-cli dataops_flow +create_task --spaceCode "${spaceCode}" \
|
|
42
|
+
--flowCode "${flowCode}" --taskName "Export Results" --taskType "TRINO_SQL" \
|
|
43
|
+
--preTaskCode "${upstreamTaskCode}" --confirmed true
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Task Node Types:**
|
|
47
|
+
|
|
48
|
+
| Type | Description | Typical Use |
|
|
49
|
+
|------|-------------|-------------|
|
|
50
|
+
| TRINO_SQL | Trino SQL query | Data processing, ETL |
|
|
51
|
+
| SHELL | Shell script | System commands, file operations |
|
|
52
|
+
| FLOW_CHECK | Flow check | Check if upstream flow is complete |
|
|
53
|
+
| TASK_CHECK | Task check | Check if specified task is complete |
|
|
54
|
+
| OFFLINE_SYNC | Offline sync | Integration solution data sync (requires syncId) |
|
|
55
|
+
| APP_SYNC | App sync | App table data sync (requires syncId) |
|
|
56
|
+
| PLACE_HOLDER | Placeholder | Flow control, logical grouping |
|
|
57
|
+
|
|
58
|
+
### Step 3: Save Task Definition (configure SQL/Shell content)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# SQL task
|
|
62
|
+
ae-cli dataops_flow +save_task_definition --spaceCode "${spaceCode}" \
|
|
63
|
+
--flowCode "${flowCode}" --taskCode "${taskCode}" \
|
|
64
|
+
--taskContentJson '{"sql":"SELECT * FROM dwd_user","repoCode":"te_etl","catalog":"hive","schema":"ws_default_dev"}' \
|
|
65
|
+
--failRetryTimes 3 --failRetryInterval 30 --timeout 60 --confirmed true
|
|
66
|
+
|
|
67
|
+
# Shell task
|
|
68
|
+
ae-cli dataops_flow +save_task_definition --spaceCode "${spaceCode}" \
|
|
69
|
+
--flowCode "${flowCode}" --taskCode "${taskCode}" \
|
|
70
|
+
--taskContentJson '{"script":"#!/bin/bash\necho hello"}' \
|
|
71
|
+
--confirmed true
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Step 4: Validate SQL (recommended, TRINO_SQL type only)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ae-cli dataops_flow +validate_task_sql --spaceCode "${spaceCode}" \
|
|
78
|
+
--flowCode "${flowCode}" --taskCode "${taskCode}" \
|
|
79
|
+
--sql "SELECT * FROM dwd_user" --repoCode "te_etl" \
|
|
80
|
+
--catalog "hive" --schema "ws_default_dev"
|
|
81
|
+
# Check valid=true, otherwise review message and errorPosition
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 5: Add Task Dependencies (DAG connections)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
ae-cli dataops_flow +add_task_relation --spaceCode "${spaceCode}" \
|
|
88
|
+
--flowCode "${flowCode}" --preTaskCode "${upstreamTaskCode}" --taskCode "${downstreamTaskCode}" \
|
|
89
|
+
--confirmed true
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 6: Configure Schedule
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# CRON expression for scheduled execution
|
|
96
|
+
ae-cli dataops_flow +save_schedule_config --spaceCode "${spaceCode}" \
|
|
97
|
+
--flowCode "${flowCode}" --scheduled 1 --scheduleType "CRON" \
|
|
98
|
+
--cron "0 0 2 * * ?" --confirmed true
|
|
99
|
+
# Example: 0 0 2 * * ? = Daily at 2 AM
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**CRON Format** (6 fields): `second minute hour day month weekday`
|
|
103
|
+
- `0 0 */4 * * ?` — Every 4 hours
|
|
104
|
+
- `0 30 8 * * 1-5` — Weekdays at 8:30
|
|
105
|
+
|
|
106
|
+
### Step 7: Test in DEV Environment
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Manually trigger execution
|
|
110
|
+
ae-cli dataops_flow +execute_flow --spaceCode "${spaceCode}" \
|
|
111
|
+
--flowCode "${flowCode}" --env "DEV" --confirmed true
|
|
112
|
+
|
|
113
|
+
# Check execution status
|
|
114
|
+
ae-cli dataops_flow +get_execute_dag --spaceCode "${spaceCode}" --executeId "${executeId}"
|
|
115
|
+
|
|
116
|
+
# View task logs (get bsTaskInstanceId and taskCode from DAG)
|
|
117
|
+
ae-cli dataops_flow +get_task_instance_log --bsTaskInstanceId "${instanceId}" --taskCode "${taskCode}"
|
|
118
|
+
|
|
119
|
+
# Adjust configuration based on logs, then repeat testing
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Step 8: Release to Production
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
ae-cli dataops_flow +release_flow --spaceCode "${spaceCode}" \
|
|
126
|
+
--flowCode "${flowCode}" --confirmed true
|
|
127
|
+
# After release, PROD schedule takes effect immediately without interrupting running instances
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Command Quick Reference
|
|
133
|
+
|
|
134
|
+
| Command | Purpose | Key Flags |
|
|
135
|
+
|---------|---------|-----------|
|
|
136
|
+
| `+create_flow` | Create flow | `--spaceCode` `--flowName` `--remark` `--confirmed` |
|
|
137
|
+
| `+create_task` | Create task node | `--spaceCode` `--flowCode` `--taskName` `--taskType` `--syncId` `--preTaskCode` `--confirmed` |
|
|
138
|
+
| `+save_task_definition` | Save task definition | `--spaceCode` `--flowCode` `--taskCode` `--taskContentJson` `--failRetryTimes` `--failRetryInterval` `--timeout` `--confirmed` |
|
|
139
|
+
| `+validate_task_sql` | Validate SQL | `--spaceCode` `--flowCode` `--taskCode` `--sql` `--repoCode` `--catalog` `--schema` |
|
|
140
|
+
| `+add_task_relation` | Add dependency | `--spaceCode` `--flowCode` `--preTaskCode` `--taskCode` `--confirmed` |
|
|
141
|
+
| `+save_schedule_config` | Configure schedule | `--spaceCode` `--flowCode` `--scheduled` `--scheduleType` `--cron` `--confirmed` |
|
|
142
|
+
| `+get_flow_dag` | View DAG structure | `--spaceCode` `--flowCode` `--env` |
|
|
143
|
+
| `+get_task_params` | View task parameters | `--spaceCode` `--flowCode` `--taskCode` `--env` |
|
|
144
|
+
| `+execute_flow` | Manual execution | `--spaceCode` `--flowCode` `--env` `--confirmed` |
|
|
145
|
+
| `+get_execute_dag` | View runtime DAG | `--spaceCode` `--executeId` |
|
|
146
|
+
| `+get_task_instance_log` | View task logs | `--bsTaskInstanceId` `--taskCode` `--startOffset` `--limit` |
|
|
147
|
+
| `+release_flow` | Release to production | `--spaceCode` `--flowCode` `--confirmed` |
|
|
148
|
+
|
|
149
|
+
## Parameter Notes
|
|
150
|
+
|
|
151
|
+
- **Parameter Reference**: Reference workspace parameters in tasks using `${paramKey}` (e.g., `${ws_run_date}`)
|
|
152
|
+
- **Environment**: `DEV` (default) | `PROD`
|
|
153
|
+
- **taskContentJson**: JSON string, format varies by taskType:
|
|
154
|
+
- TRINO_SQL: `{"sql":"SELECT ...","repoCode":"xxx","catalog":"hive","schema":"db"}`
|
|
155
|
+
- SHELL: `{"script":"#!/bin/bash\n..."}`
|
|
156
|
+
|
|
157
|
+
## Important Notes
|
|
158
|
+
|
|
159
|
+
1. **Getting flowCode**: Use `+list_flows` (see `dataops-flow-monitor` Skill)
|
|
160
|
+
2. **Getting taskCode**: Returned by `+create_task` or query via `+get_flow_dag`
|
|
161
|
+
3. **Release Impact**: Syncs all DEV changes to PROD, PROD schedule takes effect immediately
|
|
162
|
+
4. **SQL Validation**: Recommended to validate before saving TRINO_SQL tasks
|
|
163
|
+
5. **Cannot create circular dependencies**
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dataops-flow-monitor
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Flow execution and monitoring: view execution instances, runtime DAG, task logs, manually execute/stop flows. Trigger keywords: execute flow, running instance, monitor, logs, stop, DAG, troubleshoot, instance, flow instance."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["ae-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DataOps Flow Execution and Monitoring
|
|
11
|
+
|
|
12
|
+
> **Prerequisites:** Read [`ae-dataops/SKILL.md`](../SKILL.md) for general rules.
|
|
13
|
+
|
|
14
|
+
Use the `dataops_flow` subcommand to execute and monitor flows.
|
|
15
|
+
|
|
16
|
+
**Core Concepts:**
|
|
17
|
+
- **executeId** — Execution record ID used by flow_* tools (obtained via `+list_flow_instances`)
|
|
18
|
+
- **flowInstanceId** — Operations instance ID used by operations_* tools (these two are not interchangeable)
|
|
19
|
+
- **Instance list queries PROD environment by default** (unlike other tools which default to DEV)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Workflow A: Find and View Flow Execution Status
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Step 1: Search flows (get flowCode)
|
|
27
|
+
ae-cli dataops_flow +list_flows --spaceCode "${spaceCode}" --keyword "etl"
|
|
28
|
+
|
|
29
|
+
# Step 2: View execution instance list (default PROD, sorted by time descending)
|
|
30
|
+
ae-cli dataops_flow +list_flow_instances --spaceCode "${spaceCode}" \
|
|
31
|
+
--flowCode "${flowCode}" --env "PROD" --size 30
|
|
32
|
+
|
|
33
|
+
# Step 3: View runtime DAG (with execution status for each node)
|
|
34
|
+
ae-cli dataops_flow +get_execute_dag --spaceCode "${spaceCode}" --executeId "${executeId}"
|
|
35
|
+
|
|
36
|
+
# Step 4: View execution record details
|
|
37
|
+
ae-cli dataops_flow +get_execute_record --spaceCode "${spaceCode}" --executeId "${executeId}"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Workflow B: Troubleshoot Task Failures
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Step 1: Get runtime DAG, locate failed node
|
|
46
|
+
ae-cli dataops_flow +get_execute_dag --spaceCode "${spaceCode}" --executeId "${executeId}"
|
|
47
|
+
# Find node with status=FAILED, get its bsTaskInstanceId and taskCode
|
|
48
|
+
|
|
49
|
+
# Step 2: View failed task logs
|
|
50
|
+
ae-cli dataops_flow +get_task_instance_log --bsTaskInstanceId "${bsTaskInstanceId}" \
|
|
51
|
+
--taskCode "${taskCode}" --limit 100
|
|
52
|
+
|
|
53
|
+
# Step 3: View task definition (confirm SQL/configuration)
|
|
54
|
+
ae-cli dataops_flow +get_task_params --spaceCode "${spaceCode}" \
|
|
55
|
+
--flowCode "${flowCode}" --taskCode "${taskCode}"
|
|
56
|
+
|
|
57
|
+
# Step 4: Re-execute after fixing
|
|
58
|
+
ae-cli dataops_flow +execute_flow --spaceCode "${spaceCode}" \
|
|
59
|
+
--flowCode "${flowCode}" --env "DEV" --confirmed true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Workflow C: Manual Execution and Stop
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Manually trigger execution (default DEV, can specify PROD)
|
|
68
|
+
ae-cli dataops_flow +execute_flow --spaceCode "${spaceCode}" \
|
|
69
|
+
--flowCode "${flowCode}" --env "DEV" --confirmed true
|
|
70
|
+
# Returns executeId
|
|
71
|
+
|
|
72
|
+
# Monitor execution progress
|
|
73
|
+
ae-cli dataops_flow +get_execute_dag --spaceCode "${spaceCode}" --executeId "${executeId}"
|
|
74
|
+
|
|
75
|
+
# Stop execution if necessary (irreversible)
|
|
76
|
+
ae-cli dataops_flow +stop_flow --spaceCode "${spaceCode}" \
|
|
77
|
+
--flowCode "${flowCode}" --executeId "${executeId}" --confirmed true
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Workflow D: View Flow Structure
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# View flow definition DAG (static structure, dependencies)
|
|
86
|
+
ae-cli dataops_flow +get_flow_dag --spaceCode "${spaceCode}" --flowCode "${flowCode}"
|
|
87
|
+
|
|
88
|
+
# View flow basic information
|
|
89
|
+
ae-cli dataops_flow +get_flow_detail --spaceCode "${spaceCode}" --flowCode "${flowCode}"
|
|
90
|
+
|
|
91
|
+
# View schedule configuration
|
|
92
|
+
ae-cli dataops_flow +get_schedule_config --spaceCode "${spaceCode}" --flowCode "${flowCode}"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Command Quick Reference
|
|
98
|
+
|
|
99
|
+
| Command | Purpose | Key Flags |
|
|
100
|
+
|---------|---------|-----------|
|
|
101
|
+
| `+list_flows` | Search flows | `--spaceCode` `--keyword` |
|
|
102
|
+
| `+get_flow_detail` | Flow information | `--spaceCode` `--flowCode` `--env` |
|
|
103
|
+
| `+get_flow_dag` | Definition DAG | `--spaceCode` `--flowCode` `--env` |
|
|
104
|
+
| `+get_schedule_config` | Schedule configuration | `--spaceCode` `--flowCode` `--env` |
|
|
105
|
+
| `+execute_flow` | Manual execution | `--spaceCode` `--flowCode` `--env` `--confirmed` |
|
|
106
|
+
| `+stop_flow` | Stop execution | `--spaceCode` `--flowCode` `--executeId` `--confirmed` |
|
|
107
|
+
| `+list_flow_instances` | Instance list | `--spaceCode` `--flowCode` `--env` `--size` |
|
|
108
|
+
| `+get_execute_record` | Execution record | `--spaceCode` `--executeId` |
|
|
109
|
+
| `+get_execute_dag` | Runtime DAG | `--spaceCode` `--executeId` |
|
|
110
|
+
| `+get_task_instance_log` | Task logs | `--bsTaskInstanceId` `--taskCode` `--startOffset` `--limit` |
|
|
111
|
+
| `+get_task_params` | Task parameters | `--spaceCode` `--flowCode` `--taskCode` `--env` |
|
|
112
|
+
| `+update_flow` | Update flow | `--spaceCode` `--flowCode` `--flowName` `--remark` `--confirmed` |
|
|
113
|
+
|
|
114
|
+
## Parameter Notes
|
|
115
|
+
|
|
116
|
+
- **env**: `DEV` (development) | `PROD` (production, instance list defaults to PROD)
|
|
117
|
+
- **Task Status**: `success` / `failure` / `running` / `waiting`
|
|
118
|
+
- **DAG Difference**: `+get_flow_dag` returns static definition structure, `+get_execute_dag` returns runtime structure with execution status
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dataops-integration
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Datasource and data integration: create datasources, create sync solutions, configure field mapping, execute sync, monitor sync. Trigger keywords: datasource, sync, integration, sync, field mapping, data ingestion, datasource, MySQL, ClickHouse."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["ae-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DataOps Datasource and Data Integration
|
|
11
|
+
|
|
12
|
+
> **Prerequisites:** Read [`ae-dataops/SKILL.md`](../SKILL.md) for general rules.
|
|
13
|
+
|
|
14
|
+
Use the `dataops_integration` subcommand to manage datasources and sync solutions.
|
|
15
|
+
|
|
16
|
+
**Core Rules:**
|
|
17
|
+
- Configuration parameters differ significantly between preset repositories (te_etl) and non-preset repositories, must strictly follow templates
|
|
18
|
+
- sourceConfig/sinkConfig/channelConfig/fieldsMapping are all JSON strings
|
|
19
|
+
- Test datasource connection before creating sync solution
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Workflow A: Create Datasource
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Step 1: View supported datasource component types
|
|
27
|
+
ae-cli dataops_integration +list_datasource_components
|
|
28
|
+
|
|
29
|
+
# Step 2: Test connection (temporary configuration, not saved)
|
|
30
|
+
ae-cli dataops_integration +test_datasource_connect --spaceCode "${spaceCode}" \
|
|
31
|
+
--componentName "MySQL" \
|
|
32
|
+
--configValue '{"host":"localhost","port":3306,"username":"root","password":"xxx","database":"test"}'
|
|
33
|
+
|
|
34
|
+
# Step 3: Create datasource
|
|
35
|
+
ae-cli dataops_integration +add_datasource --spaceCode "${spaceCode}" \
|
|
36
|
+
--componentName "MySQL" --dataSourceName "Production MySQL" \
|
|
37
|
+
--sharedConfig true \
|
|
38
|
+
--envJsonList '[{"host":"localhost","port":3306,"username":"root","password":"xxx"}]' \
|
|
39
|
+
--confirmed true
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Workflow B: Create Sync Solution (Complete Process)
|
|
45
|
+
|
|
46
|
+
### Step 1: View Available Datasources
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# View all datasources in workspace
|
|
50
|
+
ae-cli dataops_integration +list_space_datasources --spaceCode "${spaceCode}"
|
|
51
|
+
|
|
52
|
+
# View datasources available for sync (categorized by source/sink)
|
|
53
|
+
ae-cli dataops_integration +list_sync_datasources --spaceCode "${spaceCode}"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 2: Browse Source Table Structure
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# List databases under datasource
|
|
60
|
+
ae-cli dataops_integration +list_datasource_databases --spaceCode "${spaceCode}" \
|
|
61
|
+
--datasourceId "${datasourceId}"
|
|
62
|
+
|
|
63
|
+
# List tables under database
|
|
64
|
+
ae-cli dataops_integration +list_datasource_tables --spaceCode "${spaceCode}" \
|
|
65
|
+
--datasourceId "${datasourceId}" --database "test"
|
|
66
|
+
|
|
67
|
+
# Get table structure (column definitions, partitions)
|
|
68
|
+
ae-cli dataops_integration +get_table_structure --spaceCode "${spaceCode}" \
|
|
69
|
+
--datasourceId "${datasourceId}" --database "test" --tablePath "users"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Step 3: Create Sync Solution
|
|
73
|
+
|
|
74
|
+
**Key: Must strictly follow JSON templates below to generate parameters**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ae-cli dataops_integration +add_sync_solution --spaceCode "${spaceCode}" \
|
|
78
|
+
--syncName "MySQL to Preset Repository Sync" \
|
|
79
|
+
--srcComponent "MySQL" --srcDatasourceId "${mysqlDatasourceId}" \
|
|
80
|
+
--sinkComponent "hive" --sinkDatasourceId "te_etl@TASK_ENGINE_TRINO" \
|
|
81
|
+
--sourceConfig '{"component":"MySQL","datasourceId":"xxx","database":"test","tablePath":"users"}' \
|
|
82
|
+
--sinkConfig '{"component":"hive","datasourceId":"te_etl@TASK_ENGINE_TRINO","database":"","tablePath":"ods_users_mysql","tableType":"PHYSICAL_TABLE","bizClassify":"CURRENT","dbBizType":"TASK_ENV_DB","authedSpace":"","partitionKeys":[],"dataSaveMode":1,"batchSize":20000}' \
|
|
83
|
+
--channelConfig '{"limitType":"0","gatewayConfig":{"engineFlag":"TASK_ENGINE_TRINO","companyId":1,"appDefinition":"APP_GAIA","bizFlag":"BIZ_GAIA_TASK_RELEASE","repoCode":"te_etl","spaceCode":"default"}}' \
|
|
84
|
+
--fieldsMapping '{"mapping":[{"source":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false},"target":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false}}]}' \
|
|
85
|
+
--confirmed true
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 4: Execute Sync
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Manually execute sync solution
|
|
92
|
+
ae-cli dataops_integration +exec_sync_solution --spaceCode "${spaceCode}" \
|
|
93
|
+
--syncId "${syncId}" --confirmed true
|
|
94
|
+
|
|
95
|
+
# View execution history
|
|
96
|
+
ae-cli dataops_integration +list_sync_exec_histories --spaceCode "${spaceCode}" \
|
|
97
|
+
--syncId "${syncId}" --limit 20
|
|
98
|
+
|
|
99
|
+
# View execution details
|
|
100
|
+
ae-cli dataops_integration +get_sync_exec_info --spaceCode "${spaceCode}" \
|
|
101
|
+
--syncId "${syncId}" --taskId "${taskId}"
|
|
102
|
+
|
|
103
|
+
# Stop execution if necessary
|
|
104
|
+
ae-cli dataops_integration +stop_sync_solution --spaceCode "${spaceCode}" \
|
|
105
|
+
--syncId "${syncId}" --taskId "${taskId}" --confirmed true
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## JSON Configuration Templates
|
|
111
|
+
|
|
112
|
+
### Preset Repository as Target (Sink)
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"component": "hive",
|
|
117
|
+
"datasourceId": "te_etl@TASK_ENGINE_TRINO",
|
|
118
|
+
"database": "",
|
|
119
|
+
"tablePath": "ods_users_mysql",
|
|
120
|
+
"tableType": "PHYSICAL_TABLE",
|
|
121
|
+
"bizClassify": "CURRENT",
|
|
122
|
+
"dbBizType": "TASK_ENV_DB",
|
|
123
|
+
"authedSpace": "",
|
|
124
|
+
"partitionKeys": [],
|
|
125
|
+
"dataSaveMode": 1,
|
|
126
|
+
"batchSize": 20000
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Non-Preset Repository (e.g., MySQL)
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"component": "MySQL",
|
|
135
|
+
"datasourceId": "ds-uuid-xxx",
|
|
136
|
+
"database": "test",
|
|
137
|
+
"tablePath": "users"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### channelConfig (must include gatewayConfig when source or target involves preset repository)
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"limitType": "0",
|
|
146
|
+
"gatewayConfig": {
|
|
147
|
+
"engineFlag": "TASK_ENGINE_TRINO",
|
|
148
|
+
"companyId": 1,
|
|
149
|
+
"appDefinition": "APP_GAIA",
|
|
150
|
+
"bizFlag": "BIZ_GAIA_TASK_RELEASE",
|
|
151
|
+
"repoCode": "te_etl",
|
|
152
|
+
"spaceCode": "default"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### fieldsMapping (bidirectional column mapping)
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"mapping": [
|
|
162
|
+
{
|
|
163
|
+
"source": {
|
|
164
|
+
"name": "id",
|
|
165
|
+
"type": "int",
|
|
166
|
+
"manual": false,
|
|
167
|
+
"partitionKey": false,
|
|
168
|
+
"primaryKey": false,
|
|
169
|
+
"shardingKey": false,
|
|
170
|
+
"sortingKey": false,
|
|
171
|
+
"upsertKey": false
|
|
172
|
+
},
|
|
173
|
+
"target": {
|
|
174
|
+
"name": "id",
|
|
175
|
+
"type": "int",
|
|
176
|
+
"manual": false,
|
|
177
|
+
"partitionKey": false,
|
|
178
|
+
"primaryKey": false,
|
|
179
|
+
"shardingKey": false,
|
|
180
|
+
"sortingKey": false,
|
|
181
|
+
"upsertKey": false
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Command Quick Reference
|
|
191
|
+
|
|
192
|
+
| Command | Purpose | Key Flags |
|
|
193
|
+
|---------|---------|-----------|
|
|
194
|
+
| `+list_datasource_components` | List component types | None |
|
|
195
|
+
| `+test_datasource_connect` | Test connection | `--spaceCode` `--componentName` `--configValue` |
|
|
196
|
+
| `+add_datasource` | Create datasource | `--spaceCode` `--componentName` `--dataSourceName` `--sharedConfig` `--envJsonList` `--confirmed` |
|
|
197
|
+
| `+modify_datasource` | Modify datasource | `--spaceCode` `--dataSourceName` `--dataSourceRemark` `--sharedConfig` `--envJsonList` `--confirmed` |
|
|
198
|
+
| `+online_datasource` | Online datasource | `--spaceCode` `--dataSourceNames` `--confirmed` |
|
|
199
|
+
| `+list_space_datasources` | List datasources | `--spaceCode` `--componentName` `--dataSourceName` |
|
|
200
|
+
| `+list_sync_datasources` | Sync datasources | `--spaceCode` `--env` |
|
|
201
|
+
| `+list_datasource_databases` | List databases | `--spaceCode` `--datasourceId` `--env` |
|
|
202
|
+
| `+list_datasource_tables` | List tables | `--spaceCode` `--datasourceId` `--database` `--env` |
|
|
203
|
+
| `+get_table_structure` | Table structure | `--spaceCode` `--datasourceId` `--database` `--tablePath` `--env` |
|
|
204
|
+
| `+add_sync_solution` | Create sync solution | `--spaceCode` `--syncName` `--srcComponent` `--srcDatasourceId` `--sinkComponent` `--sinkDatasourceId` `--sourceConfig` `--sinkConfig` `--channelConfig` `--fieldsMapping` `--confirmed` |
|
|
205
|
+
| `+save_sync_solution` | Update sync solution | `--spaceCode` `--syncId` `--syncName` `--sourceConfig` `--sinkConfig` `--channelConfig` `--fieldsMapping` `--confirmed` |
|
|
206
|
+
| `+list_sync_solutions` | List sync solutions | `--spaceCode` |
|
|
207
|
+
| `+get_sync_detail` | Sync solution details | `--spaceCode` `--syncId` `--withParams` |
|
|
208
|
+
| `+exec_sync_solution` | Execute sync | `--spaceCode` `--syncId` `--execParams` `--confirmed` |
|
|
209
|
+
| `+list_sync_exec_histories` | Execution history | `--spaceCode` `--syncId` `--execType` `--limit` |
|
|
210
|
+
| `+get_sync_exec_info` | Execution details | `--spaceCode` `--syncId` `--taskId` |
|
|
211
|
+
| `+stop_sync_solution` | Stop sync | `--spaceCode` `--syncId` `--taskId` `--confirmed` |
|
|
212
|
+
|
|
213
|
+
## Component Conditional Required Parameters
|
|
214
|
+
|
|
215
|
+
Some components have conditional required parameters that vary based on deployment mode. The requiredFields from `+list_datasource_components` may not include these parameters (they are explained in optionalFields or importantNotes). When creating datasources, be sure to supplement corresponding parameters based on the user's selected mode.
|
|
216
|
+
|
|
217
|
+
### MongoDB
|
|
218
|
+
|
|
219
|
+
| mode value | Additional required parameters | Description |
|
|
220
|
+
|------------|-------------------------------|-------------|
|
|
221
|
+
| `single` | None | Single node mode |
|
|
222
|
+
| `replicaSet` | `replicaSet` | Replica set name (e.g., `rs0`), field name is `replicaSet` not `replicaSetName` |
|
|
223
|
+
| `sharded` | None | Sharded cluster mode |
|
|
224
|
+
|
|
225
|
+
**MongoDB envJsonList examples for each mode:**
|
|
226
|
+
|
|
227
|
+
Single node:
|
|
228
|
+
```json
|
|
229
|
+
[{"mode":"single","nodes":[{"host":"10.0.0.1","port":"27017"}],"database":"mydb","username":"admin","password":"xxx"}]
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Replica set (note `replicaSet` is required):
|
|
233
|
+
```json
|
|
234
|
+
[{"mode":"replicaSet","nodes":[{"host":"10.0.0.1","port":"27017"},{"host":"10.0.0.2","port":"27017"}],"database":"mydb","username":"admin","password":"xxx","replicaSet":"rs0"}]
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Sharded cluster:
|
|
238
|
+
```json
|
|
239
|
+
[{"mode":"sharded","nodes":[{"host":"10.0.0.1","port":"27017"},{"host":"10.0.0.2","port":"27017"}],"database":"mydb","username":"admin","password":"xxx"}]
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Key Rules
|
|
245
|
+
|
|
246
|
+
1. **Table name rule**: When writing to preset repository, if table name not specified, use `ods_${source_table_name}_${component_name_lowercase}`
|
|
247
|
+
2. **tablePath**: PostgreSQL uses `schema.table_name`, other components use table name directly
|
|
248
|
+
3. **Preset repository database is empty**, non-preset repository database is required
|
|
249
|
+
4. **channelConfig**: Must include gatewayConfig when involving preset repository
|
|
250
|
+
5. **Field mapping**: Each field object must include manual/partitionKey/primaryKey/shardingKey/sortingKey/upsertKey properties
|
|
251
|
+
6. **Conditional required parameters**: Some components (e.g., MongoDB) have additional required fields based on mode, see "Component Conditional Required Parameters" above
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dataops-query
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Data exploration and SQL query: browse data warehouse metadata, search tables, execute SQL queries, get results. Trigger keywords: query, SQL, data exploration, search tables, view table structure, browse data, IDE, catalog, select."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["ae-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DataOps Data Exploration and SQL Query
|
|
11
|
+
|
|
12
|
+
> **Prerequisites:** Read [`ae-dataops/SKILL.md`](../SKILL.md) for general rules.
|
|
13
|
+
|
|
14
|
+
Use the `dataops_ide` subcommand for data exploration and SQL queries.
|
|
15
|
+
|
|
16
|
+
**Core Rule: IDE only allows query operations, prohibits creating/modifying/deleting data tables (use dataops_datatable for task table DDL).**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Workflow A: Browse Data Warehouse Metadata
|
|
21
|
+
|
|
22
|
+
Explore data warehouse structure step by step: repository → catalog → schema → table → column.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Step 1: List available repositories
|
|
26
|
+
ae-cli dataops_ide +list_repos --spaceCode "${spaceCode}"
|
|
27
|
+
|
|
28
|
+
# Step 2: List all catalogs and their schemas in repository
|
|
29
|
+
ae-cli dataops_ide +list_catalogs --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}"
|
|
30
|
+
|
|
31
|
+
# Step 3: List tables/views under schema
|
|
32
|
+
ae-cli dataops_ide +list_tables --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
|
|
33
|
+
--catalog "${catalog}" --schema "${schema}" --isView false --pageNum 1 --pageSize 100
|
|
34
|
+
|
|
35
|
+
# Step 4: Get detailed table metadata (column definitions, DDL, partitions, row count)
|
|
36
|
+
ae-cli dataops_ide +get_table_detail --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
|
|
37
|
+
--catalog "${catalog}" --schema "${schema}" --tableName "${tableName}" \
|
|
38
|
+
--engineType "TASK_ENGINE_TRINO" --isView false
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Workflow B: Search and View Tables
|
|
44
|
+
|
|
45
|
+
When you don't know the exact table location, search by keyword.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Fuzzy search tables across catalog/schema
|
|
49
|
+
ae-cli dataops_ide +search_tables --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
|
|
50
|
+
--searchKey "user" --size 20
|
|
51
|
+
|
|
52
|
+
# Fuzzy search column names across tables
|
|
53
|
+
ae-cli dataops_ide +search_columns --spaceCode "${spaceCode}" --repoCode "${repoCode}" \
|
|
54
|
+
--searchKey "user_id" --tables '[{"catalog":"hive","isView":false,"schema":"ws_default_dev","tableName":"dwd_user"}]' \
|
|
55
|
+
--engineType "TASK_ENGINE_TRINO" --pageNum 1 --pageSize 100
|
|
56
|
+
|
|
57
|
+
# Generate SELECT SQL based on table and column names
|
|
58
|
+
ae-cli dataops_ide +generate_sql --spaceCode "${spaceCode}" --repoCode "${repoCode}" \
|
|
59
|
+
--catalog "hive" --schema "ws_default_dev" --tableName "dwd_user" \
|
|
60
|
+
--engineType "TASK_ENGINE_TRINO" --selectColumns '["user_id","user_name","age"]'
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Workflow C: Execute SQL Query (Complete Async Flow)
|
|
66
|
+
|
|
67
|
+
This is the most important workflow, containing 3 steps: execute → poll progress → get results.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Step 1: Execute SQL asynchronously (returns requestId)
|
|
71
|
+
ae-cli dataops_ide +execute_sql --spaceCode "${spaceCode}" --repoCode "te_etl" \
|
|
72
|
+
--sql "SELECT * FROM hive.ws_default_dev.dwd_user LIMIT 10" \
|
|
73
|
+
--engineType "TASK_ENGINE_TRINO" --confirmed true
|
|
74
|
+
|
|
75
|
+
# Step 2: Query execution progress (use requestId from Step 1, recommend 2-5 second polling)
|
|
76
|
+
# state values: QUEUED / RUNNING / FINISHED / FAILED / CANCELLED
|
|
77
|
+
ae-cli dataops_ide +get_query_progress --requestId "${requestId}"
|
|
78
|
+
|
|
79
|
+
# Step 3: After state=FINISHED, get query results
|
|
80
|
+
# recordId obtained from query history or progress info
|
|
81
|
+
ae-cli dataops_ide +get_query_result --spaceCode "${spaceCode}" --connType "SPACE" \
|
|
82
|
+
--repoCode "te_etl" --recordId "${recordId}"
|
|
83
|
+
|
|
84
|
+
# (Optional) Cancel running query
|
|
85
|
+
ae-cli dataops_ide +cancel_query --requestId "${requestId}" --confirmed true
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Command Quick Reference
|
|
91
|
+
|
|
92
|
+
| Command | Purpose | Key Flags |
|
|
93
|
+
|---------|---------|-----------|
|
|
94
|
+
| `+list_repos` | List repositories | `--spaceCode` |
|
|
95
|
+
| `+list_catalogs` | List catalog/schema | `--spaceCode` `--connType` `--repoCode` |
|
|
96
|
+
| `+list_tables` | List tables | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` `--isView` `--pageNum` `--pageSize` |
|
|
97
|
+
| `+get_table_detail` | Table metadata | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` `--tableName` `--engineType` `--isView` |
|
|
98
|
+
| `+get_schema_info` | Schema statistics | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` |
|
|
99
|
+
| `+search_tables` | Fuzzy search tables | `--spaceCode` `--connType` `--repoCode` `--searchKey` `--size` |
|
|
100
|
+
| `+search_columns` | Fuzzy search columns | `--spaceCode` `--repoCode` `--searchKey` `--tables` (JSON) `--engineType` `--pageNum` `--pageSize` |
|
|
101
|
+
| `+generate_sql` | Generate SELECT | `--spaceCode` `--repoCode` `--catalog` `--schema` `--tableName` `--engineType` `--selectColumns` (JSON) |
|
|
102
|
+
| `+execute_sql` | Execute SQL | `--spaceCode` `--repoCode` `--sql` `--engineType` `--confirmed` |
|
|
103
|
+
| `+get_query_progress` | Query progress | `--requestId` |
|
|
104
|
+
| `+get_query_result` | Get results | `--spaceCode` `--connType` `--repoCode` `--recordId` |
|
|
105
|
+
| `+cancel_query` | Cancel query | `--requestId` `--confirmed` |
|
|
106
|
+
|
|
107
|
+
## Parameter Notes
|
|
108
|
+
|
|
109
|
+
- **connType**: `SPACE` (data warehouse for daily queries, default) | `ETL` (ETL engine) | `APP` (app warehouse for external services)
|
|
110
|
+
- **engineType**: `TASK_ENGINE_TRINO` (default, interactive queries) | `TASK_ENGINE_STARROCKS` (real-time analytics, high concurrency)
|
|
111
|
+
- **isView**: `false` for physical tables | `true` for views
|