feat: 完成 issue #4 数据总线 + 时序库 模板化封装

This commit is contained in:
2026-08-04 16:58:06 +08:00
parent 1fb1d278d5
commit 4c3a9fdbe6
10 changed files with 789 additions and 3 deletions
+43 -1
View File
@@ -5,5 +5,47 @@
复用 Kafka + TDengine + PostgreSQL + MinIO,全部改为**按模板配置**
topic / 时序库表 / 关系表 / 对象桶,换行业只改模板资产(YAML + 点位字典),
内核代码零改动;批量写入缓冲 + 幂等去重,保障「数据不丢不重」。
模块:
- templating 模板命名推导(Kafka topic/分区、TDengine 表、PG schema、MinIO 桶);
- tdengine_schema 时序超级表/子表 DDL + 批量 INSERT SQL 生成;
- postgres_schema 关系库 schema(模板/模型/用户/权限)+ 授权语句;
- batch_writer 批量写入缓冲(StoreSink 抽象 / MemorySink / TdengineSink),
批量聚合 + 幂等去重 + 失败重试(不丢不重)。
测试:`python -m unittest discover -s tests -v`(在 core/data-bus 目录下执行)。
"""
__version__ = "0.1.0"
__version__ = "0.2.0"
from .batch_writer import (
DEDUP_KEYS,
BatchWriter,
MemorySink,
StoreSink,
TdengineSink,
)
from .postgres_schema import generate_grant_ddl, generate_schema_ddl
from .tdengine_schema import (
PointSpec,
build_batch_insert,
generate_subtable_ddls,
generate_supertable_ddl,
)
from .templating import TemplateNaming, sanitize, sanitize_sql
__all__ = [
"TemplateNaming",
"sanitize",
"sanitize_sql",
"PointSpec",
"generate_supertable_ddl",
"generate_subtable_ddls",
"build_batch_insert",
"generate_schema_ddl",
"generate_grant_ddl",
"StoreSink",
"MemorySink",
"TdengineSink",
"BatchWriter",
"DEDUP_KEYS",
]