@clickzetta/cz-cli-darwin-arm64 0.3.81 → 0.3.83
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/bin/cz-cli +0 -0
- package/bin/skills/clickzetta-access-control/LICENSE +16 -0
- package/bin/skills/clickzetta-access-control/SKILL.md +243 -0
- package/bin/skills/clickzetta-access-control/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-access-control/references/dynamic-masking.md +86 -0
- package/bin/skills/clickzetta-access-control/references/grant-revoke.md +103 -0
- package/bin/skills/clickzetta-access-control/references/role-management.md +66 -0
- package/bin/skills/clickzetta-access-control/references/user-management.md +61 -0
- package/bin/skills/clickzetta-app-python-sdk/LICENSE +16 -0
- package/bin/skills/clickzetta-app-python-sdk/SKILL.md +153 -0
- package/bin/skills/clickzetta-app-python-sdk/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-app-python-sdk/references/bulkload.md +196 -0
- package/bin/skills/clickzetta-app-python-sdk/references/connector.md +143 -0
- package/bin/skills/clickzetta-app-python-sdk/references/realtime.md +122 -0
- package/bin/skills/clickzetta-batch-sync-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-batch-sync-pipeline/SKILL.md +227 -0
- package/bin/skills/clickzetta-batch-sync-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-bi-connect/LICENSE +16 -0
- package/bin/skills/clickzetta-bi-connect/SKILL.md +176 -0
- package/bin/skills/clickzetta-bi-connect/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-bi-connect/references/bi-tools.md +170 -0
- package/bin/skills/clickzetta-cdc-sync-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-cdc-sync-pipeline/SKILL.md +633 -0
- package/bin/skills/clickzetta-cdc-sync-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-data-ingest-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-data-ingest-pipeline/SKILL.md +237 -0
- package/bin/skills/clickzetta-data-ingest-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-data-retention/LICENSE +16 -0
- package/bin/skills/clickzetta-data-retention/SKILL.md +160 -0
- package/bin/skills/clickzetta-data-retention/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-data-retention/references/lifecycle-reference.md +175 -0
- package/bin/skills/clickzetta-data-science/LICENSE +16 -0
- package/bin/skills/clickzetta-data-science/SKILL.md +125 -0
- package/bin/skills/clickzetta-data-science/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-data-science/references/bitmap-profile.md +146 -0
- package/bin/skills/clickzetta-data-science/references/data-patterns.md +110 -0
- package/bin/skills/clickzetta-data-science/references/setup.md +160 -0
- package/bin/skills/clickzetta-data-science/references/stats-functions.md +195 -0
- package/bin/skills/clickzetta-data-science/references/write-and-infer.md +122 -0
- package/bin/skills/clickzetta-data-science/references/zettapark-api.md +156 -0
- package/bin/skills/clickzetta-data-sharing/LICENSE +16 -0
- package/bin/skills/clickzetta-data-sharing/SKILL.md +160 -0
- package/bin/skills/clickzetta-data-sharing/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-data-sharing/references/share-ddl.md +134 -0
- package/bin/skills/clickzetta-dba-guide/LICENSE +16 -0
- package/bin/skills/clickzetta-dba-guide/SKILL.md +542 -0
- package/bin/skills/clickzetta-dba-guide/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-dw-modeling/LICENSE +16 -0
- package/bin/skills/clickzetta-dw-modeling/SKILL.md +351 -0
- package/bin/skills/clickzetta-dw-modeling/eval_cases.jsonl +4 -0
- package/bin/skills/clickzetta-dw-modeling/references/modeling-patterns.md +100 -0
- package/bin/skills/clickzetta-dynamic-table/LICENSE +16 -0
- package/bin/skills/clickzetta-dynamic-table/SKILL.md +230 -0
- package/bin/skills/clickzetta-dynamic-table/best-practices/dimension-table-join-guide.md +253 -0
- package/bin/skills/clickzetta-dynamic-table/best-practices/medallion-and-stream-patterns.md +124 -0
- package/bin/skills/clickzetta-dynamic-table/best-practices/non-partitioned-merge-into-warning.md +96 -0
- package/bin/skills/clickzetta-dynamic-table/best-practices/performance-optimization.md +109 -0
- package/bin/skills/clickzetta-dynamic-table/best-practices/scheduling-guide.md +135 -0
- package/bin/skills/clickzetta-dynamic-table/dt-creator/SKILL.md +15 -0
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/dt-declaration-strategy.md +185 -0
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/incremental-config-reference.md +427 -0
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/refresh-history-guide.md +260 -0
- package/bin/skills/clickzetta-dynamic-table/dt-creator/references/sql-limitations.md +80 -0
- package/bin/skills/clickzetta-dynamic-table/dynamic-table-alter/SKILL.md +190 -0
- package/bin/skills/clickzetta-dynamic-table/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/SKILL.md +27 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-column-validation-rules.md +118 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-conversion-rules.md +225 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-placeholder-rules.md +182 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-refresh-rules.md +98 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-self-reference-rules.md +76 -0
- package/bin/skills/clickzetta-dynamic-table/sql-to-dt/references/sql2dt-workflow.md +109 -0
- package/bin/skills/clickzetta-external-catalog/LICENSE +16 -0
- package/bin/skills/clickzetta-external-catalog/SKILL.md +123 -0
- package/bin/skills/clickzetta-external-catalog/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-external-catalog/references/external-catalog-ddl.md +130 -0
- package/bin/skills/clickzetta-external-function/LICENSE +16 -0
- package/bin/skills/clickzetta-external-function/SKILL.md +203 -0
- package/bin/skills/clickzetta-external-function/eval_cases.jsonl +4 -0
- package/bin/skills/clickzetta-external-function/references/external-function-ddl.md +171 -0
- package/bin/skills/clickzetta-file-import-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-file-import-pipeline/SKILL.md +190 -0
- package/bin/skills/clickzetta-file-import-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-index-manager/LICENSE +16 -0
- package/bin/skills/clickzetta-index-manager/SKILL.md +140 -0
- package/bin/skills/clickzetta-index-manager/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-index-manager/references/bloomfilter-index.md +67 -0
- package/bin/skills/clickzetta-index-manager/references/index-management.md +73 -0
- package/bin/skills/clickzetta-index-manager/references/inverted-index.md +80 -0
- package/bin/skills/clickzetta-index-manager/references/vector-index.md +81 -0
- package/bin/skills/clickzetta-java-sdk/LICENSE +16 -0
- package/bin/skills/clickzetta-java-sdk/SKILL.md +186 -0
- package/bin/skills/clickzetta-java-sdk/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-java-sdk/references/bulkload.md +163 -0
- package/bin/skills/clickzetta-java-sdk/references/realtime.md +212 -0
- package/bin/skills/clickzetta-kafka-ingest-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-kafka-ingest-pipeline/SKILL.md +769 -0
- package/bin/skills/clickzetta-kafka-ingest-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-kafka-ingest-pipeline/references/kafka-pipe-syntax.md +324 -0
- package/bin/skills/clickzetta-lakehouse-connect/LICENSE +16 -0
- package/bin/skills/clickzetta-lakehouse-connect/SKILL.md +218 -0
- package/bin/skills/clickzetta-lakehouse-connect/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-lakehouse-connect/evals/evals.json +35 -0
- package/bin/skills/clickzetta-lakehouse-connect/references/config-file.md +435 -0
- package/bin/skills/clickzetta-lakehouse-connect/references/jdbc.md +478 -0
- package/bin/skills/clickzetta-lakehouse-connect/references/python-sdk.md +225 -0
- package/bin/skills/clickzetta-lakehouse-connect/references/sqlalchemy.md +468 -0
- package/bin/skills/clickzetta-lakehouse-connect/references/zettapark-session.md +445 -0
- package/bin/skills/clickzetta-manage-comments/LICENSE +16 -0
- package/bin/skills/clickzetta-manage-comments/SKILL.md +219 -0
- package/bin/skills/clickzetta-manage-comments/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-metadata/LICENSE +16 -0
- package/bin/skills/clickzetta-metadata/SKILL.md +502 -0
- package/bin/skills/clickzetta-metadata/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-metadata/references/instance-views-reference.md +276 -0
- package/bin/skills/clickzetta-metadata/references/metering-views-reference.md +137 -0
- package/bin/skills/clickzetta-metadata/references/show-desc-reference.md +326 -0
- package/bin/skills/clickzetta-metadata/references/views-reference.md +271 -0
- package/bin/skills/clickzetta-monitoring/LICENSE +16 -0
- package/bin/skills/clickzetta-monitoring/SKILL.md +215 -0
- package/bin/skills/clickzetta-monitoring/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-monitoring/references/job-history-analysis.md +97 -0
- package/bin/skills/clickzetta-monitoring/references/show-jobs.md +48 -0
- package/bin/skills/clickzetta-oss-ingest-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-oss-ingest-pipeline/SKILL.md +562 -0
- package/bin/skills/clickzetta-oss-ingest-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-overview/LICENSE +16 -0
- package/bin/skills/clickzetta-overview/SKILL.md +102 -0
- package/bin/skills/clickzetta-overview/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-overview/references/brands-and-endpoints.md +79 -0
- package/bin/skills/clickzetta-overview/references/object-model.md +311 -0
- package/bin/skills/clickzetta-overview/references/studio-modules.md +173 -0
- package/bin/skills/clickzetta-pipeline-review/LICENSE +16 -0
- package/bin/skills/clickzetta-pipeline-review/SKILL.md +377 -0
- package/bin/skills/clickzetta-query-optimizer/LICENSE +16 -0
- package/bin/skills/clickzetta-query-optimizer/SKILL.md +156 -0
- package/bin/skills/clickzetta-query-optimizer/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-query-optimizer/references/explain.md +56 -0
- package/bin/skills/clickzetta-query-optimizer/references/hints-and-sortkey.md +78 -0
- package/bin/skills/clickzetta-query-optimizer/references/optimize.md +65 -0
- package/bin/skills/clickzetta-query-optimizer/references/result-cache.md +49 -0
- package/bin/skills/clickzetta-query-optimizer/references/show-jobs.md +42 -0
- package/bin/skills/clickzetta-realtime-sync-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-realtime-sync-pipeline/SKILL.md +323 -0
- package/bin/skills/clickzetta-realtime-sync-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-semantic-view/LICENSE +16 -0
- package/bin/skills/clickzetta-semantic-view/SKILL.md +207 -0
- package/bin/skills/clickzetta-semantic-view/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-semantic-view/references/semantic-view-reference.md +167 -0
- package/bin/skills/clickzetta-spark-flink-connector/LICENSE +16 -0
- package/bin/skills/clickzetta-spark-flink-connector/SKILL.md +92 -0
- package/bin/skills/clickzetta-spark-flink-connector/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-spark-flink-connector/references/flink.md +147 -0
- package/bin/skills/clickzetta-spark-flink-connector/references/spark.md +132 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/LICENSE +16 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/SKILL.md +485 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/evals/evals.json +166 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/references/dynamic-table.md +185 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/references/materialized-view.md +129 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/references/pipe.md +222 -0
- package/bin/skills/clickzetta-sql-pipeline-manager/references/table-stream.md +125 -0
- package/bin/skills/clickzetta-sql-syntax-guide/LICENSE +16 -0
- package/bin/skills/clickzetta-sql-syntax-guide/SKILL.md +249 -0
- package/bin/skills/clickzetta-sql-syntax-guide/eval_cases.jsonl +3 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/ddl-reference.md +350 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/dml-reference.md +279 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/dql-reference.md +504 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/functions-reference.md +372 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-databricks.md +260 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/migration-snowflake.md +382 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-snowflake.md +346 -0
- package/bin/skills/clickzetta-sql-syntax-guide/references/vs-spark.md +229 -0
- package/bin/skills/clickzetta-studio-task-manager/LICENSE +16 -0
- package/bin/skills/clickzetta-studio-task-manager/SKILL.md +652 -0
- package/bin/skills/clickzetta-table-lineage/LICENSE +16 -0
- package/bin/skills/clickzetta-table-lineage/SKILL.md +90 -0
- package/bin/skills/clickzetta-table-lineage/eval_cases.jsonl +1 -0
- package/bin/skills/clickzetta-table-lineage/references/normalize_func.sql +14 -0
- package/bin/skills/clickzetta-table-lineage/references/table_cost.sql +38 -0
- package/bin/skills/clickzetta-table-lineage/references/table_lineage_standalone.html +562 -0
- package/bin/skills/clickzetta-table-lineage/references/table_relation.sql +25 -0
- package/bin/skills/clickzetta-table-stream-pipeline/LICENSE +16 -0
- package/bin/skills/clickzetta-table-stream-pipeline/SKILL.md +206 -0
- package/bin/skills/clickzetta-table-stream-pipeline/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-vcluster-manager/LICENSE +16 -0
- package/bin/skills/clickzetta-vcluster-manager/SKILL.md +212 -0
- package/bin/skills/clickzetta-vcluster-manager/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-vcluster-manager/references/vc-cache.md +54 -0
- package/bin/skills/clickzetta-vcluster-manager/references/vcluster-ddl.md +150 -0
- package/bin/skills/clickzetta-volume-manager/LICENSE +16 -0
- package/bin/skills/clickzetta-volume-manager/SKILL.md +292 -0
- package/bin/skills/clickzetta-volume-manager/eval_cases.jsonl +5 -0
- package/bin/skills/clickzetta-volume-manager/references/volume-ddl.md +199 -0
- package/bin/skills/clickzetta-zettapark/LICENSE +16 -0
- package/bin/skills/clickzetta-zettapark/SKILL.md +248 -0
- package/bin/skills/clickzetta-zettapark/eval_cases.jsonl +12 -0
- package/bin/skills/clickzetta-zettapark/references/zettapark-api.md +283 -0
- package/bin/skills/cz-cli/SKILL.md +313 -0
- package/bin/skills/cz-cli/references/profile-setup.md +120 -0
- package/package.json +1 -1
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
# 配置文件管理 — connections.json 详细参考
|
|
2
|
+
|
|
3
|
+
本文档详细说明 ClickZetta Lakehouse 的连接配置文件格式、搜索路径、多连接管理以及 Docker 部署方式。所有内容基于 `mcp-clickzetta-server` 项目中的真实代码。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- [JSON 配置文件格式](#json-配置文件格式)
|
|
8
|
+
- [五级搜索路径](#五级搜索路径)
|
|
9
|
+
- [多连接管理](#多连接管理)
|
|
10
|
+
- [环境变量备选](#环境变量备选)
|
|
11
|
+
- [Docker / Kubernetes 部署配置](#docker--kubernetes-部署配置)
|
|
12
|
+
- [system_config 参数说明](#system_config-参数说明)
|
|
13
|
+
- [适用场景](#适用场景)
|
|
14
|
+
- [常见问题排查](#常见问题排查)
|
|
15
|
+
- [完整配置模板](#完整配置模板)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## JSON 配置文件格式
|
|
20
|
+
|
|
21
|
+
配置文件 `connections.json` 包含两个顶层对象:`connections`(连接数组)和 `system_config`(系统级配置)。
|
|
22
|
+
|
|
23
|
+
### 基本结构
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"connections": [
|
|
28
|
+
{
|
|
29
|
+
"is_default": true,
|
|
30
|
+
"connection_name": "dev",
|
|
31
|
+
"service": "cn-shanghai-alicloud.api.clickzetta.com",
|
|
32
|
+
"username": "my_user",
|
|
33
|
+
"password": "my_password",
|
|
34
|
+
"instance": "my_instance",
|
|
35
|
+
"workspace": "my_workspace",
|
|
36
|
+
"schema": "public",
|
|
37
|
+
"vcluster": "default_ap",
|
|
38
|
+
"description": "开发环境",
|
|
39
|
+
"hints": {
|
|
40
|
+
"sdk.job.timeout": 300,
|
|
41
|
+
"query_tag": "dev-queries"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"system_config": {
|
|
46
|
+
"allow_write": true,
|
|
47
|
+
"prefetch": false,
|
|
48
|
+
"log_level": "INFO",
|
|
49
|
+
"exclude_tools": []
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 连接字段说明
|
|
55
|
+
|
|
56
|
+
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|
|
57
|
+
|:--|:--|:--|:--|:--|
|
|
58
|
+
| `connection_name` | string | ✅ | — | 连接名称,用于在多连接中唯一标识 |
|
|
59
|
+
| `service` | string | ✅ | — | API 服务地址,如 `cn-shanghai-alicloud.api.clickzetta.com` |
|
|
60
|
+
| `username` | string | ✅ | — | 登录用户名 |
|
|
61
|
+
| `password` | string | ✅ | — | 登录密码 |
|
|
62
|
+
| `instance` | string | ✅ | — | 实例名称 |
|
|
63
|
+
| `workspace` | string | ✅ | — | 工作空间名称 |
|
|
64
|
+
| `schema` | string | ✅ | — | 默认 Schema |
|
|
65
|
+
| `vcluster` | string | ❌ | `"default_ap"` | 虚拟集群名称 |
|
|
66
|
+
| `is_default` | boolean | ❌ | `false` | 是否为默认连接 |
|
|
67
|
+
| `description` | string | ❌ | `""` | 连接描述信息 |
|
|
68
|
+
| `hints` | object | ❌ | 见下方 | SDK 运行时参数 |
|
|
69
|
+
|
|
70
|
+
### hints 默认值
|
|
71
|
+
|
|
72
|
+
当 `hints` 未配置时,系统自动使用以下默认值:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"sdk.job.timeout": 300,
|
|
77
|
+
"query_tag": "Query from MCP Server",
|
|
78
|
+
"cz.storage.parquet.vector.index.read.memory.cache": "true",
|
|
79
|
+
"cz.storage.parquet.vector.index.read.local.cache": "false",
|
|
80
|
+
"cz.sql.table.scan.push.down.filter": "true",
|
|
81
|
+
"cz.sql.table.scan.enable.ensure.filter": "true",
|
|
82
|
+
"cz.storage.always.prefetch.internal": "true",
|
|
83
|
+
"cz.optimizer.generate.columns.always.valid": "true",
|
|
84
|
+
"cz.sql.index.prewhere.enabled": "true",
|
|
85
|
+
"cz.storage.parquet.enable.io.prefetch": "false"
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 五级搜索路径
|
|
92
|
+
|
|
93
|
+
`ConnectionManager` 按以下优先级(从高到低)搜索配置文件,找到第一个可访问的文件即停止:
|
|
94
|
+
|
|
95
|
+
| 优先级 | 路径 | 适用场景 |
|
|
96
|
+
|:--|:--|:--|
|
|
97
|
+
| 1(最高) | `/app/.clickzetta/lakehouse_connection/connections.json` | Docker 统一路径(推荐) |
|
|
98
|
+
| 2 | `/app/config/lakehouse_connection/connections.json` | 旧版 Docker 兼容路径 |
|
|
99
|
+
| 3 | `config/lakehouse_connection/connections.json` | 项目目录相对路径(本地开发) |
|
|
100
|
+
| 4 | `~/.clickzetta/connections.json` | 用户主目录(仅非 Docker 环境) |
|
|
101
|
+
| 5(最低) | `/app/.clickzetta/connections.json` | 简化 Docker 路径 |
|
|
102
|
+
|
|
103
|
+
> **Windows Docker 环境**:系统会自动检测并添加额外的 Windows Docker 友好路径。
|
|
104
|
+
|
|
105
|
+
### 搜索逻辑源码参考
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
# 来自 connection_manager.py
|
|
109
|
+
class ConnectionManager:
|
|
110
|
+
UNIFIED_CONFIG_FILE = "/app/.clickzetta/lakehouse_connection/connections.json"
|
|
111
|
+
DOCKER_CONFIG_FILE = "/app/config/lakehouse_connection/connections.json"
|
|
112
|
+
DEFAULT_CONFIG_FILE = "config/lakehouse_connection/connections.json"
|
|
113
|
+
USER_CONFIG_FILE = os.path.expanduser("~/.clickzetta/connections.json")
|
|
114
|
+
SIMPLE_CONFIG_FILE = "/app/.clickzetta/connections.json"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 指定配置文件路径
|
|
118
|
+
|
|
119
|
+
也可以在初始化时直接指定配置文件路径,跳过搜索逻辑:
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
from mcp_clickzetta_server.connection_manager import ConnectionManager
|
|
123
|
+
|
|
124
|
+
# 使用指定路径
|
|
125
|
+
conn_manager = ConnectionManager(config_file="/path/to/my/connections.json")
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 多连接管理
|
|
131
|
+
|
|
132
|
+
### 配置多个连接
|
|
133
|
+
|
|
134
|
+
在 `connections` 数组中定义多个连接,通过 `is_default` 标记默认连接:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"connections": [
|
|
139
|
+
{
|
|
140
|
+
"is_default": true,
|
|
141
|
+
"connection_name": "dev",
|
|
142
|
+
"service": "cn-shanghai-alicloud.api.clickzetta.com",
|
|
143
|
+
"username": "dev_user",
|
|
144
|
+
"password": "dev_password",
|
|
145
|
+
"instance": "dev_instance",
|
|
146
|
+
"workspace": "dev_workspace",
|
|
147
|
+
"schema": "public",
|
|
148
|
+
"vcluster": "default_ap",
|
|
149
|
+
"description": "开发环境"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"connection_name": "staging",
|
|
153
|
+
"service": "cn-shanghai-alicloud.api.clickzetta.com",
|
|
154
|
+
"username": "staging_user",
|
|
155
|
+
"password": "staging_password",
|
|
156
|
+
"instance": "staging_instance",
|
|
157
|
+
"workspace": "staging_workspace",
|
|
158
|
+
"schema": "public",
|
|
159
|
+
"vcluster": "default_ap",
|
|
160
|
+
"description": "预发布环境"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"connection_name": "prod",
|
|
164
|
+
"service": "cn-shanghai-alicloud.api.clickzetta.com",
|
|
165
|
+
"username": "prod_user",
|
|
166
|
+
"password": "prod_password",
|
|
167
|
+
"instance": "prod_instance",
|
|
168
|
+
"workspace": "prod_workspace",
|
|
169
|
+
"schema": "public",
|
|
170
|
+
"vcluster": "default_ap",
|
|
171
|
+
"description": "生产环境",
|
|
172
|
+
"hints": {
|
|
173
|
+
"sdk.job.timeout": 600,
|
|
174
|
+
"query_tag": "production-queries"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"system_config": {
|
|
179
|
+
"allow_write": false,
|
|
180
|
+
"log_level": "WARNING"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 连接选择规则
|
|
186
|
+
|
|
187
|
+
1. 如果有 `is_default: true` 的连接,自动设为活跃连接
|
|
188
|
+
2. 如果有多个 `is_default: true`,使用最后一个
|
|
189
|
+
3. 如果没有默认连接,使用第一个有效连接
|
|
190
|
+
4. `service` 为 `"not_configured"` 的占位配置会被自动跳过
|
|
191
|
+
|
|
192
|
+
### 代码中切换连接
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
from mcp_clickzetta_server.connection_manager import ConnectionManager
|
|
196
|
+
|
|
197
|
+
conn_manager = ConnectionManager()
|
|
198
|
+
|
|
199
|
+
# 列出所有可用连接
|
|
200
|
+
connections = conn_manager.list_connections()
|
|
201
|
+
for conn in connections:
|
|
202
|
+
print(f" {conn['name']}: {conn.get('description', '')}")
|
|
203
|
+
|
|
204
|
+
# 切换到指定连接
|
|
205
|
+
result = conn_manager.switch_connection("prod")
|
|
206
|
+
print(f"已切换到: {result}")
|
|
207
|
+
|
|
208
|
+
# 获取当前活跃连接配置
|
|
209
|
+
active_config = conn_manager.get_active_config()
|
|
210
|
+
print(f"当前连接: {active_config.connection_name}")
|
|
211
|
+
print(f"工作空间: {active_config.workspace}")
|
|
212
|
+
|
|
213
|
+
# 设置新的默认连接
|
|
214
|
+
conn_manager.set_default_connection("staging")
|
|
215
|
+
|
|
216
|
+
# 验证连接配置是否完整
|
|
217
|
+
validation = conn_manager.validate_connection("dev")
|
|
218
|
+
print(f"验证结果: {validation}")
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 环境变量备选
|
|
224
|
+
|
|
225
|
+
当没有找到配置文件时,系统会创建占位配置并启动。以下环境变量可用于配置连接参数:
|
|
226
|
+
|
|
227
|
+
### 连接参数环境变量
|
|
228
|
+
|
|
229
|
+
| 环境变量 | 对应字段 | 说明 |
|
|
230
|
+
|:--|:--|:--|
|
|
231
|
+
| `CLICKZETTA_SERVICE` | `service` | API 服务地址 |
|
|
232
|
+
| `CLICKZETTA_USERNAME` | `username` | 用户名 |
|
|
233
|
+
| `CLICKZETTA_PASSWORD` | `password` | 密码 |
|
|
234
|
+
| `CLICKZETTA_INSTANCE` | `instance` | 实例名称 |
|
|
235
|
+
| `CLICKZETTA_WORKSPACE` | `workspace` | 工作空间 |
|
|
236
|
+
| `CLICKZETTA_SCHEMA` | `schema` | 默认 Schema |
|
|
237
|
+
| `CLICKZETTA_VCLUSTER` | `vcluster` | 虚拟集群(默认 `default_ap`) |
|
|
238
|
+
|
|
239
|
+
### 系统配置环境变量覆盖
|
|
240
|
+
|
|
241
|
+
以下环境变量可覆盖 `system_config` 中的对应配置(优先级最高):
|
|
242
|
+
|
|
243
|
+
| 环境变量 | 对应配置 | 示例值 |
|
|
244
|
+
|:--|:--|:--|
|
|
245
|
+
| `MCP_ALLOW_WRITE` | `allow_write` | `"true"` / `"false"` |
|
|
246
|
+
| `MCP_PREFETCH` | `prefetch` | `"true"` / `"false"` |
|
|
247
|
+
| `MCP_LOG_LEVEL` | `log_level` | `"DEBUG"` / `"INFO"` / `"WARNING"` / `"ERROR"` |
|
|
248
|
+
| `MCP_EXCLUDE_TOOLS` | `exclude_tools` | `"tool1,tool2,tool3"` |
|
|
249
|
+
|
|
250
|
+
### 相似度搜索环境变量
|
|
251
|
+
|
|
252
|
+
| 环境变量 | 对应配置 |
|
|
253
|
+
|:--|:--|
|
|
254
|
+
| `Similar_table_name` | `similar_search.table_name` |
|
|
255
|
+
| `Similar_embedding_column_name` | `similar_search.embedding_column_name` |
|
|
256
|
+
| `Similar_content_column_name` | `similar_search.content_column_name` |
|
|
257
|
+
| `Similar_other_columns_name` | `similar_search.other_columns_name` |
|
|
258
|
+
| `Similar_partition_scope` | `similar_search.partition_scope` |
|
|
259
|
+
|
|
260
|
+
### 云存储环境变量
|
|
261
|
+
|
|
262
|
+
| 环境变量 | 对应配置 |
|
|
263
|
+
|:--|:--|
|
|
264
|
+
| `AWS_ACCESS_KEY_ID` | `cloud_storage.aws_access_key_id` |
|
|
265
|
+
| `AWS_SECRET_ACCESS_KEY` | `cloud_storage.aws_secret_access_key` |
|
|
266
|
+
| `AWS_REGION` | `cloud_storage.aws_region` |
|
|
267
|
+
|
|
268
|
+
### 配置优先级
|
|
269
|
+
|
|
270
|
+
系统配置的加载优先级(从高到低):
|
|
271
|
+
|
|
272
|
+
1. **环境变量**(最高优先级)
|
|
273
|
+
2. **配置文件中的 `system_config`**
|
|
274
|
+
3. **内置默认值**(最低优先级)
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Docker / Kubernetes 部署配置
|
|
279
|
+
|
|
280
|
+
### docker-compose.yml
|
|
281
|
+
|
|
282
|
+
```yaml
|
|
283
|
+
services:
|
|
284
|
+
mcp-server:
|
|
285
|
+
image: mcp-clickzetta-server:latest
|
|
286
|
+
volumes:
|
|
287
|
+
# 推荐:挂载到统一路径(优先级 1)
|
|
288
|
+
- ./config/connections.json:/app/.clickzetta/lakehouse_connection/connections.json:ro
|
|
289
|
+
environment:
|
|
290
|
+
# 可选:通过环境变量覆盖系统配置
|
|
291
|
+
- MCP_ALLOW_WRITE=false
|
|
292
|
+
- MCP_LOG_LEVEL=INFO
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### 使用旧版路径
|
|
296
|
+
|
|
297
|
+
```yaml
|
|
298
|
+
services:
|
|
299
|
+
mcp-server:
|
|
300
|
+
image: mcp-clickzetta-server:latest
|
|
301
|
+
volumes:
|
|
302
|
+
# 旧版兼容路径(优先级 2)
|
|
303
|
+
- ./config/connections.json:/app/config/lakehouse_connection/connections.json:ro
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Kubernetes ConfigMap
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
apiVersion: v1
|
|
310
|
+
kind: ConfigMap
|
|
311
|
+
metadata:
|
|
312
|
+
name: clickzetta-config
|
|
313
|
+
data:
|
|
314
|
+
connections.json: |
|
|
315
|
+
{
|
|
316
|
+
"connections": [
|
|
317
|
+
{
|
|
318
|
+
"is_default": true,
|
|
319
|
+
"connection_name": "prod",
|
|
320
|
+
"service": "cn-shanghai-alicloud.api.clickzetta.com",
|
|
321
|
+
"username": "prod_user",
|
|
322
|
+
"password": "prod_password",
|
|
323
|
+
"instance": "prod_instance",
|
|
324
|
+
"workspace": "prod_workspace",
|
|
325
|
+
"schema": "public",
|
|
326
|
+
"vcluster": "default_ap"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"system_config": {
|
|
330
|
+
"allow_write": false,
|
|
331
|
+
"log_level": "WARNING"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
---
|
|
335
|
+
apiVersion: apps/v1
|
|
336
|
+
kind: Deployment
|
|
337
|
+
metadata:
|
|
338
|
+
name: mcp-server
|
|
339
|
+
spec:
|
|
340
|
+
template:
|
|
341
|
+
spec:
|
|
342
|
+
containers:
|
|
343
|
+
- name: mcp-server
|
|
344
|
+
volumeMounts:
|
|
345
|
+
- name: config
|
|
346
|
+
mountPath: /app/.clickzetta/lakehouse_connection/connections.json
|
|
347
|
+
subPath: connections.json
|
|
348
|
+
readOnly: true
|
|
349
|
+
volumes:
|
|
350
|
+
- name: config
|
|
351
|
+
configMap:
|
|
352
|
+
name: clickzetta-config
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
> **安全提示**:生产环境建议使用 Kubernetes Secret 替代 ConfigMap 存储密码。
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## system_config 参数说明
|
|
360
|
+
|
|
361
|
+
### 核心参数
|
|
362
|
+
|
|
363
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
364
|
+
|:--|:--|:--|:--|
|
|
365
|
+
| `allow_write` | boolean | `false` | 是否允许写操作(INSERT/UPDATE/DELETE) |
|
|
366
|
+
| `prefetch` | boolean | `true` | 是否启用数据预取 |
|
|
367
|
+
| `log_level` | string | `"INFO"` | 日志级别:`DEBUG` / `INFO` / `WARNING` / `ERROR` |
|
|
368
|
+
| `exclude_tools` | array | `[]` | 需要排除的工具列表 |
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 适用场景
|
|
373
|
+
|
|
374
|
+
| 场景 | 推荐配置方式 | 说明 |
|
|
375
|
+
|:--|:--|:--|
|
|
376
|
+
| 本地开发 | `~/.clickzetta/connections.json` | 用户主目录,个人配置 |
|
|
377
|
+
| 团队共享 | `config/lakehouse_connection/connections.json` | 项目目录,可纳入版本管理 |
|
|
378
|
+
| Docker 部署 | 挂载到 `/app/.clickzetta/lakehouse_connection/` | 统一路径,推荐方式 |
|
|
379
|
+
| Kubernetes | ConfigMap / Secret | 声明式配置管理 |
|
|
380
|
+
| CI/CD 流水线 | 环境变量 | 无需配置文件,适合自动化 |
|
|
381
|
+
| 多环境切换 | 多连接 + `switch_connection()` | 在同一配置文件中管理多个环境 |
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## 常见问题排查
|
|
386
|
+
|
|
387
|
+
### 配置文件未找到
|
|
388
|
+
|
|
389
|
+
```
|
|
390
|
+
WARNING: 未找到任何可用的配置文件
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
**解决方案**:
|
|
394
|
+
1. 确认文件存在于五级搜索路径之一
|
|
395
|
+
2. 检查文件权限:`chmod 600 connections.json`
|
|
396
|
+
3. Docker 环境检查挂载是否正确
|
|
397
|
+
|
|
398
|
+
### JSON 格式错误
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
ERROR: 配置文件JSON格式错误
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**解决方案**:
|
|
405
|
+
1. 使用 JSON 验证工具检查格式
|
|
406
|
+
2. 确保所有字符串使用双引号
|
|
407
|
+
3. 检查是否有多余的逗号
|
|
408
|
+
4. 确保中文字符使用 UTF-8 编码保存
|
|
409
|
+
|
|
410
|
+
### 连接配置缺少必需字段
|
|
411
|
+
|
|
412
|
+
每个连接必须包含以下 7 个必需字段:
|
|
413
|
+
|
|
414
|
+
```
|
|
415
|
+
connection_name, service, username, password, instance, workspace, schema
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### 占位配置被跳过
|
|
419
|
+
|
|
420
|
+
`service` 设置为 `"not_configured"` 的连接会被自动跳过。确保所有生产连接都配置了正确的 `service` 地址。
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## 完整配置模板
|
|
425
|
+
|
|
426
|
+
参考项目中的模板文件:`config/connections-template.json`
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# 复制模板并修改
|
|
430
|
+
cp config/connections-template.json ~/.clickzetta/connections.json
|
|
431
|
+
# 编辑配置
|
|
432
|
+
vim ~/.clickzetta/connections.json
|
|
433
|
+
# 设置文件权限(保护密码)
|
|
434
|
+
chmod 600 ~/.clickzetta/connections.json
|
|
435
|
+
```
|