@chkit/ 插件摄入量
@chkit/plugin-ingest 执行 chkit 同步( β),用于将业务应用数据同步到 ClickHouse 的可选 TypeScript 层。 定义和迁移目的表格 齐克特,然后添加读取器以加载。 重复运行时使用外部调度器 .
执行器在写入成功后记录进度 。 运行扫描的日记身份保持了重叠处决的独立性. 复试从已确认的检查点恢复,并可能再读行.
simpleLoader()是廉价的、直接的、至少一次的默认; 本地重试的代币有有限的保留量.stagedLoader()选择在重叠/重播之间进行不可移动的密钥分解:在批次内第一/最后的整行赢家,现有目的地密钥总是取胜. 它增加了DDL,抓取存储和潜在的完全目的地钥匙扫描——而不是更新或快照交易.- Stage 需要一个被绑定的服务器上的 plain MergeTree/ Atomic 和合作作者共享执行器/包/进程;没有共享/复制目标或跨进程独有性. 读取 安装和安全合同 特别是模糊的出版和重启恢复.
paginate() 输出完成 { items, next, metadata? } 页面,包括空终端页面。 从 page.items; 使用 next 并明确将检查站元数据映射成块 state 与 cursorState。执行器在行被保存后执行此状态。 替换上一个项目阵列返回类型; 现有阅读器必须使用 page.items。 。 。 .
import { defineConfig } from '@chkit/core'
import { ingest } from '@chkit/plugin-ingest'
export default defineConfig({
entry: './src/chkit.ts',
plugins: [ingest()],
clickhouse: { url: process.env.CLICKHOUSE_URL ?? '' },
})
chkit ingest run --tag schedule:1h
只有附件的 ClickHouse 日记记录了每个运行的起始检查点和当地事件序列. 两个程序可能从同一个检查站开始,而不重新使用事件身份。 完整的快照验证排除了畸形跑尾,同时保留了公认的进度. 一个 stale 但有效的读取可以引起回放; 目的地写作保留在- last- once.
诊断日记或预览保存证据的恢复 :
chkit ingest doctor --tag stream:helpdesk.tickets
chkit ingest repair --tag stream:helpdesk.tickets
重叠有效运行不需要修复 。 对于受损的证据,停止所有摄取作者,并审查计划. chkit ingest repair --tag stream:helpdesk.tickets --apply <fingerprint> 在保存原件的同时实现已核实的归档和替换日记 。 保持作者停止, 设定 ingest({ journalTable: '<replacementTable>' }) ,然后重新启动。 命令将激活留给这个明确的配置变化. 其他流的证据复制后不变.
联合国 chkit 同步( β)
原始存储、 键入行以及绘制字段的位置, 见 目的地和转变。 。 。 .
为编码代理安装源作者技能 :
npx skills add obsessiondb/chkit --skill chkit-ingestion