@wubaoqi/guancopilot 0.0.0-stage → 0.2.0
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/NOTICE.md +17 -0
- package/README.md +146 -2
- package/assets/coreutils.wasm +0 -0
- package/assets/find.wasm +0 -0
- package/assets/guanbi.wasm +4 -0
- package/assets/guancli.wasm +0 -0
- package/assets/guanhelm.wasm +0 -0
- package/assets/jq.wasm +0 -0
- package/assets/openskills.wasm +0 -0
- package/assets/rg.wasm +0 -0
- package/assets/sed.wasm +0 -0
- package/bin/guancopilot +0 -0
- package/bin/guanvm +0 -0
- package/bin/platforms.cjs +6 -0
- package/bin/run.cjs +39 -0
- package/bin/runtime.cjs +44 -0
- package/licenses/Go-LICENSE +27 -0
- package/licenses/browser-_speed-highlight_core-LICENSE +121 -0
- package/licenses/browser-_speed-highlight_core-package.json +14 -0
- package/licenses/browser-dompurify-LICENSE +202 -0
- package/licenses/browser-dompurify-LICENSE-MPL +373 -0
- package/licenses/browser-dompurify-package.json +10 -0
- package/licenses/browser-marked-LICENSE +44 -0
- package/licenses/browser-marked-package.json +10 -0
- package/licenses/coreutils-LICENSE +18 -0
- package/licenses/findutils-LICENSE +18 -0
- package/licenses/github.com_BurntSushi_toml_v1.6.0-COPYING +21 -0
- package/licenses/github.com_dustin_go-humanize_v1.0.1-LICENSE +21 -0
- package/licenses/github.com_google_jsonschema-go_v0.4.3-LICENSE +21 -0
- package/licenses/github.com_google_uuid_v1.6.0-LICENSE +27 -0
- package/licenses/github.com_jackc_pgpassfile_v1.0.0-LICENSE +22 -0
- package/licenses/github.com_jackc_pgservicefile_v0.0.0-20240606120523-5a60cdf6a761-LICENSE +22 -0
- package/licenses/github.com_jackc_pgx_v5_v5.11.0-LICENSE +22 -0
- package/licenses/github.com_jackc_puddle_v2_v2.2.2-LICENSE +22 -0
- package/licenses/github.com_mattn_go-isatty_v0.0.20-LICENSE +9 -0
- package/licenses/github.com_modelcontextprotocol_go-sdk_v1.8.0-LICENSE +216 -0
- package/licenses/github.com_ncruces_go-strftime_v1.0.0-LICENSE +21 -0
- package/licenses/github.com_remyoudompheng_bigfft_v0.0.0-20230129092748-24d4a6f8daec-LICENSE +27 -0
- package/licenses/github.com_santhosh-tekuri_jsonschema_v6_v6.0.3-LICENSE +175 -0
- package/licenses/github.com_segmentio_asm_v1.1.3-LICENSE +21 -0
- package/licenses/github.com_segmentio_encoding_v0.5.4-LICENSE +21 -0
- package/licenses/github.com_tetratelabs_wazero_v1.12.0-LICENSE +201 -0
- package/licenses/github.com_tetratelabs_wazero_v1.12.0-NOTICE +2 -0
- package/licenses/github.com_yosida95_uritemplate_v3_v3.0.2-LICENSE +25 -0
- package/licenses/golang.org_x_image_v0.44.0-LICENSE +27 -0
- package/licenses/golang.org_x_net_v0.58.0-LICENSE +27 -0
- package/licenses/golang.org_x_oauth2_v0.36.0-LICENSE +27 -0
- package/licenses/golang.org_x_sync_v0.22.0-LICENSE +27 -0
- package/licenses/golang.org_x_sys_v0.47.0-LICENSE +27 -0
- package/licenses/golang.org_x_text_v0.41.0-LICENSE +27 -0
- package/licenses/golang.org_x_time_v0.15.0-LICENSE +27 -0
- package/licenses/guanbi-skills-LICENSE +133 -0
- package/licenses/guanbi-skills-LICENSE.README.md +28 -0
- package/licenses/guanbi-skills-LICENSE.zh-CN +82 -0
- package/licenses/jq-COPYING +176 -0
- package/licenses/modernc.org_libc_v1.73.4-LICENSE +27 -0
- package/licenses/modernc.org_libc_v1.73.4-LICENSE-3RD-PARTY.md +305 -0
- package/licenses/modernc.org_mathutil_v1.7.1-LICENSE +27 -0
- package/licenses/modernc.org_memory_v1.11.0-LICENSE +27 -0
- package/licenses/modernc.org_memory_v1.11.0-LICENSE-GO +27 -0
- package/licenses/modernc.org_memory_v1.11.0-LICENSE-LOGO +1 -0
- package/licenses/modernc.org_memory_v1.11.0-LICENSE-MMAP-GO +25 -0
- package/licenses/modernc.org_sqlite_v1.53.0-LICENSE +26 -0
- package/licenses/mvdan.cc_sh_v3_v3.13.1-LICENSE +27 -0
- package/licenses/ripgrep-COPYING +3 -0
- package/licenses/ripgrep-LICENSE-MIT +21 -0
- package/licenses/sed-LICENSE +21 -0
- package/manifest.json +972 -0
- package/package.json +30 -4
- package/plugin/guancopilot.js +193 -0
- package/skills-bundle/.guanvm-skills-bundle +0 -0
- package/skills-bundle/_recipes/dashboard/gates/page_check.js +16 -0
- package/skills-bundle/_recipes/dashboard/gates/report_check.js +4 -0
- package/skills-bundle/_recipes/dashboard/knowledge/01.md +1 -0
- package/skills-bundle/_recipes/dashboard/knowledge/02.md +1 -0
- package/skills-bundle/_recipes/dashboard/knowledge/03.md +1 -0
- package/skills-bundle/_recipes/dashboard/knowledge/04.md +1 -0
- package/skills-bundle/_recipes/dashboard/knowledge/05.md +1 -0
- package/skills-bundle/_recipes/dashboard/knowledge/06.md +1 -0
- package/skills-bundle/_recipes/dashboard/template.json +41 -0
- package/skills-bundle/_recipes/etl/gates/etl_live_check.js +10 -0
- package/skills-bundle/_recipes/etl/gates/etl_report_check.js +3 -0
- package/skills-bundle/_recipes/etl/knowledge/01.md +1 -0
- package/skills-bundle/_recipes/etl/knowledge/02.md +9 -0
- package/skills-bundle/_recipes/etl/knowledge/03.md +1 -0
- package/skills-bundle/_recipes/etl/knowledge/04.md +1 -0
- package/skills-bundle/_recipes/etl/knowledge/05.md +1 -0
- package/skills-bundle/_recipes/etl/template.json +39 -0
- package/skills-bundle/_recipes/hints.json +46 -0
- package/skills-bundle/guancli/.commandface.json +155 -0
- package/skills-bundle/guancli/SKILL.md +342 -0
- package/skills-bundle/guancli/evals/evals.json +156 -0
- package/skills-bundle/guancli/evals/fixtures/metric-candidate-empty-search.json +13 -0
- package/skills-bundle/guancli/evals/fixtures/metric-candidate-prior-request.json +13 -0
- package/skills-bundle/guancli/evals/fixtures/metric-consumption-columns.json +46 -0
- package/skills-bundle/guancli/evals/fixtures/metric-consumption-metadata.json +36 -0
- package/skills-bundle/guancli/evals/fixtures/metric-consumption-query.json +18 -0
- package/skills-bundle/guancli/references/analysis-primitives.md +95 -0
- package/skills-bundle/guancli/references/auth-and-config.md +131 -0
- package/skills-bundle/guancli/references/examples/metric-date-in.json +7 -0
- package/skills-bundle/guancli/references/examples/metric-query-rows.py +83 -0
- package/skills-bundle/guancli/references/examples/metric-query.sh +6 -0
- package/skills-bundle/guancli/references/form-chatbi.md +199 -0
- package/skills-bundle/guancli/references/gateway.md +148 -0
- package/skills-bundle/guancli/references/metric-batch-query.md +82 -0
- package/skills-bundle/guancli/references/metric-commands.md +562 -0
- package/skills-bundle/guancli/references/metric-generic-query.md +215 -0
- package/skills-bundle/guancli/references/metric-json-migration.md +18 -0
- package/skills-bundle/guancli/references/metric-query-recipes.md +358 -0
- package/skills-bundle/guancli/references/preview-and-output.md +192 -0
- package/skills-bundle/guancli/references/resource-query.md +101 -0
- package/skills-bundle/guands/SKILL.md +281 -0
- package/skills-bundle/guands/references/calc-fields-boundaries-and-pitfalls.md +160 -0
- package/skills-bundle/guands/references/command-reference.md +267 -0
- package/skills-bundle/guands/references/incremental-and-schedule.md +157 -0
- package/skills-bundle/guands/references/workflows.md +256 -0
- package/skills-bundle/guanetl/SKILL.md +391 -0
- package/skills-bundle/guanetl/evals/evals.json +41 -0
- package/skills-bundle/guanetl/references/ETL_AI_DEVELOP.md +456 -0
- package/skills-bundle/guanmetric/SKILL.md +144 -0
- package/skills-bundle/guanmetric/evals/evals.json +117 -0
- package/skills-bundle/guanmetric/evals/fixtures/atomic-detail-read-model.json +18 -0
- package/skills-bundle/guanmetric/evals/fixtures/confirmed-template-summary.json +12 -0
- package/skills-bundle/guanmetric/evals/fixtures/create-result-unknown-state.json +13 -0
- package/skills-bundle/guanmetric/evals/forward-eval-2026-09-21.json +62 -0
- package/skills-bundle/guanmetric/references/metric-api-contract-examples.json +690 -0
- package/skills-bundle/guanmetric/references/metric-api-contract.schema.json +349 -0
- package/skills-bundle/guanmetric/references/metric-api-contracts.md +436 -0
- package/skills-bundle/guanmetric/references/metric-atomic-mutation.md +238 -0
- package/skills-bundle/guanmetric/references/metric-batch-status.md +71 -0
- package/skills-bundle/guanmetric/references/metric-business-dictionary-api-contract-examples.json +53 -0
- package/skills-bundle/guanmetric/references/metric-business-dictionary-api-contract.schema.json +26 -0
- package/skills-bundle/guanmetric/references/metric-business-dictionary.md +76 -0
- package/skills-bundle/guanmetric/references/metric-common-fields.md +246 -0
- package/skills-bundle/guanmetric/references/metric-composite-mutation.md +165 -0
- package/skills-bundle/guanmetric/references/metric-delete-mutation.md +70 -0
- package/skills-bundle/guanmetric/references/metric-derived-mutation.md +453 -0
- package/skills-bundle/guanmetric/references/metric-excel-template.md +365 -0
- package/skills-bundle/guanmetric/references/metric-expression-rules.md +146 -0
- package/skills-bundle/guanmetric/references/metric-flow-generate-example.json +79 -0
- package/skills-bundle/guanmetric/references/metric-flow-generate.schema.json +93 -0
- package/skills-bundle/guanmetric/references/metric-flow.md +218 -0
- package/skills-bundle/guanmetric/references/metric-hierarchy-api-contract-examples.json +171 -0
- package/skills-bundle/guanmetric/references/metric-hierarchy-api-contract.schema.json +167 -0
- package/skills-bundle/guanmetric/references/metric-hierarchy-api-contracts.md +193 -0
- package/skills-bundle/guanmetric/references/metric-mutation.md +155 -0
- package/skills-bundle/guanmetric/references/metric-public-dimension-api-contract-examples.json +62 -0
- package/skills-bundle/guanmetric/references/metric-public-dimension-api-contract.schema.json +47 -0
- package/skills-bundle/guanmetric/references/metric-public-dimension.md +155 -0
- package/skills-bundle/guanmetric/references/metric-tree-api-contract-examples.json +277 -0
- package/skills-bundle/guanmetric/references/metric-tree-api-contract.schema.json +263 -0
- package/skills-bundle/guanmetric/references/metric-tree-api-contracts.md +53 -0
- package/skills-bundle/guanmetric/references/metric-tree-mutation.md +500 -0
- package/skills-bundle/guanmetric/references/metric-validation-ownership.md +74 -0
- package/skills-bundle/guanvis/SKILL.md +333 -0
- package/skills-bundle/guanvis/evals/china_map/card_01_basic_map.js +13 -0
- package/skills-bundle/guanvis/evals/china_map/card_02_world_map.js +10 -0
- package/skills-bundle/guanvis/evals/china_map/card_03_point_map.js +12 -0
- package/skills-bundle/guanvis/evals/china_map/page.js +10 -0
- package/skills-bundle/guanvis/evals/china_map/schema.js +10 -0
- package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/README.md +30 -0
- package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/card_01_comparative_mvp.js +72 -0
- package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/page.js +6 -0
- package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/schema.js +22 -0
- package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/verify_default_roundtrip.sh +92 -0
- package/skills-bundle/guanvis/evals/complex_report_pro/card_01_monthly.js +63 -0
- package/skills-bundle/guanvis/evals/complex_report_pro/page.js +6 -0
- package/skills-bundle/guanvis/evals/complex_report_pro/schema.js +6 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/card_01_bar.js +13 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/card_02_pie.js +13 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/charts/bar.js +11 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/charts/pie.js +15 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/page.js +5 -0
- package/skills-bundle/guanvis/evals/custom_chart_echarts/schema.js +9 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/card_01_level_nodes.js +19 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.css +51 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.html +1 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.js +28 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/page.js +5 -0
- package/skills-bundle/guanvis/evals/custom_chart_sdk/schema.js +7 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/card_01_dynamic_dataset.js +20 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/card_02_dynamic_metric_chart.js +16 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/metrics.js +19 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/page.js +9 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/schema.js +7 -0
- package/skills-bundle/guanvis/evals/dynamic_fields/verify_default_roundtrip.sh +137 -0
- package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/README.md +26 -0
- package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/card_01_percentage_advcalc.js +44 -0
- package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/card_02_scroll_percentage.js +12 -0
- package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/page.js +6 -0
- package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/schema.js +22 -0
- package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/README.md +28 -0
- package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/card_01_rank_advcalc.js +59 -0
- package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/page.js +6 -0
- package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/schema.js +22 -0
- package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/verify_default_roundtrip.sh +135 -0
- package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/README.md +15 -0
- package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/card_01_running_total_advcalc.js +74 -0
- package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/page.js +6 -0
- package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/schema.js +22 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/card_01_revenue_column.js +10 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/card_02_trend_line.js +9 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/card_03_kpi.js +6 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/card_04_pie.js +9 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/card_05_calc_field_test.js +12 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/page.js +11 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/schema.js +14 -0
- package/skills-bundle/guanvis/evals/sales_dashboard/selector_01_region.js +10 -0
- package/skills-bundle/guanvis/evals/split_charts/card_01_column_split.js +10 -0
- package/skills-bundle/guanvis/evals/split_charts/card_02_line_split.js +10 -0
- package/skills-bundle/guanvis/evals/split_charts/card_03_combo_split.js +11 -0
- package/skills-bundle/guanvis/evals/split_charts/page.js +10 -0
- package/skills-bundle/guanvis/evals/split_charts/schema.js +14 -0
- package/skills-bundle/guanvis/evals/tab_layout/card_00_total_revenue.js +6 -0
- package/skills-bundle/guanvis/evals/tab_layout/card_01_revenue.js +10 -0
- package/skills-bundle/guanvis/evals/tab_layout/card_02_trend.js +9 -0
- package/skills-bundle/guanvis/evals/tab_layout/card_03_story.js +11 -0
- package/skills-bundle/guanvis/evals/tab_layout/page.js +23 -0
- package/skills-bundle/guanvis/evals/tab_layout/schema.js +11 -0
- package/skills-bundle/guanvis/evals/tab_layout/selector_01_region.js +8 -0
- package/skills-bundle/guanvis/references/api-reference.md +476 -0
- package/skills-bundle/guanvis/references/builder-reference.md +1676 -0
- package/skills-bundle/guanvis/references/chart-properties.md +2101 -0
- package/skills-bundle/guanvis/references/checkout-editing.md +53 -0
- package/skills-bundle/guanvis/references/complex-report-pro-patterns.md +398 -0
- package/skills-bundle/guanvis/references/dir-and-page-management.md +48 -0
- package/skills-bundle/guanvis/references/metric-chart-reference.md +258 -0
- package/skills-bundle/guanvis/references/publish-and-constraints.md +60 -0
- package/skills-bundle/guanvis/references/selector-reference.md +431 -0
- package/skills-bundle/guanvis/references/tableau-migration.md +73 -0
- package/skills-bundle/guanvis/references/theme.md +123 -0
- package/skills-bundle/guanvis/references/troubleshooting.md +25 -0
- package/skills-bundle/guanvis/references/validation-and-chart-patterns.md +205 -0
- package/skills-bundle/guanwf/SKILL.md +543 -0
- package/skills-bundle/guanwf/references/ETL_AI_DEVELOP.md +456 -0
- package/skills-bundle/guanwf/references/TASK_NODE_CONTRACTS.md +64 -0
- package/skills-bundle/guanwf/references/WORKFLOW_DSL.md +536 -0
- package/skills-bundle/guanwf/references/WORKFLOW_NODES.md +166 -0
- package/skills-bundle/js/SKILL.md +145 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# guands 典型工作流
|
|
2
|
+
|
|
3
|
+
## 创建新数据库连接
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# 1. 查看可用连接器
|
|
7
|
+
guands connector list
|
|
8
|
+
|
|
9
|
+
# 2. 查看连接器配置模板
|
|
10
|
+
guands connector get <cn_id>
|
|
11
|
+
|
|
12
|
+
# 3. 测试连接
|
|
13
|
+
guands account test <cn_id> --config '{"host":"db.example.com","port":5432,"database":"analytics","username":"reader","password":"xxx"}'
|
|
14
|
+
|
|
15
|
+
# 4. 创建账号
|
|
16
|
+
guands account create <cn_id> --config '{"name":"分析库","host":"db.example.com","port":5432,"database":"analytics","username":"reader","password":"xxx"}'
|
|
17
|
+
|
|
18
|
+
# 5. 浏览表结构
|
|
19
|
+
guands account schemas <ac_id>
|
|
20
|
+
guands account tables <ac_id> --schema public
|
|
21
|
+
guands account columns <ac_id> --table orders
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 重命名数据库连接账号
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
guands account rename <ac_id> --name "新的显示名称"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
该操作原地更新账户名称并保留 acId、凭证、权限和已有数据集引用。命令会在更新前后回读账号;
|
|
31
|
+
如果后端不支持原地更新或回读未生效,会直接报错。禁止用删除后重建替代账户改名。
|
|
32
|
+
|
|
33
|
+
## 批量整理数据集
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. 查看目录树
|
|
37
|
+
guands dir tree
|
|
38
|
+
|
|
39
|
+
# 2. 创建新目录
|
|
40
|
+
guands dir create --name "归档" --parent <root_dir_id>
|
|
41
|
+
|
|
42
|
+
# 3. 搜索要移动的数据集
|
|
43
|
+
guands dataset list 旧版
|
|
44
|
+
|
|
45
|
+
# 4. 批量移动
|
|
46
|
+
guands dataset batch-move --ids "ds1,ds2,ds3" --dir-id <archive_dir_id>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 从数据库创建数据集
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 1. 查看账号列表
|
|
53
|
+
guands account list
|
|
54
|
+
|
|
55
|
+
# 2. 预览表数据确认
|
|
56
|
+
guands account preview <ac_id> --table orders
|
|
57
|
+
|
|
58
|
+
# 3. 创建抽取数据集(默认模式,priority=MEDIUM)
|
|
59
|
+
# 注意:创建成功后 BI 服务端会自动触发首次全量抽数(状态 UPDATING/WAITING),
|
|
60
|
+
# 无需也不要立即手动 refresh(会报 5001「当前数据集有任务正在执行中」)
|
|
61
|
+
guands dataset create-db --ac-id <ac_id> --tables "orders,customers" --dir-id <dirId>
|
|
62
|
+
|
|
63
|
+
# 4. 创建直连数据集(默认启用实时卡片缓存,interval=600s)
|
|
64
|
+
guands dataset create-db --ac-id <ac_id> --tables "orders" --mode direct --dir-id <dirId>
|
|
65
|
+
|
|
66
|
+
# 5. 直连数据集,禁用实时卡片缓存
|
|
67
|
+
guands dataset create-db --ac-id <ac_id> --tables "orders" --mode direct --realtime=false --dir-id <dirId>
|
|
68
|
+
|
|
69
|
+
# 6. 直连数据集,自定义缓存间隔(秒)
|
|
70
|
+
guands dataset create-db --ac-id <ac_id> --tables "orders" --mode direct --cache-interval 300 --dir-id <dirId>
|
|
71
|
+
|
|
72
|
+
# 7. 通过自定义 SQL 创建数据集(支持 JOIN、子查询、类型转换等)
|
|
73
|
+
guands dataset create-query --ac-id <ac_id> --name "用户订单汇总" --sql "SELECT u.id, u.name, SUM(o.amount) AS total FROM users u JOIN orders o ON u.id = o.user_id GROUP BY u.id, u.name" --dir-id <dirId>
|
|
74
|
+
|
|
75
|
+
# 8. SQL 直连数据集
|
|
76
|
+
guands dataset create-query --ac-id <ac_id> --name "实时订单" --sql "SELECT * FROM orders WHERE status = 'active'" --mode direct --dir-id <dirId>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 从 CSV/Excel 导入数据集
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# 1. 预览文件结构
|
|
83
|
+
guands dataset import /tmp/sales.csv --preview --dir-id <dirId>
|
|
84
|
+
|
|
85
|
+
# 2. 直接导入
|
|
86
|
+
guands dataset import /tmp/sales.csv --dir-id <dirId>
|
|
87
|
+
|
|
88
|
+
# 3. 导入 Excel(单 Sheet 自动选择;多 Sheet 必须指定一个名称)
|
|
89
|
+
guands dataset import /tmp/report.xlsx --sheet "销售明细" --dir-id <dirId>
|
|
90
|
+
|
|
91
|
+
# 4. Excel 表头不在第 1 行(如前几行是标题说明)
|
|
92
|
+
guands dataset import /tmp/report.xlsx --sheet "销售明细" --header-row 3 --dir-id <dirId>
|
|
93
|
+
|
|
94
|
+
# 5. CSV 自动探测不准时显式指定编码/分隔符
|
|
95
|
+
guands dataset import /tmp/data.csv --encoding GB18030 --delimiter ";" --dir-id <dirId>
|
|
96
|
+
|
|
97
|
+
# 6. 逐列指定类型,覆盖服务端推断(前若干行为空的数值列常被推断成 STRING)
|
|
98
|
+
guands dataset import /tmp/world.csv --dir-id <dirId> \
|
|
99
|
+
--col-type "Ease of Business=DOUBLE" --col-type "Year=INT"
|
|
100
|
+
|
|
101
|
+
# 7. 大文件默认等待导入完成,可延长等待超时
|
|
102
|
+
guands dataset import /tmp/large.xlsx --sheet "数据" --timeout 900 --dir-id <dirId>
|
|
103
|
+
|
|
104
|
+
# 8. 慢网络上传大文件在上传阶段报超时(HTTP 上传默认 120 秒)时,用 GUANCLI_UPLOAD_TIMEOUT(整数秒)调大
|
|
105
|
+
GUANCLI_UPLOAD_TIMEOUT=600 guands dataset import /tmp/large.csv --dir-id <dirId>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**import 格式约束**(解析行为由 BI 服务端决定):
|
|
109
|
+
|
|
110
|
+
- 表头默认取第 1 行。**Excel** 可用 `--header-row N`(1-based)指定表头所在行;**CSV 服务端只认第 1 行为表头**,表头前有标题/空行时必须先预处理文件(删掉表头前的行)或转换为 xlsx 再导入
|
|
111
|
+
- CSV 编码(UTF-8/GB18030 等,含 UTF-8 BOM 自动处理)和分隔符(逗号/分号等)默认自动探测;探测不准时用 `--encoding` / `--delimiter`(取值 COMMA/TAB/SEMICOLON/PIPE/SPACE 或单个字符)显式指定,`--encoding`/`--delimiter` 仅对 CSV 有效
|
|
112
|
+
- 列类型默认按内容推断。**前若干行为空的数值列可能被推断成 STRING**(后续 `AVG()`/`SUM()` 会返回空);用 `--col-type "列名=类型"`(可重复)显式覆盖,类型取值 `INT/LONG/SHORT/FLOAT/DOUBLE/STRING/DATE/TIMESTAMP/BOOL`。列名拼错会被忽略并提示可用列名
|
|
113
|
+
- 导入前会自动做解析校验:若解析结果只有 1 列且表头疑似含分隔符(典型的"真表头+数据挤进一列"症状),会拒绝导入并提示调整参数;不确定时先 `--preview` 检查字段结构
|
|
114
|
+
- 上传前会识别文件实际内容;扩展名为 `.csv`、实际为 XLSX/ZIP/OLE 容器时直接拒绝,请恢复正确的 Excel 扩展名后重试
|
|
115
|
+
- `dataset import` 每次只接受一个文件并且最多创建一个数据集;批量导入请由调用方逐个执行命令
|
|
116
|
+
- Excel 的 Sheet 名称由 BI 上传接口解析;单 Sheet 自动选择,多 Sheet 必须用 `--sheet <名称>` 精确指定一个。CLI 不引入本地 Excel 解析依赖
|
|
117
|
+
- 真实导入默认等待本次创建触发的导入任务到终态;只有 `FINISHED` 才返回 0,`FAILED/CANCELED`、等待超时、同步创建失败或缺少 taskId 均返回非零。失败数据集不会被自动删除
|
|
118
|
+
- import 时不支持直接配置去重主键,需建集后用 `dataset primary-key set <dsId> --columns "id"` 补充;清空使用 `dataset primary-key clear <dsId>`
|
|
119
|
+
|
|
120
|
+
## 替换现有 CSV/Excel 数据集数据
|
|
121
|
+
|
|
122
|
+
用新文件替换现有数据集的底层数据,保留 dsId 不变,下游卡片/页面引用不断开。
|
|
123
|
+
仅支持 CSV/Excel 类型数据集。
|
|
124
|
+
|
|
125
|
+
**重要**:替换前会自动校验 CSV header 与目标数据集 schema 是否一致(列数+列名),
|
|
126
|
+
不一致时拒绝执行。建议首次替换或不确定时先用 `--dry-run` 预览计划。
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# 先用 dry-run 查看替换计划(不执行)
|
|
130
|
+
guands dataset replace-data <dsId> /tmp/fixed.csv --dry-run # 或不带 --yes 直接跑:都只打印计划
|
|
131
|
+
|
|
132
|
+
# 确认后实际替换
|
|
133
|
+
guands dataset replace-data <dsId> /tmp/fixed.csv --yes
|
|
134
|
+
|
|
135
|
+
# 用新的 Excel 文件替换;多 Sheet 必须指定一个名称
|
|
136
|
+
guands dataset replace-data <dsId> /tmp/updated.xlsx --sheet "销售明细" --yes
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
追加 Excel 数据同样遵循单 Sheet 规则:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
guands dataset append-data <dsId> /tmp/daily.xlsx --sheet "当日数据" --yes
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`append-data` / `replace-data` 的 Excel Sheet 名称由 BI 上传接口解析。单 Sheet 自动选择;
|
|
146
|
+
多 Sheet 未传 `--sheet` 时命令会停止并列出候选名称,不会把所有 Sheet 隐式合并后写入目标数据集。
|
|
147
|
+
|
|
148
|
+
**新文件与数据集列结构不一致时**(物理列增减/改名):replace-data 不改结构,schema 预校验会直接拒绝执行(避免整列 null)。文件数据集的结构变更暂无保 dsId 的 CLI 方案(`sync-schema` 支持数据库类和 GUAN_FORM 数据集,不支持文件数据集),需重新 `dataset import` 建集或在 BI 网页端处理。
|
|
149
|
+
|
|
150
|
+
## 源端结构变更后同步 schema(AI 字段映射工作流)
|
|
151
|
+
|
|
152
|
+
源端加列/删列/改名/改类型后,用 `sync-schema` 把数据集结构对齐到源端最新结构,
|
|
153
|
+
对应 BI 网页端"更新模型结构"流程。改名字段通过映射保留 fdId,下游卡片引用不断。
|
|
154
|
+
支持数据库类数据集(抽取/直连)和填报数据集(GUAN_FORM);直连数据集 apply 只能用 `--mode reset`。
|
|
155
|
+
GUAN_FORM 从数据集 `config.tableId` 定位关联 Form,通过 `/api/thirdparty/data/preview` 获取当前字段,
|
|
156
|
+
再复用 `compare-field → do-change`;它不调用数据库 account preview,也不支持 `--sql`。
|
|
157
|
+
|
|
158
|
+
**⚠ 严禁用"删除数据集再重建"替代以下任何修改**(重建后 dsId/fdId 全变,
|
|
159
|
+
下游卡片、ETL、权限、调度、血缘引用全部断裂,且原数据不可恢复):
|
|
160
|
+
|
|
161
|
+
- 修改数据集的模型 SQL → `sync-schema plan <dsId> --sql "新 SQL"` 原地改(保 dsId/fdId)
|
|
162
|
+
- 修改物理字段名 → SQL 数据集在 `--sql` 中用 `AS 新名` + plan.json 填 newFdName 映射;表抽取数据集源表列改名后直接 `sync-schema plan` 映射
|
|
163
|
+
- 修改字段展示名 → `dataset alias` / `dataset update-fields`(与结构无关,直接原地改)
|
|
164
|
+
- 增删列/改类型 → 本节 sync-schema 流程
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# 1. 生成同步计划(预览源端最新结构 + 服务端按 name/alias 自动关联)
|
|
168
|
+
guands dataset sync-schema plan <dsId>
|
|
169
|
+
# SQL 数据集要同时改查询语句时:
|
|
170
|
+
guands dataset sync-schema plan <dsId> --sql "SELECT id, cust_name AS customer_name, amount FROM orders"
|
|
171
|
+
|
|
172
|
+
# 2. 检查计划文件(sync-schema-plan-<dsId>.json),处理 unmappedOrig 中每个字段:
|
|
173
|
+
# - 判断是"改名"还是"删除":对比 unmappedOrig(源端消失的旧字段)与 addedNew(源端新增列),
|
|
174
|
+
# 名称语义相近且类型兼容的(如 cust_nm → customer_name、拼音↔中文、加前缀)大概率是改名
|
|
175
|
+
# - 改名 → 填 newFdName 为 addedNew 中的对应列名
|
|
176
|
+
# - 确认删除 → 置 confirmDrop: true
|
|
177
|
+
# ⚠ AI 判断规则:高置信(类型一致 + 名称明显对应)可直接填映射;
|
|
178
|
+
# 低置信或删除大量字段时必须先与用户确认,不要擅自 confirmDrop
|
|
179
|
+
|
|
180
|
+
# 3. dry-run 核对最终请求体(assoc 映射 + onlySynchronizeSchema)
|
|
181
|
+
guands dataset sync-schema apply <dsId> --plan sync-schema-plan-<dsId>.json --mode schema-only --dry-run
|
|
182
|
+
|
|
183
|
+
# 4. 提交(--mode 必选,对应网页端"请确认更新方式"弹窗)
|
|
184
|
+
# schema-only: 仅更新数据结构,不触发覆写数据(未关联字段数据将被删除)
|
|
185
|
+
# reset: 重置数据集,触发全量覆写并更新结构(直连只能用这个)
|
|
186
|
+
guands dataset sync-schema apply <dsId> --plan sync-schema-plan-<dsId>.json --mode schema-only
|
|
187
|
+
|
|
188
|
+
# 5. 验收:改名字段 fdId 不变,新列出现,删除列消失
|
|
189
|
+
guands dataset fields <dsId>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**安全闸门**(apply 自动校验,不满足直接报错):
|
|
193
|
+
|
|
194
|
+
- unmappedOrig 中每个字段必须已填 `newFdName` 或显式 `confirmDrop: true`
|
|
195
|
+
- 主键字段不允许删除;主键列会按映射后的新列名自动透传(keyColumns)
|
|
196
|
+
- 字段保留比例低于 `--min-match-ratio`(默认 0.5)拒绝执行——变化过大通常是配错了源表/SQL,确认无误可 `--force`
|
|
197
|
+
- 提交前会重新预览源端结构并核对数据集当前字段,计划过期(期间源端又变了/别人改过 schema)会拒绝并要求重新 plan
|
|
198
|
+
- 提交后严格回读最终物理字段集合、字段类型和数据集可用状态;matched/remapped 必须保留原 fdId、confirmedDrops 必须消失、added 必须出现。任一不一致或 GET/解析失败都返回非零
|
|
199
|
+
|
|
200
|
+
**注意**:
|
|
201
|
+
- 改名映射后 BI 会把旧字段名保留为展示名(alias),物理名变为新列名——与网页端行为一致,下游按展示名引用不受影响
|
|
202
|
+
- `--mode reset` 会触发全量覆写,大表耗时较长,用 `--timeout` 调整等待时间
|
|
203
|
+
- 后置验收失败时远端变更可能已经生效;先执行 `dataset fields` 回读并重新生成 plan,禁止直接重试旧 plan
|
|
204
|
+
- `rowCount` 是延迟元数据快照,不作为数据完整性证明;真实数据可用性从数据集预览、卡片或 ETL 等下游入口验证
|
|
205
|
+
- 文件上传(CSV/Excel)数据集不走 sync-schema,结构变化直接用 `dataset import` 重导或见 replace-data 一节
|
|
206
|
+
|
|
207
|
+
## GUAN_FORM 模型漂移闭环
|
|
208
|
+
|
|
209
|
+
Form 与 GUAN_FORM Dataset 是两个独立资源。Form 新增、删除或改名字段后,普通 `dataset refresh` 只刷新已有模型中的数据,**不会**自动演进 Dataset 模型结构。必须使用下面的原地同步流程;严禁删除并重建数据集,否则 dsId、fdId、下游引用、权限、调度和历史状态都会丢失。
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# 1. 分别回读 Form 与 Dataset,确认 fmId/dsId、当前字段和关联关系
|
|
213
|
+
guands form get <fmId>
|
|
214
|
+
guands dataset get <dsId>
|
|
215
|
+
guands dataset fields <dsId>
|
|
216
|
+
|
|
217
|
+
# 2. 生成模型漂移计划;GUAN_FORM 从 config.tableId 读取 Form 最新字段
|
|
218
|
+
guands dataset sync-schema plan <dsId> --out sync-schema-plan-<dsId>.json
|
|
219
|
+
|
|
220
|
+
# 3. 检查 matched / unmappedOrig / addedNew
|
|
221
|
+
# 改名:为对应 unmappedOrig 填 newFdName,保留原 fdId
|
|
222
|
+
# 删除:必须显式填 confirmDrop: true
|
|
223
|
+
|
|
224
|
+
# 4. 先预演。GUAN_FORM 默认优先 schema-only;未经用户明确授权不得 reset
|
|
225
|
+
guands dataset sync-schema apply <dsId> \
|
|
226
|
+
--plan sync-schema-plan-<dsId>.json \
|
|
227
|
+
--mode schema-only \
|
|
228
|
+
--dry-run
|
|
229
|
+
|
|
230
|
+
# 5. 正式提交;只有严格后置验收全部通过才返回 0
|
|
231
|
+
guands dataset sync-schema apply <dsId> \
|
|
232
|
+
--plan sync-schema-plan-<dsId>.json \
|
|
233
|
+
--mode schema-only
|
|
234
|
+
|
|
235
|
+
# 6. 独立回读字段定义
|
|
236
|
+
guands dataset fields <dsId>
|
|
237
|
+
|
|
238
|
+
# 7. 从真实下游入口查询新增字段;空数据或 rowCount=0 不等于结构失败
|
|
239
|
+
guancli ds preview <dsId> --columns "<新增字段1>,<新增字段2>" --limit 20
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
成功输出包含 `matched`、`remapped`、`confirmedDrops`、`added` 和最终 `status`。如果命令提示“schema 变更已提交,但后置验收失败”,远端可能已部分或全部生效:先执行 `dataset fields` 和真实下游查询确认现状,再重新生成 plan;不要循环重试原计划。
|
|
243
|
+
|
|
244
|
+
## create-db vs create-query 选择指南
|
|
245
|
+
|
|
246
|
+
| 场景 | 命令 | 说明 |
|
|
247
|
+
|---|---|---|
|
|
248
|
+
| 按表名批量创建 | `create-db --tables "t1,t2,t3"` | 一次创建多张表对应的数据集 |
|
|
249
|
+
| 需要自定义数据集名称 | `create-db --tables "t1" --ds-names "用户表"` | 表名和数据集名不同时 |
|
|
250
|
+
| 多表 JOIN / 子查询 | `create-query --sql "SELECT ..."` | 单条 SQL 创建单个数据集 |
|
|
251
|
+
| 类型转换 / 计算列 | `create-query --sql "SELECT a::int, ..."` | SQL 中包含类型转换或表达式 |
|
|
252
|
+
| 带 WHERE 条件 | `create-query --sql "SELECT * FROM t WHERE ..."` | 只需要部分数据 |
|
|
253
|
+
|
|
254
|
+
两个命令都支持 `--mode extract/direct`、`--dir-id`、`--realtime`、`--cache-interval`。
|
|
255
|
+
抽取模式下还支持 `--incremental`、`--incremental-sql`、`--preclean`、`--preclean-rule`;
|
|
256
|
+
`create-db` 建集时额外支持 `--primary-keys`。建集后修改主键统一使用 `dataset primary-key set/clear`。
|