Dune 的服务理念与改进历程:Dune 重视客户反馈,致力于持续改进服务。以支持 DuneAPI 的查询结果分页功能为例,最终演变成在 Dune 采用 DuckDB 的全面改进,期间积累了很多经验并分享了新功能。
- 动机与背景:用户反馈 Dune API 不支持分页且查询结果最大限制为约 1GB,这源于最初为满足 Dune Analytics 可视化需求的架构设计,包括查询驱动的可视化、强大的查询执行、小而可复用的查询结果及缓存等,但导致了 1GB 结果限制和无分页等局限性。
- 扩展 Dune API 的用例:为服务开发者社区,通过用户故事了解开发者需求,如搜索过滤、数据用于图表、数据科学等,采用整体方法构建更灵活的 API,注重灵活性、集成性、实际应用和新技术利用。
- DuneSQL 与查询结果:Dune 所有数据可用 DuneSQL 查询,使用 Trino 分布式查询引擎,但 DuneSQL 存在响应时间长等问题,适应新需求具有挑战性。
- 使用 DuckDB 作为过渡:评估多种选项后,选择 DuckDB 作为新的查询引擎,因其支持多种数据格式、高性能 SQL 引擎、灵活性和易用性等,能满足快速响应和低成本要求,生产性能表现良好。
- 最终架构:Dune 运行并操作 DuneSQL 和 DuckDB 两种数据库技术,将用户可查询数据迁移至 Parquet,最终架构得以优化。
- 新功能与 API:借助 DuckDB 实现了 Pagination、Filtering、Sorting、Sampling等功能,并与其他 Dune 功能集成,提供了自定义端点和预设端点等。
- 结论:在增强 DuneAPI 的过程中经历了“特性蔓延”,但通过关注客户需求进行创新,将 DuckDB 融入服务,扩展了 DuneAPI 的功能,希望新功能能为用户创造价值,欢迎反馈和请求,更多详情可访问 API 文档,特别感谢 Alsie、Jonathan 和 Wilhelm 的审核与反馈。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。