当前位置: 首页 > news >正文

试用支持postgresql wire协议的duckdb服务器duckgres

存储库地址 https://github.com/PostHog/duckgres/

  1. 下载二进制文件
wget https://github.com/PostHog/duckgres/releases/download/build-0043e82/duckgres-linux-arm64 -c

    在kylin v10中执行报错

    chmod +x duckgres-linux-arm64 ./duckgres-linux-arm64 ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./duckgres-linux-arm64) ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./duckgres-linux-arm64) ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./duckgres-linux-arm64) ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by ./duckgres-linux-arm64) ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./duckgres-linux-arm64) ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./duckgres-linux-arm64)

    系统libc等动态库版本太低。
    用gcc 14.2 的docker容器来执行。

    sudo docker start gcc142 sudo docker exec -it gcc142 bash cd /par ./duckgres-linux-arm64 ./duckgres-linux-arm64: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./duckgres-linux-arm64)

    libm动态库版本还是不够高。
    再用gcc 15.2的docker容器来执行。

    sudo docker run -itd -v /home/par:/par --network host --name gcc152 docker.1ms.run/gcc:15.2 afb66b3c7b8e92c47cf2d60a96a34e9fb4ac6147dd0ef054f4f18e7971b4452a sudo docker exec -it gcc152 bash cd /par ./duckgres-linux-arm64 PostHog logging disabled (POSTHOG_API_KEY not set) time=2026-04-23T01:07:34.358Z level=INFO msg="Starting metrics server" addr=:9090 time=2026-04-23T01:07:34.362Z level=INFO msg="Using TLS certificates" cert_file=./certs/server.crt key_file=./certs/server.key time=2026-04-23T01:07:34.362Z level=INFO msg="TLS enabled." cert_file=./certs/server.crt time=2026-04-23T01:07:34.362Z level=INFO msg="Rate limiting enabled." max_failed_attempts=5 window=5m0s ban_duration=15m0s time=2026-04-23T01:07:34.362Z level=INFO msg="Idle timeout enabled." timeout=24h0m0s time=2026-04-23T01:07:34.363Z level=INFO msg="Starting Duckgres server (TLS required)" version=build-0043e82 host=0.0.0.0 port=5432

    可以启动服务端了。但是用DBeaver 的postgresql驱动去连接,报如下错误

    The server requested password-based authentication, but no password was provided by plugin null

    没法登录。
    在存储库的“packages”中找到了官方的docker镜像,
    3. 拉取镜像, 打上简单的标签

    docker pull ghcr.io/posthog/duckgres:f9f5f0a30fd801cae7b4198b3276636e870a6a42 docker tag ghcr.io/posthog/duckgres:f9f5f0a30fd801cae7b4198b3276636e870a6a42 duckgres:dev
    1. 运行容器
    docker run -itd -v /mnt/c/d:/par --network host --name duckgres duckgres:dev eb3b126f6fc12942147826398cf087c1853f5b0af0d0afb5729a546ee0601b3c

    容器中也没有psql客户端,只有duckdb的插件。

    docker exec -it duckgres bash duckgres@DESKTOP-59T6U68:~$ psql bash: psql: command not found duckgres@DESKTOP-59T6U68:~$ ls certs data duckgres extensions duckgres@DESKTOP-59T6U68:~$ ls -l total 187192 drwxr-xr-x 1 duckgres duckgres 4096 Apr 23 11:17 certs drwxr-xr-x 1 duckgres duckgres 4096 Apr 23 11:17 data -rwxr-xr-x 1 duckgres duckgres 191666944 Apr 22 21:25 duckgres drwxr-xr-x 1 duckgres duckgres 4096 Apr 22 21:25 extensions duckgres@DESKTOP-59T6U68:~$ cd extensions duckgres@DESKTOP-59T6U68:~/extensions$ ls v1.5.2 duckgres@DESKTOP-59T6U68:~/extensions$ cd v1.5.2 duckgres@DESKTOP-59T6U68:~/extensions/v1.5.2$ ls linux_amd64 duckgres@DESKTOP-59T6U68:~/extensions/v1.5.2$ cd linux_amd64 duckgres@DESKTOP-59T6U68:~/extensions/v1.5.2/linux_amd64$ ls ducklake.duckdb_extension httpfs.duckdb_extension json.duckdb_extension postgres_scanner.duckdb_extension duckgres@DESKTOP-59T6U68:~/extensions/v1.5.2/linux_amd64$

    启动duckgres服务器,发现已经启动了。
    利用宿主机上的psql连接,指定localhost,成功了。

    psql -U postgres -d postgres -h localhost Password for user postgres: psql (14.22 (Ubuntu 14.22-0ubuntu0.22.04.1), server 15.0 (Duckgres)) WARNING: psql major version 14, server major version 15. Some psql features might not work. SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, bits: 128, compression: off) Type "help" for help. postgres=> postgres=> \timing on Timing is on. postgres=> select * from range(1,4); range ------- 1 2 3 (3 rows) Time: 32.571 ms postgres=> select sum(i) from generate_series(1,100000000)t(i); sum(i) ------------------ 5000000050000000 (1 row) Time: 114.346 ms

    用duckdb独有的range函数试验,没问题。
    再用1亿行generate_series测试,很快。

    http://www.jsqmd.com/news/688908/

    相关文章:

  1. 别再手动调图了!用ScottPlot在WinForm里实现鼠标滚轮+右键拖拽缩放(附完整源码)
  2. 从WebRTC到Speex:聊聊那些开源语音引擎里的AEC模块是怎么工作的
  3. 微信小程序商城怎么制作?新手零基础教程 - 码云数智
  4. 市场知名的玻璃管转子流量计厂家排名 - 品牌企业推荐师(官方)
  5. 告别SPI配置烦恼:手把手教你用Python脚本批量读写AD9361寄存器
  6. 【射影几何】交比:从线段分割到透视不变的核心法则
  7. 高效论文降重方案:哪些降重软件可以同时降低查重率和AIGC疑似率?2026年TOP5平台深度对比指南
  8. 质子交换膜燃料电池(PEMFC)液态水非等温COMSOL仿真模型介绍文档
  9. 2025届毕业生推荐的五大AI辅助论文平台实际效果
  10. 2026年4月上海松江区别墅/婚房/中古风/智能家居/原木风/装修公司选型指南 - 2026年企业推荐榜
  11. PTC云授权与本地授权混合管理模式全解析
  12. 别再死记硬背竞赛代码了!深度解析2018年单片机赛题背后的嵌入式系统设计思维
  13. VBA Replace函数实战指南:从基础语法到高效数据处理
  14. OpenClaw浏览器自动化实战:从零写一个网页监控机器人
  15. 微信好友关系一键检测:终极免费工具快速发现谁删除了你
  16. 保姆级教程:在树莓派上用Node-RED连接Home Assistant,实时监控CPU温度与内存
  17. 2026年黄金回收指南:这五家高评价实体店为何备受信赖? - 品牌企业推荐师(官方)
  18. 智驾进阶之路:V2X打通车与万物互联,航芯安全芯片守护产业行稳致远
  19. 订单中心怎么设计?一次讲清订单主链路、状态流转、拆单模型与核心边界
  20. 告别触摸屏!用4个物理按键玩转LVGL界面(附焦点保存与恢复实战代码)
  21. 仅限SRE/SecOps内部传阅:Docker 27 Registry安全基线27项强制项(含FIPS 140-2合规对照表)
  22. Windows与Office终极激活指南:KMS_VL_ALL_AIO智能脚本完全教程
  23. 抖音批量下载工具:从零开始构建高效视频收集工作流
  24. 概率流常微分方程(PFODE)
  25. Umi-CUT:彻底解决图片黑边困扰的终极批量处理工具
  26. 2026年健康早餐新选择:这份黑麦吐司榜单,好吃到颠覆你的认知 - 品牌企业推荐师(官方)
  27. 别再只会画折线图了!用Qt Charts搞定5种实用图表(附完整源码)
  28. CUDA 13算子开发必踩的5大安全陷阱:从内存越界到PTX注入攻击,一线GPU工程师紧急避坑指南
  29. 别再手动建文件夹了!Android Studio 2023.3.1 一键生成多语言资源目录(附完整国家/地区代码表)
  30. 20260423 紫题训练