WWW.YOUINFO.SITE
标签聚合 Mon

/tag/Mon

LinuxDo 最新话题 · 2026-06-11 19:58:53+08:00 · tech

PostgreSQL 14 到 Apache Doris 4.1.1 CDC 同步方案 本文档用于验证并实施 PostgreSQL 业务库 fudabd_common_plat_db.public.terminal_pos_202602 到 Apache Doris 分析库 fudabd_common_plat_db.terminal_pos 的数据同步。 实际验证环境要求 PostgreSQL 源端 PostgreSQL 版本:14。 连接地址: 127.0.0.1:15432 。 登录账号: postgres 。 登录密码: Fdbd@2013 。 源数据库: fudabd_common_plat_db 。 源 schema: public 。 源表: fudabd_user 。 主键字段: id 。 已开启 logical replication。 pg_hba.conf 已允许 Doris 所在机器或容器访问数据库和 logical replication。 PostgreSQL 账号具备 logical replication、publication、slot 操作权限。 Doris 目标端 Apache Doris要求 最低docker镜像版本 4.1.1 ,此版本支持Stream Job; Doris 版本: doris-4.1.1-rc01-b10073ad9ca 。 Doris @@version : 5.7.99 。 目标数据库: fudabd_common_plat_db 。 目标表: fudabd_user 。 目标表当前不存在,需要由方案一手动创建。 目标表需要支持 UPDATE 、 DELETE ,因此设计为 UNIQUE KEY 表。 同步要求 需要先全量初始化,再持续增量同步。 需要处理 INSERT 、 UPDATE 、 DELETE 。 当前只验证 terminal_pos_202602 单表,暂不处理后续每月新增分表。 单表数据量:日均约 500 万条。 延迟目标:10 秒内。 Doris Streaming Job 支持判断 Apache Doris 4.x 官方文档提供 CREATE JOB ... ON STREAMING ,支持以下两类模式: TVF Mode :使用 cdc_stream(...) 读取 PostgreSQL CDC,再通过 INSERT INTO ... SELECT ... 写入指定 Doris 表,适合单表 SQL 映射同步。 当前环境是 4.1.1-rc01 ,建议正式执行前在当前 Doris 集群验证 Streaming Job 语法和 FE 配置。 参考文档: CREATE STREAMING JOB : CREATE STREAMING JOB - Apache Doris PostgreSQL SQL Mapping Sync: PostgreSQL CDC with SQL Mapping - Apache Doris PostgreSQL Auto Table Creation Sync: PostgreSQL CDC with Auto Table Creation - Apache Doris Doris 4.1.1 Release Notes: Release 4.1.1 - Apache Doris 前置检查 PostgreSQL 配置检查 当前已确认 postgresql.conf 包含以下配置: wal_level = logical max_replication_slots = 10 max_wal_senders = 10 wal_sender_timeout = 0 执行以下 SQL 复核: SHOW wal_level; SHOW max_replication_slots; SHOW max_wal_senders; 检查源表主键: SELECT tc.table_schema, tc.table_name, kcu.column_name FROM information_schema.table_constraints tc JOIN information_schema.key_column_usage kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema WHERE tc.constraint_type = 'PRIMARY KEY' AND tc.table_schema = 'public' AND tc.table_name = 'terminal_pos_202602'; Doris 配置检查 登录 Doris FE MySQL 协议端口后执行: SELECT @@version_comment, @@version; SHOW FRONTEND CONFIG LIKE 'max_streaming_job_num'; 如果 max_streaming_job_num 为 0 或 Streaming Job 语法不可用,需要先调整 Doris FE 配置或切换到正式 4.1.1 镜像版本。 PostgreSQL JDBC Driver 准备 Streaming Job 需要 PostgreSQL JDBC Driver。建议将驱动放到 Doris FE/BE 都可访问的 HTTP 地址。 示例: postgresql-42.7.3.jar 本文 SQL 中使用 <PG_DRIVER_URL> 占位,执行前替换为实际地址,例如: https://maven.aliyun.com/repository/public/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar 源表结构 CREATE TABLE `fudabd_user` ( `id` bigint NOT NULL COMMENT "用户ID", `user_name` varchar(50) NOT NULL COMMENT "用户名", `password` varchar(255) NOT NULL COMMENT "密码(应加密存储)", `age` tinyint NULL COMMENT "年龄", `create_time` datetime NULL COMMENT "创建时间", `update_time` datetime NULL COMMENT "更新时间", `is_deleted` int NULL DEFAULT "0" COMMENT "是否删除标记" ) SQL 映射同步 推荐结论 当前验证目标是 fudabd_user 同步到 fudabd_user ,且 Doris 目标表不存在、需要设计为 UNIQUE KEY ,优先 SQL 映射同步。 该模式优势: 可将源表 fudabd_user 明确写入目标表 fudabd_user 。 可手动控制 Doris 表模型、字段类型、分桶数和副本数。 可承接 PostgreSQL 主键表的 INSERT 、 UPDATE 、 DELETE CDC 变更。 创建 Doris 数据库 CREATE DATABASE IF NOT EXISTS fudabd_common_plat_db; USE fudabd_common_plat_db; 创建 Doris 目标表 CREATE TABLE `fudabd_user` ( `id` bigint NOT NULL COMMENT "用户ID", `user_name` varchar(50) NOT NULL COMMENT "用户名", `password` varchar(255) NOT NULL COMMENT "密码(应加密存储)", `age` tinyint NULL COMMENT "年龄", `create_time` datetime NULL COMMENT "创建时间", `update_time` datetime NULL COMMENT "更新时间", `is_deleted` int NULL DEFAULT "0" COMMENT "是否删除标记" ) ENGINE=OLAP UNIQUE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 10 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "min_load_replica_num" = "-1", "is_being_synced" = "false", "storage_medium" = "hdd", "storage_format" = "V2", "inverted_index_storage_format" = "V3", "compression" = "LZ4", "enable_unique_key_merge_on_write" = "true", "light_schema_change" = "true", "disable_auto_compaction" = "false", "enable_single_replica_compaction" = "false", "group_commit_interval_ms" = "10000", "group_commit_data_bytes" = "134217728", "enable_mow_light_delete" = "false" );; 参数建议: 单 BE 验证环境使用 replication_num = 1 。 生产多 BE 环境建议改为 replication_num = 3 。 日均 500 万数据验证阶段可先使用 BUCKETS 32 ,生产环境根据 BE 数量和 tablet 大小调整为 32 或 64 。 创建 SQL 映射 Streaming Job 执行前需要将 <PG_DRIVER_URL> 替换为 PostgreSQL JDBC Driver 的实际地址。 将 “offset” 从 “initial” 改为 “latest” 即可跳过全量快照,仅捕获增量变更: CREATE JOB pg_fudabd_user_to_fudabd_user ON STREAMING DO INSERT INTO fudabd_common_plat_db.fudabd_user ( id , user_name , password , age` tinyint , create_time , update_time , is_deleted ) SELECT id, user_name , password , age, create_time , update_time , is_deleted FROM cdc_stream( "type" = "postgres", "jdbc_url" = "jdbc:postgresql://127.0.0.1:15432/fudabd_common_plat_db", "driver_url" = "https://maven.aliyun.com/repository/public/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar", "driver_class" = "org.postgresql.Driver", "user" = "postgres", "password" = "Fdbd@2013", "database" = "fudabd_common_plat_db", "schema" = "public", "table" = "fudabd_user", "offset" = "initial" ); JOB 运维命令 以下命令用于查看、暂停、恢复和删除前面创建的 Doris Streaming Job。 JOB 查看所有 INSERT 类型 JOB: SELECT * FROM jobs("type" = "insert"); 查看 SQL 映射同步 JOB: SELECT * FROM jobs("type" = "insert") WHERE Name = 'pg_fudabd_user_to_fudabd_user'; 查看 JOB 产生的 TASK 查看所有 INSERT 类型 TASK: SELECT * FROM tasks("type" = "insert"); 查看 SQL 映射同步 JOB 的 TASK: SELECT * FROM tasks("type" = "insert") WHERE JobName = 'pg_fudabd_user_to_fudabd_user'; 暂停 JOB 暂停 SQL 映射同步 JOB: PAUSE JOB WHERE jobName = 'pg_fudabd_user_to_fudabd_user'; 恢复启动 JOB 恢复 SQL 映射同步 JOB: RESUME JOB WHERE jobName = 'pg_fudabd_user_to_fudabd_user'; 删除 JOB 删除 SQL 映射同步 JOB: DROP JOB WHERE jobName = 'pg_fudabd_user_to_fudabd_user'; PGSQL运维命令 -- 查看当前 Publication SELECT p.pubname, n.nspname AS schema_name, c.relname AS table_name FROM pg_publication p JOIN pg_publication_rel pr ON p.oid = pr.prpubid JOIN pg_class c ON pr.prrelid = c.oid JOIN pg_namespace n ON c.relnamespace = n.oid; -- 查看 Replication Slot SELECT slot_name, plugin, slot_type, active, database, restart_lsn, confirmed_flush_lsn FROM pg_replication_slots; ​ -- 如果 Slot 仍然 active,先终止连接 SELECT pid, usename, application_name, client_addr, state FROM pg_stat_activity WHERE backend_type = 'walsender'; ​ SELECT pg_terminate_backend(pid); -- pid 需要手动替换 ​ -- 删除 Replication Slot SELECT pg_drop_replication_slot('slot_name'); ​ -- 删除 Publication -- 查看当前 Publication 进行替换 DROP PUBLICATION doris_pub_1781162893358; ​ ​ -- 确认 Slot 已删除 SELECT slot_name FROM pg_replication_slots; ​ -- 检查 WAL 是否恢复正常 SELECT slot_name, active, pg_size_pretty( pg_wal_lsn_diff( pg_current_wal_lsn(), restart_lsn ) ) AS retained_wal FROM pg_replication_slots; ​ 延迟与性能建议 当前单表日均约 500 万条,验证阶段建议先使用 BUCKETS 32 。 如果同步延迟超过 10 秒,优先检查 Doris Streaming Job 状态、BE compaction、tablet 数量、网络带宽和 PostgreSQL replication slot WAL 堆积。 如果 Doris 集群 BE 数量较多,可将 BUCKETS 调整到 64 ,但不建议在 POC 初期过度增加 tablet 数。 生产环境建议使用多 BE,并将 replication_num 调整为 3 。 PostgreSQL 侧需要持续监控 pg_replication_slots ,避免 Doris Job 停止后 WAL 长时间堆积。 注意事项 STREAMING JOB 任务状态出现PENDING解决 问题根因 __internal_schema.streaming_job_meta 是 Doris 内部管理 Streaming Job 元数据的系统表, FE 未能自动创建它 。所有 Streaming Job 操作都依赖此表,缺失则全部阻塞在 PENDING。 确认 __internal_schema 库及表现状 -- 查看内部库是否存在 SHOW DATABASES LIKE '__internal_schema'; ​ -- 如果存在,查看里面有哪些表 SHOW TABLES FROM __internal_schema; 第一步:先停掉报错的 JOB 止血 TOP JOB pg_fudabd_user_to_fudabd_user; 第二步:手动创建缺失的内部表 CREATE TABLE IF NOT EXISTS `__internal_schema`.`streaming_job_meta` ( `id` bigint NOT NULL, `job_id` bigint NOT NULL, `table_name` varchar(256) NOT NULL, `chunk_list` text ) UNIQUE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_num" = "1" ); 这是基于日志中 SQL 推断的最小表结构。如果后续 FE 代码还访问了其他字段,会再次报错,届时根据错误信息用 ALTER TABLE 补充列即可。 第三步:删除旧 JOB 重新创建 3 个帖子 - 3 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-11 10:12:36+08:00 · tech

小米moni code正式上线,mimo-v2.5-pro免费用,大家赶紧薅! 今天,我们正式发布并开源 MiMoCode V0.1.0 —— 一款运行在终端里的探索性 AI 编程助手。 MiMo Code 始于编程,不止于编程 。它不只是一个好用的 AI Coding 工具,更是一位住在你电脑里、越用越懂你的 AI 队友。 它内置限时免费的顶级多模态模型 **MiMo-V2.5,**性能比肩 Claude Sonnet 4.6;同时支持接入 DeepSeek、Kimi 和 GLM 等主流模型,以及第三方 Token Plan,满足不同开发者的需求。 MiMo Code 基于开源项目 OpenCode 二次开发, 发布并开源,采用 MIT协议 。 核心能力 持久记忆系统 + 无限上下文:从根上解决“AI健忘” MiMo Code 内置独创的持久记忆系统,用项目记忆、会话检查点、任务进度三重机制,解决长会话“越用越忘”的难题。即使上百轮的长程会话,也能保持输出质量、不丢关键信息。 主流 Code Agent(Claude Code、Codex 等)多是“让 AI 自己记笔记”,但模型不会主动触发,记不记、何时记全靠它自觉。所以我们换了个思路: 让主 agent 专心干活,记录完全外包 —— 由独立 subagent 自动保存状态,窗口快满时重建一份干净简报,主 agent 接着干而非从零开始。 一句话: 不赌模型自觉,用工程把它兜住 。 模型 Agent 协同优化 + 独创 Compose 模式 大多数 Coding Agent 的工作方式是「拿到需求就埋头写代码」,像一个不看导航就上路的司机——看似高效,实则容易跑偏。 但模型并非千篇一律:不同模型各有自己的"性格"与"禀赋",与不同的 Agent 框架之间也存在天然的"适配度"高低。把模型和框架简单拼在一起,往往发挥不出真正实力。 MiMo Code 为 MiMo 系列模型量身打造了一套专属的 Harness 系统,让模型的能力与框架深度配合;再配合独创的 **Compose 模式,**实现 1+1>2 的协同效果。 使用时,只需按 Tab 键 切换到 Compose 模式,给它一个简单的想法,它就能自动完成设计、规划、编码、测试、审查的全流程,最终交付一套工业级的成品。 实测对比 我们给两个工具下了同样的指令: 「帮我用 golang 实现一个 redis,需要支持用 redis-cli 连接。」 Claude Code 出手很快,代码很快就跑了出来——但几乎没有配套测试,功能能用却不够扎实,后续返工的风险不小。 MiMoCode 用 Compose 模式,前期花了更多时间做规划,看起来“慢”了一截;但落到结果上,它实现了更丰富的功能,并配上了完整、详尽的测试,真正体现出工业级代码该有的样子。 有意思的是,**算总账反而是 MiMoCode 更快:**它把时间花在前期想清楚、后期验得稳上——慢写、快验,整体体验更省心。 Dream:记忆沉淀,越用越懂你 MiMoCode 内置了一个独特的 /dream 命令。每 7 天自动触发,由独立 Agent 读取历史会话和现有记忆文件,执行合并、去重、验证路径有效性和压缩,将分散的记忆收敛为一份紧凑的当前状态,并更新全局记忆。 到了下次使用,它会在合适的时机自动调用这些记忆。这意味着 MiMo Code 不会每次都从零开始,而是带着对你和你项目的理解持续成长——真正做到越用越顺手。 支持语音输入:“君子动口不动手” MiMo Code 内置了语音输入与控制功能,背后是 MiMo-V2.5-ASR 的强大语音识别能力加持。动动嘴,活就干了。 它能做的不只是“念出 prompt”:你可以口头修改写错的指令,也可以直接发出“发送”“执行”这类操作命令——从输入到操控,全程不用碰键盘,效率自然又上一个台阶。 用数据说话:同模型,更强表现 在两个面向真实编程场景的权威测试集 SWE-Bench 和 Terminal Bench 上,我们做了一组对照实验:让 MiMo Code 与 Claude Code **使用同一个 MiMo 模型,**只比拼各自的 Agent 系统本身。 结果显示,MiMo Code 在 SWE-Bench Pro 上达到 **62%(**Claude Code 为 57%),在 Terminal Bench 2 上达到 **73%(**Claude Code 为 68%)—— 在模型完全相同的前提下,MiMo Code 凭借专属 Harness 与 Compose 模式的协同,拿到了较优的分数。 如何使用:零配置起步,开箱即用 安装与启动:打开终端 Mac和Linux用户推荐: curl -fsSL https://mimo.xiaomi.com/install | bash Windows 用户推荐使用 npm: npm install -g @mimo-ai/cli 装好后,终端输入 mimo 即可启动。为了获得最佳体验,强烈推荐 Mac用户在 iTerm 中或者 vscode 终端中使用。 模型配置 内置 MiMo-V2.5 限时**免费通道,**无需注册即可使用 兼容 DeepSeek / Kimi / GLM 等主流模型 API,及第三方 Token Plan 使用: 输入 / 查看各项配置 所有设置项全面中文汉化,本地友好 TUI 页面右侧常驻状态看板,随时观察工作进度 更多技术细节,欢迎关注我们的团队 Blog: https://mimo.xiaomi.com/mimocode 开源与展望 MiMo Code 发布并开源 ,采用宽松的 MIT 协议——这意味着它对几乎所有人都敞开: 个人开发者 可以自由使用、修改、分发,想怎么折腾都行; 企业 可以把它集成进自己的开发工具链,无需担心授权束缚; 社区 可以基于它打造垂直领域的编程助手,长出更多可能。 9 个帖子 - 8 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-10 21:21:54+08:00 · tech

ScienceAlert – 9 Jun 26 A Commonly Used Sleep Aid May Have a Dangerous Side Effect Around 1 in 5 US adults are thought to struggle with sleep health, and for many of us, the search for rest eventually leads to medication. [!quote]+ 喹硫平(以思瑞康的名义销售)是一种抗精神病药物,被批准用于治疗精神分裂症和双相情感障碍等疾病,但研究表明它可以改善睡眠质量,而且经常以较低剂量作为失眠的 "标签外 "治疗处方。 在一项 10 分钟的精神运动警觉性测试中,与服用安慰剂后相比,服用喹硫平的参与者反应更慢。他们在测试中的注意力缺失也从服用安慰剂后的中位数2次增加到服用喹硫平后的10次。 在模拟驾驶中,与服用安慰剂相比,服用喹硫平后,参与者偏离车道中心的距离平均增加了 33%。 就模拟器中的实际碰撞而言,与安慰剂相比,喹硫平的碰撞率几乎翻了一番,尽管这项研究的样本量相对较小,这意味着统计效果有限(这可能是偶然因素造成的)。 "法斯卡说:"尤其令人担忧的是,有些人虽然在客观测试中表现较差,但第二天并没有感到特别困倦。 “人们的感觉与实际功能之间的这种不匹配会带来严重的安全风险,尤其是在驾驶时”。 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-10 11:17:18+08:00 · tech

Claude Fable 5 Beats Pokémon FireRed Only Using Vision - YouTube A timelapse of Claude playing Pokémon FireRed from start to finish using only raw game screenshots — with no maps, navigation aids, or extra game-state information. Earlier Claude models needed a complex helper harness to play Pokémon; Claude Fable 5 completed the game with vision alone. 用 fable 打宝可梦火红,打通关了。 太恐怖了……几十几百小时的连续视觉推理,带记忆的,按官方的说法,甚至不需要做harness。 太恐怖了 1 个帖子 - 1 位参与者 阅读完整话题