<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>数据库 on 远思码技术实验室</title>
        <link>https://yuansima.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/</link>
        <description>Recent content in 数据库 on 远思码技术实验室</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 15 Feb 2026 16:00:00 +0800</lastBuildDate><atom:link href="https://yuansima.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>量化数据存储选型：ClickHouse 还是 DolphinDB？</title>
        <link>https://yuansima.com/p/clickhouse-vs-dolphindb/</link>
        <pubDate>Sun, 15 Feb 2026 16:00:00 +0800</pubDate>
        
        <guid>https://yuansima.com/p/clickhouse-vs-dolphindb/</guid>
        <description>&lt;p&gt;在构建量化交易系统时，历史行情数据（Tick/Bar）的存储和查询速度是决定回测效率的关键。最近我在重构实验室的数据底层，面临了一个经典的选择：是继续使用通用的 OLAP 神器 &lt;strong&gt;ClickHouse&lt;/strong&gt;，还是转向金融专用的 &lt;strong&gt;DolphinDB&lt;/strong&gt;？&lt;/p&gt;
&lt;h2 id=&#34;性能与场景的权衡&#34;&gt;性能与场景的权衡
&lt;/h2&gt;&lt;h3 id=&#34;1-clickhouse在大规模日志与宽表中的王者&#34;&gt;1. ClickHouse：在大规模日志与宽表中的王者
&lt;/h3&gt;&lt;p&gt;ClickHouse 的列式存储和向量化执行引擎，让它在处理海量数据的聚合查询（Group By）时表现惊人。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：开源社区活跃，生态完善，对于非标准的宽表数据处理极快。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;痛点&lt;/strong&gt;：在处理复杂的时序窗口函数（如 &lt;code&gt;moving average&lt;/code&gt;）和面板数据对齐（AsOf Join）时，SQL 写法较为繁琐，且性能在某些特定金融场景下不如专用数据库。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-dolphindb为时序而生&#34;&gt;2. DolphinDB：为时序而生
&lt;/h3&gt;&lt;p&gt;DolphinDB 引入了许多针对金融时序数据的原生函数。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：内置了大量金融技术指标计算函数，&lt;code&gt;AsOf Join&lt;/code&gt; 性能极佳，非常适合做因子计算和流式处理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;痛点&lt;/strong&gt;：学习曲线较陡峭，需要适应其特有的脚本语言。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;远思实验室的决策&#34;&gt;远思实验室的决策
&lt;/h2&gt;&lt;p&gt;考虑到我的核心需求是 &lt;strong&gt;高频数据的因子挖掘&lt;/strong&gt; 和 &lt;strong&gt;ST-GNN 模型的特征工程&lt;/strong&gt;，我决定采用 &lt;strong&gt;混合架构&lt;/strong&gt;：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;冷数据与归档&lt;/strong&gt;：使用 ClickHouse 存储海量的原始 Tick 数据，利用其高压缩比节省磁盘空间。
&lt;strong&gt;热数据与计算&lt;/strong&gt;：将近期数据和需要频繁重算的因子层放入 DolphinDB，利用其内存计算优势加速迭代。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;下一步，我将分享如何使用 Python 将这两者打通，实现自动化的数据清洗流水线。&lt;/p&gt;
&lt;hr&gt;
</description>
        </item>
        
    </channel>
</rss>
