WWW.YOUINFO.SITE
标签聚合 GRE

/tag/GRE

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 位参与者 阅读完整话题

IT之家 · 2026-06-08 15:25:02+08:00 · tech

IT之家 6 月 8 日消息,绿联 (UGREEN) 今日面向全球市场宣布了 NASync DXP GT 系列 NAS,其中既有此前国内市场已推出的 4+2 盘位型号 DXP4800 GT,还有本次新公布的 DXP2800 GT。 DXP2800 GT 也基于 AMD 锐龙嵌入式 R2514 处理器,不过 换用 2+2 盘位设计 ,运行 UGOS Pro 操作系统。 其配备 8GB DDR4 内存和 64GB eMMC 存储,提供 1 个 10GbE RJ45 、1 个 USB-C 10Gbps、2 个 USB-A 10Gbps、2 个 USB-A 480Mbps、1 个 HDMI 2.1 TMDS。 这款 NAS 在欧洲市场的建议零售价为 509.99 欧元 / 459.99 英镑(IT之家注:现汇率约合 3994 / 4169 元人民币);首发享受九折优惠,到手价 459.99 欧元 / 412.99 英镑(现汇率约合 3603 / 3743 元人民币)。

LinuxDo 最新话题 · 2026-06-08 07:03:15+08:00 · tech

Fortune Trump stunned as stocks fall on great jobs report. Barclays explains why ‘we... “With a great Jobs Report, like just announced, stocks should go up, not down," Trump posted. "That's the way it was for 200 years. Growth does not mean inflation!” 美国就业市场5月份表现出色,非农就业人数增幅几乎是分析师预期的两倍。尽管经济学家们欢欣鼓舞,但人工智能交易却大幅萎缩,导致纳斯达克指数下跌4%,创一年多来最大单日跌幅,标普500指数也下跌了1.2%。 https://www.bloomberg.com/news/articles/2026-06-07/trump-says-fed-rate-increase-would-be-wrong-again-calls-for-cut NBC News – 7 Jun 26 Trump says Fed chair should ‘do whatever he wants’ but criticizes possible... Trump railed against potential interest rate hikes, arguing rates should instead be lowered. 7 个帖子 - 7 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-07 22:35:40+08:00 · tech

今天我在使用我自己的 Agent Dais 来理解一个项目时,发现它突然报错显示输入长度超过上下文上限,同时中转站的余额不足。 这引起了我的注意。我使用的是 gpt-5.4,有 1M 的上下文,在有 subagent 辅助读文件的情况下不应该出现上下文溢出的问题。我调了下中转站的使用日志,发现确实有连续的几个超过八十万 token 的请求,一下把账号的余额干完了。 排查过程 我导出了该任务的 message 数据后,另外开了一个任务来排查。由于 message 数据过长,我在提示词中明确说明只读开头的一小部分,让后让 agent 编写 python 脚本来找导致累计输入输出 token 大幅增长的元凶。 最后定位到原因是一个 ripgrep 调用,这个调用匹配到了项目源码中内嵌的一串 base64 超长文本,该文本本身可能就超过 1M 的字符数,导致上下文爆炸也是顺理成章。 解决方案 经过搜索,使用 ripgrep 时可以加上如下参数来限制单个匹配结果的展示长度(加上 --max-columns-preview 可以在文本溢出时保留部分文本用于预览): rg --max-columns 300 --max-columns-preview ... 本文转自我的个人博客,你可以点此查看原文: BHznJNs' Blog 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-06 12:01:05+08:00 · tech

对接了一个 Newapi 搭中转上游,在 codex 里问答没问题,在 opencode 里直接报错了,下面是这个中转返回的格式,第一帧明显是 Chat Completions 格式,号称是 纯血 pro 号池,第一帧返回这个是不是有什么鬼,或者造假呢? 实际返回的第一帧是: json { "object": "chat.completion.chunk", "id": "chatcmpl-ws-ingress", "model": "gpt-5.5", "choices": [ { "index": 0, "delta": { "role": "assistant", "content": "​" } } ] } 注意这个是 Chat Completions 的 chunk 格式。 但后面马上又开始返回 Responses API 格式: json {"type":"response.created", ...} {"type":"response.in_progress", ...} {"type":"response.output_text.delta", "delta":"OK", ...} {"type":"response.completed", ...} 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-05 15:14:52+08:00 · tech

不是又一家中转。我们做的是一条 稳定、可审计、可托付 的 AI Coding 算力链路。 立即体验 Green Mountain Claude 中转站 → [ Cc Max一手号池中转 ] 一、为什么团队会从别家迁过来? 我们不"卖 token",我们为 AI Coding 团队 提供一手算力供给。 纯血 CCMax · 自建一手号池 · 首字丝滑 · 服务器稳定 · 万级并发 一句话立 Flag: 掺假即赔付,并永久退出这个行业。 二、核心承诺:把"行业潜规则"摊到台面上 维度 行业常态 Green Mountain 倍率 标 1.2x,实际虚标 1.5x+ 真实 1.2x,随时拉日志对账 号池 多家上游混卖、串号 自建一手 Claude Max 号池 ,单一可控源 分组 Max / Pro / 共享池混卖 物理隔离 ,绝不混池 维护 出故障才响应 技术团队全天值守 + 每日主动巡检 + 灰度演练 首字延迟 卡顿、抽风、随机超时 首字丝滑 ,长上下文同样稳 并发 高峰必排队 万级并发 ,扛得住团队级压测 永不掺假 · 永不混卖 · 永不甩锅 —— 写进公告,也写进每一次调用。 三、技术亮点:把成本结构透明化 对深度使用 Claude Code / Cursor / Cline 的团队来说,Token 成本 = 研发成本。 自研智能缓存机制 针对系统提示词、工程上下文、Few-shot 模板等高频重复场景,缓存命中率稳定 90%+ ,把原本被白白消耗的算力,直接转化为团队的成本优势。 全链路自建 Max 号池 拒绝任何第三方上游中转,杜绝"上游跑路 / 降级 / 限流"三大不确定性。 你看到的每一个 token,都来自我们自己的资源池。 数据安全闭环 请求 不留痕、不训练、不分析 。 企业敏感代码上行,我们 不碰、不存、不看 。 四、面向企业客户 不仅服务个人开发者,更欢迎企业级深度合作: 官方开票 私有化分组 / 独立速率限制 定制化套餐 + SLA 承诺 接入咨询 · 成本测算 · 一对一商务 商务对接微信: shan191810 五、 LinuxDO 佬友专属福利 为感谢社区一路以来的关注,本次特别准备: 使用 LinuxDO 登录的用户赠送 $10 测试额度 非自动到账,需通过以下方式领取: QQ 群联系客服 支持 LinuxDO 一键登录 ,免注册门槛 QQ 交流群实时答疑: 1091368043 我们不靠话术留住用户,靠的是 每一次稳定的 200 响应 。 掺一次假,我们赔到肉疼,然后永久退出这个行业—— 这不是口号,是我们敢公开签字的底线。 下一个交付里程碑,要不要让 Green Mountain 替你的团队扛住? —— Green Mountain Team 让每一次 Claude 调用,都值回成本。 2 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-04 13:13:39+08:00 · tech

三台服务器,一台用来跑服务,简称service,另外一台运行了Kafka和PostgreSQL,这台简称sql-kafka,最后一台放了Cassandra,这个简称Cassandra,然后这三个服务器都是同一个vpc,并且他们的可用区域都是一样的,service访问sql-kafka和cassandra都是通过vpc的里面的内网IP访问的,亚马逊的数据转发不是说处于同一个区域并且通过内网IP访问是没有数据转发费用的,但是现在我看到了很多的数据转发流量 3 个帖子 - 2 位参与者 阅读完整话题