本文へ移動
cccskills
無料GitHub で公開

byted-bytehouse-data-asset-analyzer

ByteHouse 数据资产和血缘分析 Skill。直接通过 clickhouse-connect 查询 system.tables / system.columns,抓取指定数据库的表结构、字段、引擎等元数据,生成数据资产目录、自动打标签,并识别 Distributed/Local 之间的血缘关系与列相似性。

当用户提到 "ByteHouse 数据资产"、"数据资产盘点"、"表结构分析"、"血缘分析"、"字段分析"、"表引擎分布"、"元数据目录" 等诉求时使用本 Skill。

インストール方法を見る

含まれるファイル(5)

  • SKILL.md9.0 KB
  • .gitignore16 B
  • LICENSE633 B
  • scripts/data_asset_analyzer.py12.4 KB
  • scripts/export_config.sh540 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

ByteHouse 数据资产和血缘分析 Skill

描述

直接通过 clickhouse-connect 连接 ByteHouse(HTTPS 8123),查询 system.tables / system.columns 扫描目标数据库的所有表与字段,生成三份产物:

  • Schema 报告 — 数据库完整表结构(引擎、字段、DDL 原文等)。
  • 数据资产目录 — 表总数、列总数、引擎分布、自动标签。
  • 血缘分析报告 — Distributed ↔ Local 关系、跨表同名列的相似性。

当以下情况时使用此 Skill:

  1. 需要获取 ByteHouse 数据库的表结构和字段信息。
  2. 需要生成数据资产目录、盘点数据资产。
  3. 需要分析表之间的血缘关系(例如 Distributed → Local)。
  4. 用户提到 "数据资产"、"血缘分析"、"表结构"、"字段分析" 等关键词。

前置条件

  • Python 3.8+
  • clickhouse-connect(安装方式:pip install clickhouse-connect)
  • jq(export_config.sh 依赖,解析 JSON 配置。安装方式:brew install jq 或 sudo apt install jq)
  • 有效的 ByteHouse 连接信息(保存于 ~/.bytehouse_config.json)

📁 文件说明

  • SKILL.md — 本文件,技能主文档。
  • scripts/data_asset_analyzer.py — 数据资产和血缘分析主程序。
  • scripts/export_config.sh — 从 ~/.bytehouse_config.json 加载配置到环境变量(依赖 jq)。

配置说明

配置保存在 ~/.bytehouse_config.json。如果文件存在且非空,直接使用;若不存在,向用户索要连接信息(可以把 ByteHouse 连接信息获取指引 发给用户),拿到后写入 JSON 文件,避免重复询问。

{
  "BYTEHOUSE_HOST": "<ByteHouse-host>",
  "BYTEHOUSE_PORT": "8123",
  "BYTEHOUSE_USER": "bytehouse",
  "BYTEHOUSE_PASSWORD": "<ByteHouse-password>"
}

配置项说明:

配置项是否必填默认值说明
BYTEHOUSE_HOST是—ByteHouse 网关域名
BYTEHOUSE_PORT否8123HTTP(S) 端口
BYTEHOUSE_USER否bytehouse用户名
BYTEHOUSE_PASSWORD是—密码 / API Key

加载配置:

source scripts/export_config.sh

🧭 智能体使用指引

  1. 确认配置:source scripts/export_config.sh,确认 BYTEHOUSE_HOST 等环境变量已就绪。
  2. 确认要分析的数据库:若用户未指定,主动询问(例如 default、tpcds)。
  3. 执行分析:python3 scripts/data_asset_analyzer.py <database>,脚本会通过 clickhouse-connect 查询 system.tables / system.columns 拉取元数据。
  4. 展示结果:根据 scripts/output/ 目录里的 3 份 JSON 结果,给出总表数、总列数、引擎分布、Top 血缘关系等要点。
  5. 禁止臆造:所有资产/血缘信息一律来自脚本产物,不要凭上下文猜测。

🎯 功能特性

1. 完整 Schema 获取

  • 获取指定数据库的所有表。
  • 获取每张表的所有字段。
  • 提取表引擎、注释等元数据。
  • 保留 CREATE TABLE 语句原文。

2. 数据资产目录生成

  • 表统计(总表数、总列数)。
  • 引擎分布统计。
  • 自动标签生成。
  • 表资产详情(含前 10 个字段预览)。

3. 血缘分析

  • 表关系识别(Distributed ↔ Local,基于命名模式)。
  • 列相似性分析(同名列跨表出现)。

🚀 快速开始

# 1. 加载配置(复用 ~/.bytehouse_config.json)
source scripts/export_config.sh

# 2. 执行分析(指定库名)
python3 scripts/data_asset_analyzer.py default
python3 scripts/data_asset_analyzer.py tpcds

分析内容包括:

  • 数据库完整 schema(所有表和字段)。
  • 数据资产目录(表统计、引擎分布、自动标签)。
  • 血缘分析(表关系、列相似性)。

输出文件(保存在与脚本同级的 scripts/output/ 目录):

  1. schema_{database}_{timestamp}.json — 完整的数据库 schema。
  2. catalog_{database}_{timestamp}.json — 数据资产目录。
  3. lineage_{database}_{timestamp}.json — 血缘分析报告。

💻 程序化调用

scripts/data_asset_analyzer.py 暴露的是一个同步函数 analyze_database(database)(不是 async,也不是类)。它返回内存中的分析结果字典,本身不落盘;如需生成 JSON 文件,请直接运行脚本 main()(即命令行方式)。

要在其他 Python 代码里调用:

import os
import sys

# 把 scripts/ 目录加入 sys.path,以便直接 import 模块
SKILL_SCRIPTS_DIR = os.path.join(
    os.path.dirname(os.path.abspath(__file__)),
    "scripts",
)
sys.path.insert(0, SKILL_SCRIPTS_DIR)

from data_asset_analyzer import analyze_database

# 前提:已经通过 `source scripts/export_config.sh` 或手工 export 设置了
# BYTEHOUSE_HOST / BYTEHOUSE_PORT / BYTEHOUSE_USER / BYTEHOUSE_PASSWORD 等环境变量
result = analyze_database("default")
# result 是一个字典,包含:
# - schema:  完整的数据库 schema
# - catalog: 数据资产目录
# - lineage: 血缘分析

📊 输出文件说明

1. Schema 文件 (schema_*.json)

包含数据库完整结构:

{
  "database": "default",
  "analyzed_at": "2026-03-12T19:50:00",
  "tables": [
    {
      "name": "conversation_feedback",
      "comment": "",
      "engine": "Distributed",
      "create_table_query": "CREATE TABLE ...",
      "columns": [
        {
          "name": "session_id",
          "type": "String",
          "comment": ""
        }
      ]
    }
  ]
}

2. 数据资产目录 (catalog_*.json)

包含数据资产统计信息(注意:统计字段与 tables_catalog 位于顶层,没有额外的 summary 嵌套):

{
  "database": "default",
  "generated_at": "2026-03-12T19:50:00",
  "total_tables": 8,
  "total_columns": 45,
  "engine_distribution": {
    "Distributed": 4,
    "MergeTree": 3,
    "Log": 1
  },
  "tables_catalog": [
    {
      "name": "conversation_feedback",
      "engine": "Distributed",
      "column_count": 10,
      "tags": ["分布式表", "用户/客户"],
      "columns": [
        {"name": "session_id", "type": "String"}
      ],
      "has_more_columns": false
    }
  ]
}

columns 仅收录前 10 个字段用于预览,has_more_columns 标记是否还有更多字段。

3. 血缘分析 (lineage_*.json)

包含表关系和列相似性:

{
  "database": "default",
  "analyzed_at": "2026-03-12T19:50:00",
  "table_relationships": [
    {
      "table": "conversation_feedback",
      "related_tables": [
        {
          "name": "conversation_feedback_local",
          "relationship": "Local -> Distributed"
        }
      ]
    }
  ],
  "column_similarities": [
    {
      "column_name": "session_id",
      "occurrences": [
        {"table": "conversation_feedback", "type": "String"},
        {"table": "conversation_feedback_local", "type": "String"}
      ]
    }
  ]
}

🏷️ 自动标签生成

分析器会根据表引擎、表名关键词、列数自动生成标签(引擎类标签三者互斥,命中其一即止;其余规则可叠加;若均未命中则标记为 未分类):

标签触发条件
分布式表引擎为 Distributed
MergeTree系列引擎包含 MergeTree(且非 Distributed)
日志引擎引擎包含 Log(且非上述两类)
日志/事件表名包含 log / event / trace
交易/订单表名包含 order / trans / pay
用户/客户表名包含 user / customer / account
商品/物料表名包含 product / item / goods
时序聚合表名包含 daily / hourly / monthly
维度表表名包含 dim / dimension
事实表表名包含 fact
宽表列数 > 50
窄表列数 < 5
未分类未命中以上任意规则

失败兜底建议

现象处理方式
clickhouse-connect not installed安装依赖:pip install clickhouse-connect。
BYTEHOUSE_HOST is required / 未设置引导用户提供连接信息,写入 ~/.bytehouse_config.json 后重新 source scripts/export_config.sh。
连接失败 / 证书报错脚本固定使用 HTTPS 且跳过证书校验(secure=True、verify=False);请确认 BYTEHOUSE_HOST/端口可从公网访问。
分析结果为空让用户确认库名是否正确、账号是否有查询 system 表的权限。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Deploy, update, validate, and troubleshoot the AgentKit hybrid-cloud customer-service demo in this directory. Use when a user asks an AI coding agent to follow the README, deploy or update the demo, configure OpenAPI/Runtime/Knowledge/Memory/Sandbox/MCP/Skills/A2A, run customer-view validation, or record manual platform steps and failures.

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

Generate deterministic SVG algorithmic artwork. Invoke when the user asks for geometric, generative, or algorithmic visual art.

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

通过本地 Python CLI 和 OpenAPI 客户端管理、排查火山云手机资源。适用于查询实例和资源、截图、执行命令、查看任务、检查应用、主机和机房容量、标签、DNS、路由,以及操作已授权的测试云手机实例。

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

Launch and continue the Volcengine AI Research survey workflow for concept testing, audience design, questionnaire drafting, interview guide generation, execution confirmation, progress checks, and result queries. Use this skill when the user wants to create, revise, confirm, execute, or follow up on a real AI research survey task in ABCompass instead of doing generic brainstorming, copywriting, translation, summarization, or broad market discussion.

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

Create and check long-running video material evaluation tasks. Use this skill when the user wants to submit videos for evaluation, check an existing video evaluation task list, or fetch the result of a previously created video evaluation task. This skill is not a general-purpose video upload skill because upload is allowed only as an internal step of task creation. Authentication uses an API key passed as an Authorization bearer token.

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

火山引擎 AntiDDoSPro 高防域名只读巡检。用户要查域名健康、攻击、流量、CC/WAF/区域封禁、智能防护或 CCAI 状态时使用。

日本語の概要は準備中です。原文の説明を表示しています。

bytedance/agentkit-samples4702026年10月9日 更新

bytedance のスキルをすべて見る

このスキルの問題を報告する