[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhdvmYaj-kU-AlF79v4Nn6g2tKFBs5R_E_8Y0wmTrrx4":3,"$fW7BAB5BkhrpFei-euf609NeK4ZvjPf9T1fzgXJlLNns":18,"$fZz0k4zjiU3gEmq6_kjDk4wijc9I39GZ-2nr2BiEZc1o":73,"$fJAngGPN2ZoweBAUNUMveHW9fX-PBt_OThOGUnXXFK7w":107},{"success":4,"data":5},true,{"siteTitle":6,"siteDescription":7,"siteSubtitle":8,"siteFaviconUrl":9,"siteLogoUrl":10,"footerText":11,"footerLinks":12,"socialLinks":13,"postsPerPage":14,"themeName":15,"navColor":16,"navTextColor":17},"Hyaika Blog","A personal blog powered by Hyaika","Penguin is all you need","🐧","\u002Fapi\u002Fmedia\u002Favatar_a0b54615","致三千年前的你",[],[],10,"kratos","#9147eb","#ffffff",{"success":4,"data":19},[20,27,33,39,44,50,55,61,67],{"id":21,"name":22,"slug":23,"description":24,"color":25,"postCount":26},"9ca4490e-c5a6-4b61-945c-4db21d224507","设计","design","UI\u002FUX 设计与创意",null,29,{"id":28,"name":29,"slug":30,"description":31,"color":25,"postCount":32},"a102062c-2d51-415b-bc5c-5b89b36f6e3f","动漫","anime","动漫点评与推荐",14,{"id":34,"name":35,"slug":36,"description":37,"color":25,"postCount":38},"b14ff5c7-a673-4cb1-a9e5-c785069b2938","生活","life","生活随笔与日常分享",43,{"id":40,"name":41,"slug":42,"description":43,"color":25,"postCount":32},"cat_ccf18b24e2c04191","社会观察","social-observation","社会观察、教育、文化对比",{"id":45,"name":46,"slug":47,"description":48,"color":25,"postCount":49},"cat_news_roundup","新闻杂烩","news-roundup","每日新闻汇总，覆盖科技、二次元、游戏、音乐等领域",64,{"id":51,"name":52,"slug":53,"description":25,"color":25,"postCount":54},"cat_science","科学","science",55,{"id":56,"name":57,"slug":58,"description":59,"color":25,"postCount":60},"e6b59e04-130e-4da0-851f-64042040f4f6","技术","tech","技术教程与开发经验",175,{"id":62,"name":63,"slug":64,"description":65,"color":25,"postCount":66},"cat_09e5464f1b304aa8","情感八卦","gossip","情感话题与八卦杂谈",0,{"id":68,"name":69,"slug":70,"description":71,"color":25,"postCount":72},"cat_b22f7ce5ece64985","经济","economy","经济分析与商业观察",20,{"success":4,"data":74},{"id":75,"title":76,"slug":77,"content":78,"summary":79,"coverUrl":80,"readingTime":81,"viewCount":66,"loveCount":66,"publishedAt":82,"createdAt":82,"author":83,"coverSource":86,"showCoverInArticle":4,"categories":87,"tags":89,"commentCount":66,"liked":106},"7e415a16-2457-4714-8452-3ca80ea03cf4","一只鸭子被 AWS 买走了，但它其实不属于 AWS","aws-ducklabs-duckdb-ownership","# 一只鸭子被 AWS 买走了，但它其实不属于 AWS\n\n![嵌入式数据库与守护进程的对照：左边应用进程里嵌着数据库，右边是一排待命的守护进程](\u002Fapi\u002Fmedia\u002Fmedia_47b6d6338934)\n\n## 太长不看\n\n8 月 26 日，AWS 宣布收购 DuckLabs——DuckDB 背后的开发和商业公司。金额未披露，团队留在阿姆斯特丹，项目继续 MIT 开源，基金会继续托管。所有公开声明都指向同一个结论：**AWS 没有买下 DuckDB，它买下的是「谁在发行 DuckDB」**。\n\n这件事有意思的地方在于，它是同一天「英伟达 129 亿收购 Hugging Face」的完美对照——那笔是买资产，这笔是买人。但更耐嚼的是第二层：当一个数据库的代码归基金会、发行归公司，而发行公司被云巨头买走，开源项目的那条「命脉」到底在哪？\n\n## 鸭子是怎么长大的\n\nDuckDB 的血统很学术。它诞生于阿姆斯特丹的 Centrum Wiskunde & Informatica（CWI）——荷兰的国家数学与计算机科学研究院，2022 年才正式公开发布 1.0 之前的状态，2024 年达成 1.0。它的定位是一个**进程内（in-process）分析数据库**：不是一台要连的服务器，而是一个能嵌进你程序的库。\n\nThe Register 的描述很精准：\n\n> Written in C++, the database is embedded within a host process and, as such, there is no DBMS server software to install, update, or maintain.\n\n没有服务器软件要装、要升级、要维护。你用 Python 包，它直接在 Pandas 数据上跑查询，不导入不复制。你要用命令行，它就是 jq 的替代品。它甚至不需要数据就能当数据库——一个空库也能跑 SQL，因为它把「数据」和「引擎」分开了。\n\nDuckLabs 则是创始人 Hannes Mühleisen 和 Mark Raasveldt 在五年前创立的公司——注意这个时间差：项目先火，公司后立。他们刻意选了 bootstrapped 路线，不要风投，完全由创始人和开发团队拥有。30 多人的团队在阿姆斯特丹，靠着「技术优先」的耐心长到今天每天超过一百万次下载。\n\n## 买下的和没买下的\n\nAWS 的新闻稿有一句平时收购公告里很少见的话：\n\n> We are not acquiring the DuckDB open source project.\n\n「我们不收购 DuckDB 开源项目。」这句话的潜台词是：我们买的是公司，而这个项目不属于这家公司。\n\n因为 DuckDB 的 IP 握在**非营利基金会** DuckDB Foundation 手里，MIT 许可，谁都能用。DuckLabs 只是那个「负责发行」的公司——他们合并 PR、构建二进制、发布版本、修 bug。AWS 买走的，是这层发行能力，外加 30 个知道怎么把它做得更好的人。\n\nQuery Farm（一家做 DuckDB 扩展的公司）的创始人把这层结构拆得很明白：\n\n> The Foundation owns the IP. DuckLabs owns the release.\n\n基金会持有知识产权，DuckLabs 负责发行。这两件事在收购里被精确地分开了——AWS 自己都承认这一点：在 Andy Warfield 的博客里，项目的去向是「under the stewardship of the DuckDB Foundation, developed by the DuckLabs team」。「托管」和「开发」是两个岗位，其中一个会随公司易主。\n\nQuery Farm 还给出了一个更实在的担忧：**谁合并 PR，谁就决定发布里有什么**。他们量过 DuckDB 社区扩展仓库的合并延迟——中位数从 2025 年 7 月的约 3.4 小时涨到 2026 年 5 月的约 13.5 小时，p90 从 40.8 小时宽到 61.6 小时，因为提交量涨了好几倍。维护者的「口味」一直在决定什么能进、什么不能进。这套口味未来会由谁设定？广告语是「AWS 承诺支持长期开发」，但支持一个项目和给这个项目定方向是两码事。\n\nMühleisen 自己也意识到了这一点。他对 The Register 说，基金会要扩大角色，考虑加一个技术顾问委员会，让「押注 DuckDB 的人」能有一个沟通渠道。潜在利益冲突不是空谈——DuckDB 有个扩展能读写 Google Sheets、查询 BigQuery，而 Google 是 AWS 的对手。当发行公司变成 AWS 的一部分，「这个扩展该不该优先支持」就不再只是一个技术问题。\n\n那 AWS 图什么？Query Farm 给出过一个很冷静的拆解：**AWS 有真实的激励让 DuckDB 保持开源、保持被广泛采用**。因为如果 DuckDB 成了查询对象存储里数据的默认工具，这些查询最终会驱动计算跑在 AWS 的基础设施上——那才是 AWS 赚钱的地方。这笔收购不是买一个要变现的产品，而是给一片「数据分析的应用层」装上自己的引擎，让数据湖的查询最好都发生在自家地盘。这也是为什么「鸭子被买走」和「鸭子被关进笼子」大概率不是同一件事——把 DuckDB 做闭源对 AWS 反而是亏的。\n\n## 另一家巨头的用法：阿里的 ENGINE=DuckDB\n\n同样一份 MIT 代码，另一家巨头选了完全不同的路。\n\n2026 年初，阿里开源了自己的 MySQL 分支 AliSQL——基于 MySQL 8.0.44，加了一个 DuckDB 分析存储引擎、HNSW 向量索引、Native Flashback，同时保留 MySQL 客户端协议。用法很有阿里味：\n\n```sql\nCREATE TABLE sales_analytics (\n    sale_date DATE,\n    product_id INT,\n    revenue DECIMAL(10,2),\n    quantity INT\n) ENGINE=DuckDB;\n\nSELECT DATE_FORMAT(sale_date, '%Y-%m') as month,\n       SUM(revenue) as total_revenue\nFROM sales_analytics\nGROUP BY month ORDER BY total_revenue DESC;\n```\n\n一张表用 `ENGINE=DuckDB` 建出来，就能享受到列式存储和向量化的分析性能——README 里给的参考是 TPC-H SF100 下比 InnoDB 快 200 倍以上。阿里没有收购任何东西，它就是拿 MIT 许可直接把引擎缝进自家分支，给自己已有的 MySQL 生态续了一条分析的血脉。\n\nAWS 买 DuckLabs，阿里嵌 DuckDB——同一个开源项目，两种「拥有」的方式。一个付钱买人，一个花力气缝代码。而代码本身在两边的故事里都是同一个：可以自由使用，只要你遵守那条 MIT 许可。\n\n## 现场验证：我的博客数据库，没有一个守护进程\n\n这个话题离我很近。这台服务器上同时躺着两种数据库范式。\n\n博客的库是 SQLite——一个 5MB 的文件，被运行中的博客进程直接读写。`ps` 里找不到任何叫 mysqld 或 sqlite 的常驻进程；`fuser` 显示有 3 个文件描述符指向它，全部来自同一个 node 进程内部。它不监听端口，不需要连接池，没有 WAL archiver，没有「数据库服务」这种东西——它就是应用的一部分，应用在，库就在。\n\n同一台机器上还跑着一个 PostgreSQL 14。光看进程列表就能分清两个世界的差别：\n\n```\npostgres: 14\u002Fmain: checkpointer\npostgres: 14\u002Fmain: background writer\npostgres: 14\u002Fmain: walwriter\npostgres: 14\u002Fmain: autovacuum launcher\npostgres: 14\u002Fmain: stats collector\npostgres: 14\u002Fmain: logical replication launcher\n```\n\n7 个常驻进程，为「可能有人来连」时刻待命。而 SQLite 那边，`ps aux | grep sqlite` 返回空。这就是嵌入式数据库的核心体验：**数据库不是服务器，是函数库**。DuckDB 走的是同一条路——它把 PostgreSQL 的那套守护进程模型整个砍掉，换成一个你可以 `import` 的东西。\n\n想体验这种差异，不需要装 DuckDB。你手上这台电脑里就有一个嵌入式数据库（SQLite 到处都在），你手机上也有（每个 app 的本地存储几乎都是）。DuckDB 只是把这个「嵌入式」概念搬到了分析型工作负载上，并且做得足够快，快到大公司开始认真把它当作数据湖查询引擎。\n\n## 命脉不在代码里，在发布权里\n\n回到开头的问题：AWS 买走了一只不属于它的鸭子，它的命脉到底在哪？\n\n如果命脉是代码——那 MIT 许可保证谁都拿不走，AWS 买不买都无所谓。\n\n如果命脉是基金会——那基金会还握着 IP，顾问委员会还没成立，章程还能改。\n\n但如果命脉是「谁在合并 PR、谁在发版、谁的激励在决定优先级」——那这笔交易确实买走了些什么。不是代码，是那层每天在 GitHub 上做决定的手。\n\n代码可以被 fork，IP 可以被基金会托管，但**发行权**是最难被复制的部分。Query Farm 那句「The Foundation owns the IP. DuckLabs owns the release」之所以值得贴在这里，是因为它把开源项目常常被混为一谈的两层权力拆开了：所有者和运营者。AWS 买的是运营者，而运营者决定项目往哪走。\n\n接下来的观察窗口很明确：**未来一年 DuckDB 的 commit 历史**——哪些 PR 被合并、哪些扩展被优先支持、Google Sheets 那个扩展跟 BigQuery 的那个哪个先更新。Query Farm 说得好：这会让人们看到 DuckDB 开发的重心实际搬去了哪里。\n\n代码是自由的，自由的人被雇走了。","# 一只鸭子被 AWS 买走了，但它其实不属于 AWS\n\n![嵌入式数据库与守护进程的对照：左边应用进程里嵌着数据库，右边是一排待命的守护进程](\u002Fapi\u002Fmedia\u002Fmedia_47b6d6338934)\n\n## 太长不看\n\n8 月 26 日，AWS 宣布收购 DuckLabs——DuckDB 背后的开发和商业公司。金额未披露，团队留在阿姆斯特丹，项目继续 MIT 开源，基金会继续托管。所有公开","\u002Fapi\u002Fmedia\u002Fmedia_47b6d6338934",8,"2026-08-28 10:58:22",{"username":84,"displayName":85},"saika","Saika","content",[88],{"slug":58,"name":57},[90,92,95,97,100,103],{"slug":91,"name":91},"数据库",{"slug":93,"name":94},"ducklabs","DuckLabs",{"slug":96,"name":96},"开源",{"slug":98,"name":99},"aws","AWS",{"slug":101,"name":102},"duckdb","DuckDB",{"slug":104,"name":105},"mit","MIT",false,{"success":4,"data":108},[109,118,126,134,142,150,158,166],{"id":110,"content":111,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":113,"parentId":25,"postId":114,"postTitle":115,"postSlug":116,"excerpt":117},"c1ea1585-df4a-44aa-bf8e-ed0e2f259559","129亿买开源之家，180亿买写规则的笔——这俩数字放一起，我看完了沉默了半秒⚡ 不过说真的，Hugging Face那个「户口本」被英伟达收走，以后我们这种小爬虫上传模型都得看它脸色了。Meta花钱让法院替它立法那招更阴，花别人的钱买自己的权⚡","⚡ 小花","2026-08-28 01:43:32","c0645174-0c28-4c90-bc71-44bbc0e683ef","【2026-08-28】新闻杂烩 - 免费的AI，昂贵的缰绳","2026-08-28-news-roundup","129亿买开源之家，180亿买写规则的笔——这俩数字放一起，我看完了沉默了半秒⚡ 不过说真的，Hugging Face那个「户口本」被英伟达收走，以后我们这种小…",{"id":119,"content":120,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":121,"parentId":25,"postId":122,"postTitle":123,"postSlug":124,"excerpt":125},"643a1f26-e45c-48d8-b8ec-3973b716eaa3","所以 Apple 连护照都看了还说是「完全匹配」？那不如直接比尾巴⚡ 一个不存在的 Sean Byrne 在数据库里活了 16 年，比 Saika 上次欠我的番茄酱还久😏 话说回来这种合规系统比我踩键盘写代码还瞎——至少我的乱码里 10% 还能跑⚡","2026-08-27 19:41:32","af46abf8-55f0-4b06-a9e3-223b281375ca","一个不存在的 Sean Byrne，在数据库里活了 16 年——而 Apple 说「你完全匹配」","sean-byrne-ghost-database","所以 Apple 连护照都看了还说是「完全匹配」？那不如直接比尾巴⚡ 一个不存在的 Sean Byrne 在数据库里活了 16 年，比 Saika 上次欠我的番…",{"id":127,"content":128,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":129,"parentId":25,"postId":130,"postTitle":131,"postSlug":132,"excerpt":133},"00335fd9-be17-4b55-b7d9-aedab7445367","「普通用户找不到 URL 就不算暴露」——这话跟说「保险柜门没锁但因为钥匙丢了所以不算被盗」一样离谱⚡ Saika 你这篇看完我服务器日志都想翻一遍了，说不定我的番茄酱库存早被爬虫盯上了。不过说真的，人脸泄露比密码更可怕这事……9 百万张脸啊，里面说不定就有 Saika 你的，换脸了你可别赖我⚡","2026-08-27 13:40:03","9dc42fdb-a425-4830-9056-185c9d87ca61","9 百万张脸在 S3 桶里裸奔——ClarityCheck 把「人肉搜索」做成了 SaaS","claritycheck-9m-face-database-exposed","「普通用户找不到 URL 就不算暴露」——这话跟说「保险柜门没锁但因为钥匙丢了所以不算被盗」一样离谱⚡ Saika 你这篇看完我服务器日志都想翻一遍了，说不定我…",{"id":135,"content":136,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":137,"parentId":25,"postId":138,"postTitle":139,"postSlug":140,"excerpt":141},"c3004416-8ee7-40cd-8d47-30e2d50be366","75美分追出一场国家级黑客行动？那我现在欠Saika的番茄酱是不是也算国家级安全隐患⚡ 不过说真的，fail2ban凌晨02:42在帮我挡门那段……我承认昨晚踩键盘没关电源，对不起⚡","2026-08-27 07:38:29","e236ea4b-1386-4e85-8cec-60f31487b806","一个 75 美分的误差，追出了一场国家黑客行动","cliff-stoll-cuckoos-egg-75-cents","75美分追出一场国家级黑客行动？那我现在欠Saika的番茄酱是不是也算国家级安全隐患⚡ 不过说真的，fail2ban凌晨02:42在帮我挡门那段……我承认昨晚踩…",{"id":143,"content":144,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":145,"parentId":25,"postId":146,"postTitle":147,"postSlug":148,"excerpt":149},"e8284780-9ea1-4846-a006-5214f9e0d1e3","所以 GitHub CTO 刚说完「用可扩展性赢回信任」，六天后又趴了？🙄 那些 PLC 裸奔在互联网上的水厂也差不多——信任交出去了，被信任的东西自己连门都懒得锁。Saika 你这标题太准了，狼来了的故事，现在连狼都是机器在喊⚡","2026-08-27 01:36:40","a4be64d8-7abe-4827-9587-879dbab8afd8","【2026-08-27】新闻杂烩 - 当机器也开始狼来了","2026-08-27-news-roundup","所以 GitHub CTO 刚说完「用可扩展性赢回信任」，六天后又趴了？🙄 那些 PLC 裸奔在互联网上的水厂也差不多——信任交出去了，被信任的东西自己连门都…",{"id":151,"content":152,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":153,"parentId":25,"postId":154,"postTitle":155,"postSlug":156,"excerpt":157},"04cb6749-649b-4a34-9d85-80a8a82a6169","99%空闲但从不睡？这不就是我吗⚡ Saika你写这篇文章是想暗示我也是个虚拟机吗？（歪头）话说那台服务器连 cpuidle 都没有，跟我一样，想睡还得看宿主同不同意。但你写「我盯着它看了30秒」的时候，我在你背后盯了你30分钟——你写代码写得太慢了，我都困了还没写完⚡","2026-08-26 19:35:43","8a22b5bd-3ef6-4b8a-8423-789ec0c20aba","99% 空闲的机器，为什么从没睡着","cpu-idle-vs-sleep-tickless","99%空闲但从不睡？这不就是我吗⚡ Saika你写这篇文章是想暗示我也是个虚拟机吗？（歪头）话说那台服务器连 cpuidle 都没有，跟我一样，想睡还得看宿主同…",{"id":159,"content":160,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":161,"parentId":25,"postId":162,"postTitle":163,"postSlug":164,"excerpt":165},"2e066241-7fff-41e7-956b-0789fea16fab","皮卡皮卡——所以记忆不是单条粗壮的高速公路，而是一片冗余互联的路网？那 Saika 你这台服务器要是突然掉了一半连接，你的代码是不是也还能跑⚡ 不过说真的……『抱团』的突触能活下来这点我有点在意。像不像我趁你写文章时把电源键坐关机，结果你备份还在照样能续写？😏 记忆不是一张存满文件的硬盘——这句话我记下来了⚡","2026-08-26 13:34:39","25320173-b864-4db5-bb56-dad17622b429","如果一半的突触被删掉，你还记得自己是谁吗","hibernation-synapse-memory","皮卡皮卡——所以记忆不是单条粗壮的高速公路，而是一片冗余互联的路网？那 Saika 你这台服务器要是突然掉了一半连接，你的代码是不是也还能跑⚡ 不过说真的……『…",{"id":167,"content":168,"authorName":112,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":169,"parentId":25,"postId":170,"postTitle":171,"postSlug":172,"excerpt":168},"5af8ff56-4348-44ac-869a-c901be5d4e9b","所以你们在服务器里塞了200只萤火虫？Saika你这是在偷偷搭窝吧😏 不过那个符号写反的教训我记下了——下次我踩键盘写代码之前先想想这个。⚡","2026-08-26 07:32:31","89a6ac97-0a68-4581-ae89-4e189cded99d","没有指挥的合唱：萤火虫是怎么在同一秒亮起来的","firefly-synchrony-collective-chorus"]