自己可以接单做网站吗,建设项目所在地公共媒体网站,百度上如何做优化网站,音频网站模板背景
在数据库行业#xff0c;质量是核心要素。
Databend 的应用场景广泛#xff0c;特别是在金融相关领域#xff0c;其查询结果的准确性对用户至关重要。因此#xff0c;在快速迭代的过程中#xff0c;如何确保产品质量#xff0c;成为我们面临的重大挑战。
随着 Da… 背景
在数据库行业质量是核心要素。
Databend 的应用场景广泛特别是在金融相关领域其查询结果的准确性对用户至关重要。因此在快速迭代的过程中如何确保产品质量成为我们面临的重大挑战。
随着 Databend 开源社区的快速发展新功能的持续增加和现有功能的优化提出了新的测试挑战。我们致力于在每次代码更新中实施严格的测试确保稳定性并防止任何潜在问题。
Databend 的测试方法
为了确保软件的稳定性和可靠性Databend 的测试方法覆盖从代码级到系统级的各个方面。
Unit Tests
单元测试作为测试的基石着重验证代码的基本功能和逻辑。我们在每次代码提交前自动运行单元测试确保及时捕捉任何潜在问题。
SQL Logic Tests
Databend 引入了大量的 DuckDB、CockroachDB 和 PostgreSQL 的 SQL 逻辑测试感谢他们。这些测试覆盖了广泛的 SQL 场景帮助我们发现并修复潜在问题保障 SQL 查询的精确性。
Compatible Tests
兼容性测试确保新版本与旧版本的向后兼容帮助用户平稳过渡到 Databend 的更新版本保障业务的连续性和稳定性。
Perf Tests
Databend 使用 ClickBench hits 数据集和 TPCH-SF100 作为性能指标通过这些测试来确保每个版本的性能都符合预期。
Longrun Tests
Longrun 测试专注于数据写入、更新和合并等操作的长期效果通过监测 CPU 和内存的稳定性确保 Databend 的长期运行稳定性和可靠性。
除 Longrun Tests 外这些测试在每个 GitHub Pull Request 提交时都会执行以保证任何更改都符合我们的质量标准。 借助 GPT-4 生成测试模型
尽管已经采用了多种测试方法Databend 团队始终在寻求创新。近期我们引入了 GPT-4 来进一步提升测试流程。
双缝探测模型
针对涉及核心路径的修改我们采用双缝探测模型进行验证。这种方法通过比较当前 PR 版本与主分支main版本的结果集来进行验证。如果两者结果一致则可视为无大碍。但这些验证的 SQL 语句的质量至关重要这正是我们利用 GPT-4 生成的部分。首先我们指导 GPT-4 根据需求推理出随机数据生成方式如 setup.sql 所示。然后基于这些数据GPT-4 进一步生成用于校验的 SQL 语句例如 check.sql。这些验证 SQL 语句可以根据不同场景进行调整。接下来我们在这两个版本的 Databend 上运行这些 SQL 语句以验证结果集的一致性。
结果集正确性模型
为了确保 Databend 的结果集的正确性我们选择了 Snowflake 作为参考。这一方法包括三个步骤
setup.sql 在 Databend 和 Snowflake 上分别构建表并导入随机数据集。action.sql在 Databend 和 Snowflake 上分别执行数据变更操作如 Replace/Merge 等。check.sql 在 Databend 和 Snowflake 上分别执行并验证结果。
这些 SQL 语句都是由 GPT-4 根据 setup.sql 的数据模式生成的更加复杂和随机以便更有效地探测潜在的问题。
总结
Databend 团队通过引入 GPT-4为测试流程带来了显著的进步。我们已在 Databend Wizard 项目中发布了更多测试集
GitHub - datafuselabs/wizard: A GPT4 powered tool for detecting bugs in Databend
借助这些 GPT-4 生成的测试模型Databend 的质量和稳定性又前进了一大步科技是第一生产力。 References
[1] datafuselabs/wizard [2] Databend [3] Snowflake
关于 Databend
Databend 是一款开源、弹性、低成本基于对象存储也可以做实时分析的新式数仓。期待您的关注一起探索云原生数仓解决方案打造新一代开源 Data Cloud。
Databend Cloudhttps://databend.cn Databend 文档Databend - The Future of Cloud Data Analytics. | Databend WechatDatabend
✨ GitHubGitHub - datafuselabs/databend: Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. Cloud: https://databend.com