<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>http://docs.lmgateway.com/blog</id>
    <title>IotEdge DB Blog</title>
    <updated>2026-05-11T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="http://docs.lmgateway.com/blog"/>
    <subtitle>IotEdge DB Blog</subtitle>
    <icon>http://docs.lmgateway.com/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[数据探索器功能详解]]></title>
        <id>http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide</id>
        <link href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide"/>
        <updated>2026-05-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[IotEdge DB Explorer 是一站式时序数据库管理前端，覆盖从服务器连接、数据库管理、SQL 查询、数据写入、仪表盘可视化、连续查询、MQTT 订阅到权限管控的完整链路。本文逐一拆解 12 个核心功能模块。]]></summary>
        <content type="html"><![CDATA[<p>IotEdge DB Explorer 是一站式时序数据库管理前端，覆盖从服务器连接、数据库管理、SQL 查询、数据写入、仪表盘可视化、连续查询、MQTT 订阅到权限管控的完整链路。本文逐一拆解 12 个核心功能模块。</p>
<!-- -->
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="系统概览system-overview">系统概览（System Overview）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E7%B3%BB%E7%BB%9F%E6%A6%82%E8%A7%88system-overview" class="hash-link" aria-label="系统概览（System Overview）的直接链接" title="系统概览（System Overview）的直接链接" translate="no">​</a></h2>
<p>连接服务器后，系统概览页自动拉取运行时指标并每 10 秒刷新，提供对节点健康度的实时洞察。</p>
<p><img decoding="async" loading="lazy" alt="系统概览" src="http://docs.lmgateway.com/assets/images/overview-1100feb6f9c587c3e5fde0b2169b14ad.png" width="2992" height="1626" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="顶部高亮卡片">顶部高亮卡片<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E9%A1%B6%E9%83%A8%E9%AB%98%E4%BA%AE%E5%8D%A1%E7%89%87" class="hash-link" aria-label="顶部高亮卡片的直接链接" title="顶部高亮卡片的直接链接" translate="no">​</a></h3>
<p>页面顶部展示 4 个关键统计：HTTP 请求数、查询执行次数、数据摄入量、当前内存占用。一目了然地掌握节点负载。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="时序趋势图">时序趋势图<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%97%B6%E5%BA%8F%E8%B6%8B%E5%8A%BF%E5%9B%BE" class="hash-link" aria-label="时序趋势图的直接链接" title="时序趋势图的直接链接" translate="no">​</a></h3>
<p>三张 ECharts 折线图分别展示<strong>系统指标趋势</strong>、<strong>API 性能趋势</strong>、<strong>数据库操作趋势</strong>，通过时间轴直观反馈 CPU、吞吐量和延迟的波动。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="高级指标面板">高级指标面板<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E9%AB%98%E7%BA%A7%E6%8C%87%E6%A0%87%E9%9D%A2%E6%9D%BF" class="hash-link" aria-label="高级指标面板的直接链接" title="高级指标面板的直接链接" translate="no">​</a></h3>
<p>15 个可折叠分组深入到底层细节：</p>
<ul>
<li class=""><strong>系统与环境</strong>：Go 版本、运行时长、CPU 核数、Goroutine 数</li>
<li class=""><strong>内存与 GC</strong>：堆内存、系统内存、GC 周期与停顿</li>
<li class=""><strong>HTTP 请求</strong>：请求总数、错误数、延迟</li>
<li class=""><strong>查询引擎</strong>：执行次数、返回行数、活跃查询</li>
<li class=""><strong>数据库连接</strong>：打开数、空闲数、使用中</li>
<li class=""><strong>认证与审计</strong>：认证请求、缓存命中率、审计事件</li>
<li class=""><strong>数据摄取</strong>：字节数、批次、行协议与 MsgPack 解析</li>
<li class=""><strong>存储引擎</strong>：读写次数与字节数</li>
<li class=""><strong>压缩</strong>：压缩任务数、文件数、读写量</li>
<li class=""><strong>WAL</strong>：记录保留与恢复</li>
<li class=""><strong>MQTT 协议</strong>：连接数、消息数、字节数</li>
<li class=""><strong>治理与限制</strong>：活跃策略、额度耗尽、限流</li>
<li class=""><strong>复制</strong>：序列差距、丢弃条目</li>
</ul>
<p>每个分组内以统计卡片网格展示具体数值，折叠态不占用视觉空间，展开即见全貌。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="服务器管理servers">服务器管理（Servers）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%A1%E7%90%86servers" class="hash-link" aria-label="服务器管理（Servers）的直接链接" title="服务器管理（Servers）的直接链接" translate="no">​</a></h2>
<p>所有视图的基础——必须连接至少一台 IotEdge DB 服务器才能使用平台功能。</p>
<p><img decoding="async" loading="lazy" alt="服务器管理" src="http://docs.lmgateway.com/assets/images/servers-78cde3f8d58def765c4142b3eb6e55e3.png" width="1280" height="800" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="功能要点">功能要点<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%8A%9F%E8%83%BD%E8%A6%81%E7%82%B9" class="hash-link" aria-label="功能要点的直接链接" title="功能要点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>添加服务器</strong>：填写服务器名称、URL（支持 http/https 协议选择）、Token（带显隐切换的安全输入框）</li>
<li class=""><strong>切换服务器</strong>：点击卡片即可切换当前活动服务器，所有视图实时同步</li>
<li class=""><strong>编辑 / 删除</strong>：随时修改连接信息或移除不再使用的服务器</li>
<li class=""><strong>持久化存储</strong>：连接信息存储在浏览器 localStorage，刷新不丢失</li>
</ul>
<p>侧边栏底部也提供快速服务器切换器，无需跳转页面即可更换工作上下文。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="数据库管理databases">数据库管理（Databases）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86databases" class="hash-link" aria-label="数据库管理（Databases）的直接链接" title="数据库管理（Databases）的直接链接" translate="no">​</a></h2>
<p>以卡片网格形式管理数据库的全生命周期。</p>
<p><img decoding="async" loading="lazy" alt="数据库管理" src="http://docs.lmgateway.com/assets/images/databases-a00a59861a72de95c32f2d644b20ead3.png" width="1280" height="800" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="功能要点-1">功能要点<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%8A%9F%E8%83%BD%E8%A6%81%E7%82%B9-1" class="hash-link" aria-label="功能要点的直接链接" title="功能要点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>搜索过滤</strong>：按数据库名模糊搜索</li>
<li class=""><strong>创建数据库</strong>：弹出表单输入名称，支持下划线、字母和数字</li>
<li class=""><strong>删除数据库</strong>：二次确认弹窗，明确提示"此操作无法撤销"</li>
<li class=""><strong>统计信息</strong>：每张卡片展示 Measurement 数量和在线状态</li>
</ul>
<p>数据库创建后，即可在其他模块（数据探索器、写入数据、连续查询）中选取使用。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="数据探索器data-explorer">数据探索器（Data Explorer）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%95%B0%E6%8D%AE%E6%8E%A2%E7%B4%A2%E5%99%A8data-explorer" class="hash-link" aria-label="数据探索器（Data Explorer）的直接链接" title="数据探索器（Data Explorer）的直接链接" translate="no">​</a></h2>
<p>平台的核心查询交互工具，支持 SQL 编辑、自然语言生成 SQL、可视化分析和 Dashboard 集成。</p>
<p><img decoding="async" loading="lazy" alt="数据探索器" src="http://docs.lmgateway.com/assets/images/data-explorer-7fff2c00f18d4fea31c17751ba563611.png" width="1280" height="800" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="双面板布局">双面板布局<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%8F%8C%E9%9D%A2%E6%9D%BF%E5%B8%83%E5%B1%80" class="hash-link" aria-label="双面板布局的直接链接" title="双面板布局的直接链接" translate="no">​</a></h3>
<p><strong>左侧 Schema 浏览器</strong>：以树形结构展示数据库和 Measurement。展开任意 Measurement 可将列按 <strong>time / tag / field</strong> 分类展示。勾选列自动生成 SELECT 子句，tag 列还支持筛选按钮——自动拉取 DISTINCT 值并以复选框展示，选中后动态注入 WHERE 条件。</p>
<p><strong>右侧查询工作区</strong>：多 Tab 页并行，每个 Tab 拥有独立的 SQL、结果集和可视化状态。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sql-编辑器">SQL 编辑器<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#sql-%E7%BC%96%E8%BE%91%E5%99%A8" class="hash-link" aria-label="SQL 编辑器的直接链接" title="SQL 编辑器的直接链接" translate="no">​</a></h3>
<p>基于 CodeMirror 6 + <code>@codemirror/lang-sql</code>，集成 <strong>Schema 感知补全</strong>：选中数据库后，表名和列名会自动加入补全字典，输入时弹出智能提示。</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">-- 输入 "SELECT " → 自动列出所有列名</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">-- 输入 "FROM " → 自动列出所有 Measurement</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">SELECT</span><span class="token plain"> device_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> temperature</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> humidity</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">FROM</span><span class="token plain"> sensor_data</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">WHERE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">time</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">now</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">interval</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'1 hour'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token operator" style="color:#393A34">AND</span><span class="token plain"> device_id </span><span class="token operator" style="color:#393A34">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'sensor-a'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'sensor-b'</span><span class="token punctuation" style="color:#393A34">)</span><br></div></code></pre></div></div>
<p><strong>时间范围选择器</strong>：提供 15m、1h、6h、24h、7d、30d 快捷选项及自定义起止时间。选区变更后 SQL 中的时间条件自动替换，不影响其他 WHERE 子句。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="nl2sql自然语言生成-sql">NL2SQL：自然语言生成 SQL<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#nl2sql%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%94%9F%E6%88%90-sql" class="hash-link" aria-label="NL2SQL：自然语言生成 SQL的直接链接" title="NL2SQL：自然语言生成 SQL的直接链接" translate="no">​</a></h3>
<p>切换到 Natural Language 模式，用日常语言描述需求，点击 "Generate SQL"：</p>
<ol>
<li class="">自动遍历数据库所有 Measurement，执行 <code>SELECT * LIMIT 1</code> 解析列结构</li>
<li class="">将 Schema 信息拼接为 System Prompt</li>
<li class="">调用已配置的 AI 大模型（OpenAI 兼容 <code>/chat/completions</code> 接口）</li>
<li class="">剥离 Markdown 标记，将纯净 SQL 填入编辑器</li>
</ol>
<p><strong>输入</strong>：</p>
<blockquote>
<p>查询最近 1 小时温度超过 80 度的设备 ID 和对应温度值</p>
</blockquote>
<p><strong>生成 SQL</strong>：</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">SELECT</span><span class="token plain"> device_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> temperature</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">FROM</span><span class="token plain"> sensor_data</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">WHERE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">time</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">now</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">interval</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'1 hour'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token operator" style="color:#393A34">AND</span><span class="token plain"> temperature </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">80</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">time</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">DESC</span><br></div></code></pre></div></div>
<p><img decoding="async" loading="lazy" alt="NL2SQL 自然语言转 SQL" src="http://docs.lmgateway.com/assets/images/nl2sql-c3a215379c8329874df7e2f0466be74c.png" width="1280" height="800" class="img_ev3q"></p>
<p>支持的 AI 提供商：OpenAI、DeepSeek、通义千问、智谱 GLM、Moonshot (Kimi)、豆包、腾讯混元、百度千帆、讯飞星火、LM Studio（本地模型）。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="结果可视化">结果可视化<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E7%BB%93%E6%9E%9C%E5%8F%AF%E8%A7%86%E5%8C%96" class="hash-link" aria-label="结果可视化的直接链接" title="结果可视化的直接链接" translate="no">​</a></h3>
<p>查询结果支持三种呈现方式：</p>
<ul>
<li class=""><strong>表格</strong>：分页（16 / 32 / 128 行/页），显示总行数和执行耗时</li>
<li class=""><strong>折线图 / 柱状图</strong>：ECharts 渲染，自动识别数值列作为 Y 轴、时间列作为 X 轴。支持悬停详情、图例切换、区域缩放</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="查询历史与收藏">查询历史与收藏<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%9F%A5%E8%AF%A2%E5%8E%86%E5%8F%B2%E4%B8%8E%E6%94%B6%E8%97%8F" class="hash-link" aria-label="查询历史与收藏的直接链接" title="查询历史与收藏的直接链接" translate="no">​</a></h3>
<p>右侧抽屉面板 分为 History 和 Favorites 两个 Tab。最近 50 条查询自动记录，点击即可回填到编辑器。收藏夹独立存储，不受历史清除影响。数据通过 localStorage 持久化。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="导出与-dashboard-集成">导出与 Dashboard 集成<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%AF%BC%E5%87%BA%E4%B8%8E-dashboard-%E9%9B%86%E6%88%90" class="hash-link" aria-label="导出与 Dashboard 集成的直接链接" title="导出与 Dashboard 集成的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>数据导出</strong>：CSV 或 JSON 一键下载</li>
<li class=""><strong>保存到仪表盘</strong>：选择 Cell 名称、可视化类型和目标 Dashboard，SQL 查询和数据库上下文随之一同保存，在 Dashboard 中自动渲染</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="写入数据write-data">写入数据（Write Data）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AEwrite-data" class="hash-link" aria-label="写入数据（Write Data）的直接链接" title="写入数据（Write Data）的直接链接" translate="no">​</a></h2>
<p>提供三种数据导入方式的统一入口。</p>
<p><img decoding="async" loading="lazy" alt="写入数据" src="http://docs.lmgateway.com/assets/images/write-data-12a6ff0f8d8c1addf6e06f5d0a16a1d6.png" width="1280" height="800" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="行协议line-protocol">行协议（Line Protocol）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E8%A1%8C%E5%8D%8F%E8%AE%AEline-protocol" class="hash-link" aria-label="行协议（Line Protocol）的直接链接" title="行协议（Line Protocol）的直接链接" translate="no">​</a></h3>
<p>在 monospace 文本框中直接粘贴行协议数据，自动校验格式（检查 measurement 名、tag 集、field 集）。支持以 <code>#</code> 开头注释和多行批量写入。写入时按每 500 行切块发送，单块失败自动重试 2 次。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="csv--parquet-文件导入">CSV / Parquet 文件导入<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#csv--parquet-%E6%96%87%E4%BB%B6%E5%AF%BC%E5%85%A5" class="hash-link" aria-label="CSV / Parquet 文件导入的直接链接" title="CSV / Parquet 文件导入的直接链接" translate="no">​</a></h3>
<p>选择目标数据库和 Measurement 后，上传本地 CSV 或 Parquet 文件，通过 HTTP multipart/form-data 发送到服务端导入。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="示例数据集">示例数据集<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E7%A4%BA%E4%BE%8B%E6%95%B0%E6%8D%AE%E9%9B%86" class="hash-link" aria-label="示例数据集的直接链接" title="示例数据集的直接链接" translate="no">​</a></h3>
<p>内置 6 组示例数据，一键导入到当前数据库：</p>
<ul>
<li class="">传感器数据</li>
<li class="">传感器操作日志</li>
<li class="">湾区天气</li>
<li class="">风力数据</li>
<li class="">比特币价格数据</li>
<li class="">随机数生成</li>
</ul>
<p>右侧面板实时展示当前数据库的 Measurement 列表，导入完成后立即刷新。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="仪表盘dashboards">仪表盘（Dashboards）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E4%BB%AA%E8%A1%A8%E7%9B%98dashboards" class="hash-link" aria-label="仪表盘（Dashboards）的直接链接" title="仪表盘（Dashboards）的直接链接" translate="no">​</a></h2>
<p>自定义可视化仪表盘构建器，支持拖拽布局和多源查询。</p>
<p><img decoding="async" loading="lazy" alt="仪表盘" src="http://docs.lmgateway.com/assets/images/dashboards-0a258f4a0313709abefae1200ae51669.png" width="2992" height="1626" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="列表视图">列表视图<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%88%97%E8%A1%A8%E8%A7%86%E5%9B%BE" class="hash-link" aria-label="列表视图的直接链接" title="列表视图的直接链接" translate="no">​</a></h3>
<p>卡片网格展示所有仪表盘，支持搜索、新建、编辑名称/描述、删除。每个卡片显示 Cell 数量。</p>
<p><strong>导入/导出</strong>：仪表盘以 JSON 格式导入导出，便于备份和团队共享。导入时自动重新生成 ID 避免冲突。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="详情视图拖拽编辑">详情视图（拖拽编辑）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E8%AF%A6%E6%83%85%E8%A7%86%E5%9B%BE%E6%8B%96%E6%8B%BD%E7%BC%96%E8%BE%91" class="hash-link" aria-label="详情视图（拖拽编辑）的直接链接" title="详情视图（拖拽编辑）的直接链接" translate="no">​</a></h3>
<p>进入单个仪表盘后：</p>
<ul>
<li class=""><strong>时间范围</strong>：全局时间选择器（15m ~ 30d，自定义），所有 Cell 的 SQL 时间条件自动同步</li>
<li class=""><strong>自动刷新</strong>：支持 5 秒到 5 分钟多档间隔，满足实时监控场景</li>
<li class=""><strong>全屏模式</strong>：隐藏侧边栏，最大化可视面积</li>
<li class=""><strong>12 列网格布局</strong>：基于 react-grid-layout 的自由拖拽和缩放，Cell 尺寸可任意调整</li>
<li class=""><strong>Cell 操作</strong>：悬停显示重命名、配置查询、删除按钮</li>
</ul>
<p>每个 Cell 可绑定一条 SQL 查询，执行后以表格、折线图或柱状图渲染。点击"配置查询"跳转到数据探索器编辑 SQL，支持回传上下文。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="连续查询--cqcontinuous-queries">连续查询 — CQ（Continuous Queries）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E8%BF%9E%E7%BB%AD%E6%9F%A5%E8%AF%A2--cqcontinuous-queries" class="hash-link" aria-label="连续查询 — CQ（Continuous Queries）的直接链接" title="连续查询 — CQ（Continuous Queries）的直接链接" translate="no">​</a></h2>
<p>定期执行 SQL 并将结果写入目标 Measurement 的自动化任务管理。</p>
<p><img decoding="async" loading="lazy" alt="连续查询" src="http://docs.lmgateway.com/assets/images/plugins-cq-ceb1414a9a39df26af3fe6537d7de78b.png" width="2992" height="1626" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="功能要点-2">功能要点<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%8A%9F%E8%83%BD%E8%A6%81%E7%82%B9-2" class="hash-link" aria-label="功能要点的直接链接" title="功能要点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>创建 CQ</strong>：指定名称、数据库、源 Measurement、目标 Measurement、执行间隔（如 <code>1h</code>）、SQL 语句。SQL 中必须包含 <code>{start_time}</code> 和 <code>{end_time}</code> 占位符。平台提供模板自动生成。</li>
<li class=""><strong>启用/禁用</strong>：滑动开关实时切换，绿色为启用、灰色为停用</li>
<li class=""><strong>手动执行</strong>：点击 Play 按钮立即触发一次执行</li>
<li class=""><strong>执行历史</strong>：查看最近 30 次执行记录，包含状态、写入行数、耗时和错误信息</li>
<li class=""><strong>筛选</strong>：按数据库名筛选，按启用/禁用状态分类查看</li>
<li class=""><strong>可选参数</strong>：保留天数（Retention Days）、删除源数据天数（Delete Source After Days）</li>
</ul>
<p>典型场景：每小时聚合传感器数据并写入汇总表，实现数据降采样和长期趋势分析。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mqtt-订阅mqtt-subscriptions">MQTT 订阅（MQTT Subscriptions）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#mqtt-%E8%AE%A2%E9%98%85mqtt-subscriptions" class="hash-link" aria-label="MQTT 订阅（MQTT Subscriptions）的直接链接" title="MQTT 订阅（MQTT Subscriptions）的直接链接" translate="no">​</a></h2>
<p>管理从 MQTT Broker 实时摄取数据到数据库的订阅任务。</p>
<p><img decoding="async" loading="lazy" alt="MQTT 订阅" src="http://docs.lmgateway.com/assets/images/plugins-mqtt-32e2e2788e8dc55635d0b0a7d59fea20.png" width="2992" height="1626" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="功能要点-3">功能要点<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%8A%9F%E8%83%BD%E8%A6%81%E7%82%B9-3" class="hash-link" aria-label="功能要点的直接链接" title="功能要点的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>创建订阅</strong>：填写名称、Broker URL（如 <code>mqtt://localhost:1883</code>）、Topic Filter（支持逗号分隔多个 Topic 及 <code>+</code> 通配符）、目标数据库、QoS 级别（0/1/2）</li>
<li class=""><strong>启动/停止</strong>：Play 和 Stop 按钮控制订阅运行状态，状态标签颜色实时反馈（蓝色运行中、灰色已停止）</li>
<li class=""><strong>编辑/删除</strong>：修改订阅参数，删除前需先停止</li>
<li class=""><strong>自动启动</strong>：创建时可勾选 Auto Start，保存后立即可用</li>
</ul>
<p>典型场景：配置 <code>device/+/temperature</code> 通配 Topic，自动将大量边缘设备上报的温度数据实时写入时序库，配合连续查询实现毫秒级降采样。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="权限管理--token-与-rbac">权限管理 — Token 与 RBAC<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86--token-%E4%B8%8E-rbac" class="hash-link" aria-label="权限管理 — Token 与 RBAC的直接链接" title="权限管理 — Token 与 RBAC的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="api-token-管理">API Token 管理<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#api-token-%E7%AE%A1%E7%90%86" class="hash-link" aria-label="API Token 管理的直接链接" title="API Token 管理的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Token 管理" src="http://docs.lmgateway.com/assets/images/tokens-bad2326f270873759620da67949fe650.png" width="2992" height="1626" class="img_ev3q"></p>
<p>以表格形式进行 Token 全生命周期管理：</p>
<ul>
<li class=""><strong>创建 Token</strong>：填写名称、描述，支持三种权限模式——<!-- -->
<ul>
<li class="">默认（Read + Write）：全局读写</li>
<li class="">自定义：勾选 Read / Write / Delete / Admin 作用域</li>
<li class="">仅 RBAC：Token 自身无全局权限，完全由团队成员关系决定访问范围</li>
</ul>
</li>
<li class=""><strong>过期时间</strong>：永不过期或 24h / 7d / 30d / 90d</li>
<li class=""><strong>轮换（Rotate）</strong>：使旧密钥失效并签发新密钥，新值仅显示一次</li>
<li class=""><strong>吊销（Revoke）</strong>：禁用但保留审计记录</li>
<li class=""><strong>密钥展示</strong>：创建/轮换后弹出一次性展示弹窗，提供"复制到剪贴板"按钮</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rbac-权限体系">RBAC 权限体系<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#rbac-%E6%9D%83%E9%99%90%E4%BD%93%E7%B3%BB" class="hash-link" aria-label="RBAC 权限体系的直接链接" title="RBAC 权限体系的直接链接" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="RBAC 管理" src="http://docs.lmgateway.com/assets/images/rbac-f67400efadd24185f68d7a2978ec1b5a.png" width="1280" height="800" class="img_ev3q"></p>
<p>三级层级树管理数据访问权限：</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">组织（Organization）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> └── 团队（Team）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      └── 角色（Role）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">           └── 测量权限（Measurement Permission）</span><br></div></code></pre></div></div>
<ul>
<li class=""><strong>组织</strong>：顶级隔离单元，可创建多个组织</li>
<li class=""><strong>团队</strong>：组织内的协作单元，支持 Token 绑定向导</li>
<li class=""><strong>角色</strong>：绑定 database_pattern + 权限集（read/write/delete/admin）</li>
<li class=""><strong>测量权限</strong>：更细粒度的 measurement_pattern 级别控制</li>
</ul>
<p><strong>Token 绑定向导</strong>：三步式引导流程——选择 Token → 确认目标团队 → 预览生效权限 → 确认绑定。绑定后该 Token 自动获得对应团队和角色的数据访问权限。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="应用集成integrations">应用集成（Integrations）<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90integrations" class="hash-link" aria-label="应用集成（Integrations）的直接链接" title="应用集成（Integrations）的直接链接" translate="no">​</a></h2>
<p>配置 AI 大模型以启用自然语言查询（NL2SQL）能力。</p>
<p><img decoding="async" loading="lazy" alt="应用集成" src="http://docs.lmgateway.com/assets/images/integrations-600c10b10bfb5c060b2eed2b6e838c8d.png" width="1280" height="800" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="配置项">配置项<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E9%85%8D%E7%BD%AE%E9%A1%B9" class="hash-link" aria-label="配置项的直接链接" title="配置项的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>AI 提供商</strong>：11 个选项（OpenAI / DeepSeek / 通义千问 / 智谱 GLM / Moonshot / 豆包 / 腾讯混元 / 百度千帆 / 讯飞星火 / LM Studio / 自定义），切换时自动填入默认 API 端点</li>
<li class=""><strong>API Key</strong>：密码输入框，支持显隐切换</li>
<li class=""><strong>Base URL</strong>：可覆盖 API 端点地址</li>
<li class=""><strong>自定义指令</strong>：引导 AI 生成符合项目需求的 SQL。支持直接编辑、上传 <code>.txt</code>/<code>.md</code> 文件，或使用内置示例模板</li>
</ul>
<p>配置保存后，在数据探索器的 Natural Language 模式中即可使用。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="总结">总结<a href="http://docs.lmgateway.com/blog/iotedgedb-explorer-full-guide#%E6%80%BB%E7%BB%93" class="hash-link" aria-label="总结的直接链接" title="总结的直接链接" translate="no">​</a></h2>
<p>IotEdge DB Explorer 的 12 个模块构成了一条从<strong>连接 → 建库 → 查询 → 写入 → 可视化 → 自动化 → 权限管控</strong>的完整工具链：</p>
<table><thead><tr><th>阶段</th><th>模块</th><th>核心能力</th></tr></thead><tbody><tr><td>接入</td><td>Servers</td><td>多节点连接、Token 认证</td></tr><tr><td>建库</td><td>Databases</td><td>数据库 CRUD、Measurement 浏览</td></tr><tr><td>查询</td><td>Data Explorer</td><td>SQL 编辑 + NL2SQL + 可视化 + 导出</td></tr><tr><td>摄入</td><td>Write Data</td><td>行协议 / CSV / Parquet + 示例数据</td></tr><tr><td>观察</td><td>System Overview</td><td>15 类运行时指标 + 时序趋势图</td></tr><tr><td>呈现</td><td>Dashboards</td><td>拖拽式布局 + 多源查询 + 自动刷新</td></tr><tr><td>自动化</td><td>CQ / MQTT</td><td>定时降采样 + 实时流摄取</td></tr><tr><td>管控</td><td>Tokens / RBAC</td><td>Token 全生命周期 + 三级权限层级</td></tr><tr><td>智能</td><td>Integrations</td><td>AI 大模型接入，赋能自然语言查询</td></tr></tbody></table>
<p>无论你是运维人员巡检节点状态、数据工程师探索时序模式，还是平台管理员管控访问权限，IotEdge DB Explorer 都提供了对应的专业工具。</p>]]></content>
        <author>
            <name>mengdal</name>
        </author>
        <category label="产品" term="产品"/>
        <category label="教程" term="教程"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[压缩机制深度解析]]></title>
        <id>http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive</id>
        <link href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive"/>
        <updated>2026-04-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[每一个分析型数据库都有个“不那么体面”的秘密：写入速度与查询速度往往天然对立。写入想要小而频繁的落盘；查询却偏好大而有序的文件。IotEdgeDB 的 compaction（压缩）系统，正是连接这两端的桥梁。]]></summary>
        <content type="html"><![CDATA[<p>每一个分析型数据库都有个“不那么体面”的秘密：<strong>写入速度</strong>与<strong>查询速度</strong>往往天然对立。写入想要小而频繁的落盘；查询却偏好大而有序的文件。IotEdgeDB 的 compaction（压缩）系统，正是连接这两端的桥梁。
这篇文章会带你看清它到底怎么运作。</p>
<!-- -->
<p>下面我们来看看它到底是怎么工作的。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="问题小文件过多迟早会拖垮系统">问题：小文件过多，迟早会拖垮系统<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E9%97%AE%E9%A2%98%E5%B0%8F%E6%96%87%E4%BB%B6%E8%BF%87%E5%A4%9A%E8%BF%9F%E6%97%A9%E4%BC%9A%E6%8B%96%E5%9E%AE%E7%B3%BB%E7%BB%9F" class="hash-link" aria-label="问题：小文件过多，迟早会拖垮系统的直接链接" title="问题：小文件过多，迟早会拖垮系统的直接链接" translate="no">​</a></h2>
<p>IotEdgeDB 大约每 5 秒就会把内存中的缓冲区刷新成一个 Parquet 文件（这个间隔可以通过 <code>max_buffer_age_ms</code> 配置）。这样做的好处是数据落盘快，可靠性高；但代价也很明显：如果某个指标持续高频写入，一小时内可能会产生成百上千个小文件。</p>
<p>例如，某个小时内磁盘上的文件可能长这样：</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140005_123456789.parquet (42 KB)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140010_987654321.parquet (38 KB)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140015_456789123.parquet (41 KB)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">...（还有 100 多个文件）</span><br></div></code></pre></div></div>
<p>每个文件本身都是合法的 Parquet 文件，也包含完整的元数据、压缩和表结构信息。但当你执行 <code>SELECT * FROM metrics.cpu WHERE time &gt; now() - INTERVAL '24 hours'</code> 这类查询时，DuckDB 就不得不逐个打开这些文件、读取元数据并扫描内容。对于本来应该很快的查询来说，这样的文件系统开销实在太大了。</p>
<p>压缩机制就是为了解决这个问题。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="两级压缩按小时压缩再按天压缩">两级压缩：按小时压缩，再按天压缩<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E4%B8%A4%E7%BA%A7%E5%8E%8B%E7%BC%A9%E6%8C%89%E5%B0%8F%E6%97%B6%E5%8E%8B%E7%BC%A9%E5%86%8D%E6%8C%89%E5%A4%A9%E5%8E%8B%E7%BC%A9" class="hash-link" aria-label="两级压缩：按小时压缩，再按天压缩的直接链接" title="两级压缩：按小时压缩，再按天压缩的直接链接" translate="no">​</a></h2>
<p>IotEdgeDB 采用了两层压缩模型。这不是为了“炫技”，而是对问题形态最自然的拆解。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="小时压缩">小时压缩<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E5%B0%8F%E6%97%B6%E5%8E%8B%E7%BC%A9" class="hash-link" aria-label="小时压缩的直接链接" title="小时压缩的直接链接" translate="no">​</a></h3>
<p>小时压缩每小时执行一次，默认在整点后的第 5 分钟触发。它会把某个小时分区里所有零散的小文件合并成一个文件。</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># 压缩前（100+ 个文件，总大小约 4 MB）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140005_*.parquet</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140010_*.parquet</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">...</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># 压缩后（1 个文件，总大小约 4 MB，且已经按时间排序）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/14/cpu_20260415_140500_compacted.parquet</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="按天压缩">按天压缩<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E6%8C%89%E5%A4%A9%E5%8E%8B%E7%BC%A9" class="hash-link" aria-label="按天压缩的直接链接" title="按天压缩的直接链接" translate="no">​</a></h3>
<p>日级压缩每天执行一次，默认在凌晨 3 点触发。它会把一天内所有已经小时压缩过的文件再合并成一个更大的文件。</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># 压缩前（24 个小时级文件，总大小约 100 MB）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/00/cpu_*_compacted.parquet</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/01/cpu_*_compacted.parquet</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">...</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/23/cpu_*_compacted.parquet</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># 压缩后（1 个文件，每天 1 个）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">metrics/cpu/2026/04/15/cpu_20260416_030000_daily.parquet</span><br></div></code></pre></div></div>
<p>最终效果是：近期数据保留在少量小时级文件中，适合查询“今天”的时间范围；历史数据则被收敛到日级文件中，更适合跨周、跨月的分析查询。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="一次压缩任务到底做了什么">一次压缩任务到底做了什么<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E4%B8%80%E6%AC%A1%E5%8E%8B%E7%BC%A9%E4%BB%BB%E5%8A%A1%E5%88%B0%E5%BA%95%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88" class="hash-link" aria-label="一次压缩任务到底做了什么的直接链接" title="一次压缩任务到底做了什么的直接链接" translate="no">​</a></h2>
<p>每个压缩任务都会经历一个 5 阶段流水线：</p>
<ol>
<li class="">
<p><strong>下载</strong> —— 并行下载（4 个 worker）把对象存储中的文件拉到本地临时目录。无论数据存放在本地磁盘、S3 还是 Azure Blob，这一步都适用。</p>
</li>
<li class="">
<p><strong>校验</strong> —— 做一次快速的 Parquet 特征码检查：总共只读取 8 个字节，分别检查文件头和文件尾是否都是 <code>PAR1</code>。这里不会用 DuckDB 的 <code>read_parquet()</code> 做校验，因为那会把整个文件加载进内存；单文件还好，成百上千个文件就很危险了。</p>
</li>
<li class="">
<p><strong>合并</strong> —— 这一步由 DuckDB 负责真正的重活：</p>
</li>
</ol>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">COPY </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">FROM</span><span class="token plain"> read_parquet</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">'file1.parquet'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'file2.parquet'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    union_by_name </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">time</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">TO</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'output_compacted.parquet'</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  FORMAT PARQUET</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  COMPRESSION ZSTD</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  COMPRESSION_LEVEL </span><span class="token number" style="color:#36acaa">3</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  ROW_GROUP_SIZE </span><span class="token number" style="color:#36acaa">122880</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><br></div></code></pre></div></div>
<p>这里有几个关键点：</p>
<ul>
<li class=""><code>union_by_name=true</code> 用来处理 schema 演进。如果某个 measurement 上周二新增了一列，那么旧文件里没有这列也没关系，DuckDB 会自动补成 <code>NULL</code>。</li>
<li class=""><code>ORDER BY time</code>（或者你自定义的排序键）能保证输出文件按查询友好的顺序排列。</li>
<li class=""><code>ROW_GROUP_SIZE 122880</code>（每组约 12 万行）在 DuckDB 的读取粒度和内存占用之间取得平衡。</li>
<li class=""><code>ZSTD</code> 压缩级别 3 能在压缩率和 CPU 开销之间取得很好的折中。</li>
</ul>
<ol start="4">
<li class="">
<p><strong>上传</strong> —— 将压缩后的文件流式上传回存储。</p>
</li>
<li class="">
<p><strong>删除</strong> —— 删除原始文件。只有在第 2 步通过校验的文件，才会进入删除流程；我们绝不会删除那些没有成功压缩的文件。</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="为什么要放到子进程里跑">为什么要放到子进程里跑<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%94%BE%E5%88%B0%E5%AD%90%E8%BF%9B%E7%A8%8B%E9%87%8C%E8%B7%91" class="hash-link" aria-label="为什么要放到子进程里跑的直接链接" title="为什么要放到子进程里跑的直接链接" translate="no">​</a></h2>
<p>这里有一个我们花了很久才摸清楚的细节：DuckDB 默认使用 <code>jemalloc</code> 作为内存分配器。<code>jemalloc</code> 性能很好，也能减少内存碎片，但它有个特点——即使你关闭了连接，也不会把所有内存完全还给操作系统，而是保留在 arena 里复用。</p>
<p>如果压缩任务直接跑在长期运行的 API 进程里，每一次压缩都会留下些内存痕迹。跑个几十次之后，进程里可能就积累了好几 GB“已经不用了、但还占着”的内存。放在有内存限制的容器里，这就是典型的 OOM 事故前兆。</p>
<p>我们的解决方案很直接：<strong>每个压缩任务都放到子进程里执行。</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">IotEdgeDB（主进程） → 启动 → IotEdgeDB compact --job-stdin（子进程）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                     ↓</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">             新建 DuckDB 连接</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">             执行 5 阶段流水线</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">             退出 → 所有内存归还给操作系统</span><br></div></code></pre></div></div>
<p>主进程把任务配置序列化成 JSON 写到标准输入，子进程负责执行压缩，把结果写到标准输出，然后退出。进程一结束，操作系统就会回收所有资源——包括 <code>jemalloc</code> arena、DuckDB 缓冲区、Arrow 数组等等。</p>
<p>这样还有一个额外好处：如果某个压缩任务 OOM 了，也不会把整个 API 服务拖死。主进程只需要记录失败日志，然后继续处理下一个分区即可。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="自动去重零开销的重复数据剔除">自动去重：零开销的重复数据剔除<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E8%87%AA%E5%8A%A8%E5%8E%BB%E9%87%8D%E9%9B%B6%E5%BC%80%E9%94%80%E7%9A%84%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE%E5%89%94%E9%99%A4" class="hash-link" aria-label="自动去重：零开销的重复数据剔除的直接链接" title="自动去重：零开销的重复数据剔除的直接链接" translate="no">​</a></h2>
<p>如果你在写入数据时使用了标签列（比如 <code>host</code>、<code>region</code>、<code>device_id</code>），IotEdgeDB 会把这些元数据存到 Parquet 文件的 footer 中。压缩阶段如果检测到这些标签元数据，就会自动做去重：</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> EXCLUDE </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">__dedup_rn</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">FROM</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">SELECT</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">*</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">         ROW_NUMBER</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">OVER</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">           </span><span class="token keyword" style="color:#00009f">PARTITION</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"host"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"region"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"time"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">           </span><span class="token keyword" style="color:#00009f">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"time"</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">DESC</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">         </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">AS</span><span class="token plain"> __dedup_rn</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">FROM</span><span class="token plain"> read_parquet</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">.</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> union_by_name </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">WHERE</span><span class="token plain"> __dedup_rn </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">time</span><br></div></code></pre></div></div>
<p>这就是典型的“Last-write-wins”语义。如果同一个 <code>(host, region, time)</code> 组合在多个文件里重复出现了——可能来自重试、延迟到达的数据，或者重叠的写入窗口——最终只会保留最新的一条记录，而且这个过程是静默完成的，不需要额外配置。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="通过清单文件做崩溃恢复">通过清单文件做崩溃恢复<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E9%80%9A%E8%BF%87%E6%B8%85%E5%8D%95%E6%96%87%E4%BB%B6%E5%81%9A%E5%B4%A9%E6%BA%83%E6%81%A2%E5%A4%8D" class="hash-link" aria-label="通过清单文件做崩溃恢复的直接链接" title="通过清单文件做崩溃恢复的直接链接" translate="no">​</a></h2>
<p>如果 IotEdgeDB 在压缩过程中崩溃了怎么办？答案是：我们会在上传压缩结果之前先写一份清单文件（manifest）。</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">_compaction_state/hourly/metrics/cpu_2026_04_15_14_{jobID}.json</span><br></div></code></pre></div></div>
<p>这份清单会记录当前正在压缩哪些输入文件，以及输出文件会放到哪里。不同阶段出问题时，系统的行为如下：</p>
<ul>
<li class=""><strong>上传前崩溃</strong>：只有 manifest 存在，输出文件还没生成。下一轮会忽略这份 manifest，从头重试。</li>
<li class=""><strong>上传后、删除前崩溃</strong>：manifest 和输出文件都在。下一轮会先校验输出文件，然后补做输入文件删除。</li>
<li class=""><strong>删除后</strong>：manifest 被清理掉，整个流程结束。</li>
</ul>
<p>这样一来，压缩任务就具备了幂等性。无论你在哪个时点崩溃，都可以安全重启，不会重复写入，也不会丢数据。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="配置示例">配置示例<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E9%85%8D%E7%BD%AE%E7%A4%BA%E4%BE%8B" class="hash-link" aria-label="配置示例的直接链接" title="配置示例的直接链接" translate="no">​</a></h2>
<p>下面是一份实用的配置，展示了一些最常用的参数：</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">compaction:</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  hourly_schedule: "5 * * * *"        # 每小时的 :05 执行</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  daily_schedule: "0 3 * * *"         # 每天凌晨 3 点执行</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  hourly_min_files: 10                # 少于 10 个文件先不压缩</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  daily_min_files: 12                 # 约半天的小时文件量再压缩</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  hourly_min_age_hours: 1             # 等待写入结束</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  daily_min_age_hours: 24             # 等待整天数据都到齐</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  max_concurrent: 2                   # 并行任务数（CPU 密集型）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  daily_skip_file_age_check_days: 7    # 跳过冷数据更新检查</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">ingest:</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  sort_keys:</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    - "cpu:host,time"                # cpu 数据按 host、time 排序</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    - "network:interface,time"       # network 数据按 interface、time 排序</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  default_sort_keys: "time"           # 其他数据默认按 time 排序</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="api手动触发与监控">API：手动触发与监控<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#api%E6%89%8B%E5%8A%A8%E8%A7%A6%E5%8F%91%E4%B8%8E%E7%9B%91%E6%8E%A7" class="hash-link" aria-label="API：手动触发与监控的直接链接" title="API：手动触发与监控的直接链接" translate="no">​</a></h2>
<p>你不必完全依赖调度器，也可以手动触发压缩：</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">curl -X POST http://localhost:8000/api/v1/compaction/trigger \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -H "Authorization: Bearer $TOKEN" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  -d 'tier=hourly&amp;database=metrics'</span><br></div></code></pre></div></div>
<p>查看当前状态也很方便：</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># 当前状态</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">curl http://localhost:8000/api/v1/compaction/status</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># 历史统计</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">curl http://localhost:8000/api/v1/compaction/stats</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"># 当前有哪些分区满足压缩条件</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">curl http://localhost:8000/api/v1/compaction/candidates</span><br></div></code></pre></div></div>
<p>其中 <code>/candidates</code> 特别实用：它会扫描存储，列出当前哪些分区已经积累到足够的文件数，可以立即压缩。这样你就能决定是手动触发，还是继续等调度器执行。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="为什么这件事很重要">为什么这件事很重要<a href="http://docs.lmgateway.com/blog/IotEdgeDB-compaction-deep-dive#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%BB%B6%E4%BA%8B%E5%BE%88%E9%87%8D%E8%A6%81" class="hash-link" aria-label="为什么这件事很重要的直接链接" title="为什么这件事很重要的直接链接" translate="no">​</a></h2>
<p>如果没有压缩，一个每秒写入 10,000 条记录的 measurement，大约每小时就会生成 720 个文件。跑上一周，单个 measurement 的文件数就会超过 120,000 个。查询会变得越来越慢，S3 的 <code>LIST</code> 调用也会越来越贵，云账单更是会迅速变得难看。</p>
<p>而有了两级压缩，同样一周的数据最终只会落成 7 个日级文件。无论你已经持续写入了多久，查询性能都能保持稳定。</p>
<p>子进程模型确保压缩不会影响查询延迟；清单机制确保它不会丢数据；自动去重则让你不用再担心重试写入带来的重复记录。</p>
<p>这也许不是数据库里最“酷”的部分，但它却是系统在规模化场景下依然稳定运行的关键。</p>]]></content>
        <author>
            <name>mengdal</name>
        </author>
        <category label="产品" term="产品"/>
        <category label="工程" term="工程"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[开放数据的价值]]></title>
        <id>http://docs.lmgateway.com/blog/open-data-value</id>
        <link href="http://docs.lmgateway.com/blog/open-data-value"/>
        <updated>2026-04-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[本文梳理 IIoT 场景下开放数据的价值：从 AI/ML 分析工具链到开放生态的优势，解释为什么开放格式与开放架构能带来更低成本、更高可扩展性与更好的可迁移性。]]></summary>
        <content type="html"><![CDATA[<p>本文梳理 IIoT 场景下开放数据的价值：从 AI/ML 分析工具链到开放生态的优势，解释为什么开放格式与开放架构能带来更低成本、更高可扩展性与更好的可迁移性。</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iiot-的人工智能机器学习和分析工具">IIoT 的人工智能、机器学习和分析工具<a href="http://docs.lmgateway.com/blog/open-data-value#iiot-%E7%9A%84%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%92%8C%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7" class="hash-link" aria-label="IIoT 的人工智能、机器学习和分析工具的直接链接" title="IIoT 的人工智能、机器学习和分析工具的直接链接" translate="no">​</a></h2>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="目-录">目 录<a href="http://docs.lmgateway.com/blog/open-data-value#%E7%9B%AE-%E5%BD%95" class="hash-link" aria-label="目 录的直接链接" title="目 录的直接链接" translate="no">​</a></h2>
<ul>
<li class="">引言</li>
<li class="">IIoT 中的人工智能用例</li>
<li class="">开放数据生态系统工具</li>
<li class="">开放数据工具的优势</li>
<li class="">时间序列数据在 IIoT 中的作用</li>
<li class="">数据驱动的决策</li>
<li class="">用于 IIoT 的 IotEdgeDB</li>
<li class="">结论</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="引言">引言<a href="http://docs.lmgateway.com/blog/open-data-value#%E5%BC%95%E8%A8%80" class="hash-link" aria-label="引言的直接链接" title="引言的直接链接" translate="no">​</a></h2>
<p>工业正在借助工业物联网（IIoT）迅速转型。它将机器、系统与传感器连接起来，在制造、能源和物流等行业中创造更智能、更自动化的流程——这些我们在日常生活中观察和使用。IIoT 正在帮助企业提高生产力、减少停机时间，在工业自动化、监控和预测性维护方面发挥着越来越重要的作用。</p>
<p>在 IIoT 环境中，开放数据环境是必需的。它使您能够修改系统以满足特定需求，同时控制开支。由于不受固定、有限系统的约束，您也可以通过这种开放方式修改解决方案。无论您是扩展运营还是集成新技术，开放数据都能让您更轻松地管理和优化工业基础设施。</p>
<p>支持 IIoT 系统的工具也变得越来越复杂。在当前的 IIoT 解决方案中，人工智能（AI）和列式数据库是实现海量数据实时分析的关键组件。对于希望在工业领域保持竞争优势的人来说，这些技术是必需的，因为它们有助于更好地决策、更准确的预测和更智能的资源配置。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="用于-iiot-的人工智能工具实现更智能的数据洞察">用于 IIoT 的人工智能工具：实现更智能的数据洞察<a href="http://docs.lmgateway.com/blog/open-data-value#%E7%94%A8%E4%BA%8E-iiot-%E7%9A%84%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%B7%A5%E5%85%B7%E5%AE%9E%E7%8E%B0%E6%9B%B4%E6%99%BA%E8%83%BD%E7%9A%84%E6%95%B0%E6%8D%AE%E6%B4%9E%E5%AF%9F" class="hash-link" aria-label="用于 IIoT 的人工智能工具：实现更智能的数据洞察的直接链接" title="用于 IIoT 的人工智能工具：实现更智能的数据洞察的直接链接" translate="no">​</a></h2>
<p>借助人工智能（AI），IIoT 系统以更具创造性的方式处理数据。它使您能够预测、监控和优化业务流程。人工智能工具可以通过检测问题或进行实时调整来改进您的数据。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iiot-中人工智能的用例">IIoT 中人工智能的用例<a href="http://docs.lmgateway.com/blog/open-data-value#iiot-%E4%B8%AD%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E7%9A%84%E7%94%A8%E4%BE%8B" class="hash-link" aria-label="IIoT 中人工智能的用例的直接链接" title="IIoT 中人工智能的用例的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-预测性维护">1. 预测性维护<a href="http://docs.lmgateway.com/blog/open-data-value#1-%E9%A2%84%E6%B5%8B%E6%80%A7%E7%BB%B4%E6%8A%A4" class="hash-link" aria-label="1. 预测性维护的直接链接" title="1. 预测性维护的直接链接" translate="no">​</a></h3>
<p>通过实时检查机器数据，人工智能可以预测设备故障，为您节省维修费用并避免停机。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-异常检测">2. 异常检测<a href="http://docs.lmgateway.com/blog/open-data-value#2-%E5%BC%82%E5%B8%B8%E6%A3%80%E6%B5%8B" class="hash-link" aria-label="2. 异常检测的直接链接" title="2. 异常检测的直接链接" translate="no">​</a></h3>
<p>通过识别传感器数据中的异常，人工智能帮助您在问题变得更大之前发现潜在的设备问题。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-流程优化">3. 流程优化<a href="http://docs.lmgateway.com/blog/open-data-value#3-%E6%B5%81%E7%A8%8B%E4%BC%98%E5%8C%96" class="hash-link" aria-label="3. 流程优化的直接链接" title="3. 流程优化的直接链接" translate="no">​</a></h3>
<p>人工智能通过分析历史数据帮助优化工业流程，以提高生产率和效率。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-能源管理">4. 能源管理<a href="http://docs.lmgateway.com/blog/open-data-value#4-%E8%83%BD%E6%BA%90%E7%AE%A1%E7%90%86" class="hash-link" aria-label="4. 能源管理的直接链接" title="4. 能源管理的直接链接" translate="no">​</a></h3>
<p>人工智能通过跟踪消耗模式并优化能源使用来帮助您减少浪费并提高可持续性。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-质量控制">5. 质量控制<a href="http://docs.lmgateway.com/blog/open-data-value#5-%E8%B4%A8%E9%87%8F%E6%8E%A7%E5%88%B6" class="hash-link" aria-label="5. 质量控制的直接链接" title="5. 质量控制的直接链接" translate="no">​</a></h3>
<p>人工智能使用实时生产数据分析来进行自动化质量检查，确保产品在发货前符合要求。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="开放数据生态系统人工智能机器学习工具">开放数据生态系统人工智能/机器学习工具<a href="http://docs.lmgateway.com/blog/open-data-value#%E5%BC%80%E6%94%BE%E6%95%B0%E6%8D%AE%E7%94%9F%E6%80%81%E7%B3%BB%E7%BB%9F%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%B7%A5%E5%85%B7" class="hash-link" aria-label="开放数据生态系统人工智能/机器学习工具的直接链接" title="开放数据生态系统人工智能/机器学习工具的直接链接" translate="no">​</a></h2>
<p>在 IIoT 环境中，开源人工智能/机器学习库对于实现异常检测、预测性维护和流程优化等高级功能至关重要。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-tensorflow">1. TensorFlow<a href="http://docs.lmgateway.com/blog/open-data-value#1-tensorflow" class="hash-link" aria-label="1. TensorFlow的直接链接" title="1. TensorFlow的直接链接" translate="no">​</a></h3>
<p>谷歌的开源库 TensorFlow 有助于在 IIoT 系统中进行异常检测和及时维护，因为它能够开发和部署机器学习模型。TensorFlow 是评估实时数据以实现更好决策的绝佳工具，因为它能够处理大量数据。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-scikit-learn">2. Scikit-Learn<a href="http://docs.lmgateway.com/blog/open-data-value#2-scikit-learn" class="hash-link" aria-label="2. Scikit-Learn的直接链接" title="2. Scikit-Learn的直接链接" translate="no">​</a></h3>
<p>Scikit-Learn 是一个轻量级的 Python 机器学习框架，最适合创建简单而现代的预测分析算法。它是 IIoT 应用的灵活解决方案，可用于分析历史传感器数据和优化工业流程，从分类到聚类。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-apache-spark-mllib">3. Apache Spark MLlib<a href="http://docs.lmgateway.com/blog/open-data-value#3-apache-spark-mllib" class="hash-link" aria-label="3. Apache Spark MLlib的直接链接" title="3. Apache Spark MLlib的直接链接" translate="no">​</a></h3>
<p>MLlib 是 Apache Spark 的机器学习库，专门处理海量数据。它支持分析和处理实时流数据，提供实时分析，并支持可扩展的机器学习算法，非常适合处理物联网数据以支持持续优化。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-keras">4. Keras<a href="http://docs.lmgateway.com/blog/open-data-value#4-keras" class="hash-link" aria-label="4. Keras的直接链接" title="4. Keras的直接链接" translate="no">​</a></h3>
<p>Keras 是基于 TensorFlow 的高级神经网络库，具有易于使用的界面。它非常适合在依赖于异常检测和预测性维护的 IIoT 环境中创建和测试人工智能模型。由于其简单性，您可以以更少的代码行更快地创建人工智能模型。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-pytorch">5. PyTorch<a href="http://docs.lmgateway.com/blog/open-data-value#5-pytorch" class="hash-link" aria-label="5. PyTorch的直接链接" title="5. PyTorch的直接链接" translate="no">​</a></h3>
<p>PyTorch 是 Meta 的开源库，常用于深度学习应用。它是 IIoT 的有用工具，可用于实时分析和预测性维护。PyTorch 的动态处理图和直观界面便于开发人员更自然地构建复杂的人工智能模型。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="人工智能与列式数据库的集成">人工智能与列式数据库的集成<a href="http://docs.lmgateway.com/blog/open-data-value#%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%88%97%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E9%9B%86%E6%88%90" class="hash-link" aria-label="人工智能与列式数据库的集成的直接链接" title="人工智能与列式数据库的集成的直接链接" translate="no">​</a></h2>
<p>在 IIoT 中实现准确预测，需要将人工智能与列式数据库集成。随着时间推移收集信息，并使用人工智能模型来确定模式、趋势和行为。使用时间序列等数据训练和测试人工智能模型可以实现准确预测。通过这样做，您可以改善对设备故障或某些流程放缓等任何问题的响应时间。</p>
<p>但是，首先您必须拥有一个与开放数据生态系统连接的列式数据库，才能在 IIoT 设置中使用任何人工智能/机器学习算法。通过这种关系，您的系统可以将实时数据输入人工智能模型。这确保了生成的洞察与您的运营相关，并且您可以轻松地采取行动。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="为什么在-iiot-中使用开放数据生态系统工具">为什么在 IIoT 中使用开放数据生态系统工具？<a href="http://docs.lmgateway.com/blog/open-data-value#%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8-iiot-%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%BC%80%E6%94%BE%E6%95%B0%E6%8D%AE%E7%94%9F%E6%80%81%E7%B3%BB%E7%BB%9F%E5%B7%A5%E5%85%B7" class="hash-link" aria-label="为什么在 IIoT 中使用开放数据生态系统工具？的直接链接" title="为什么在 IIoT 中使用开放数据生态系统工具？的直接链接" translate="no">​</a></h2>
<p>使用开放数据生态系统的 IIoT 解决方案有多种好处，直接满足不同组织的需要。这些工具旨在改善数据分析、简化工作流程并促进互联系统网络的创新。以下是使用这些工具的主要优势：</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-可定制性和灵活性">1. 可定制性和灵活性<a href="http://docs.lmgateway.com/blog/open-data-value#1-%E5%8F%AF%E5%AE%9A%E5%88%B6%E6%80%A7%E5%92%8C%E7%81%B5%E6%B4%BB%E6%80%A7" class="hash-link" aria-label="1. 可定制性和灵活性的直接链接" title="1. 可定制性和灵活性的直接链接" translate="no">​</a></h3>
<p>开源工具可适应多种用例的能力使其适合制造、能源和物流等各行业的广泛应用。由于其无缝集成和可配置功能，您不会被单一解决方案所限制，这使您可以定制它们以满足您独特的运营需求。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-社区支持与创新">2. 社区支持与创新<a href="http://docs.lmgateway.com/blog/open-data-value#2-%E7%A4%BE%E5%8C%BA%E6%94%AF%E6%8C%81%E4%B8%8E%E5%88%9B%E6%96%B0" class="hash-link" aria-label="2. 社区支持与创新的直接链接" title="2. 社区支持与创新的直接链接" translate="no">​</a></h3>
<p>开放数据工具得益于全球开发者社区的持续创新和支持。您可以依靠强大的支持网络进行故障排除、增强和最佳实践。此外，随着最新技术进入市场，这些工具会不断更新。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-避免供应商锁定">3. 避免供应商锁定<a href="http://docs.lmgateway.com/blog/open-data-value#3-%E9%81%BF%E5%85%8D%E4%BE%9B%E5%BA%94%E5%95%86%E9%94%81%E5%AE%9A" class="hash-link" aria-label="3. 避免供应商锁定的直接链接" title="3. 避免供应商锁定的直接链接" translate="no">​</a></h3>
<p>使用开放数据生态系统解决方案的最大好处之一是减少供应商锁定。在不受版权系统限制的情况下，您可以根据需要更改、删除或替换组件。这为您提供了更大程度的控制权来决定 IIoT 生态系统应该如何运行。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-成本效益">4. 成本效益<a href="http://docs.lmgateway.com/blog/open-data-value#4-%E6%88%90%E6%9C%AC%E6%95%88%E7%9B%8A" class="hash-link" aria-label="4. 成本效益的直接链接" title="4. 成本效益的直接链接" translate="no">​</a></h3>
<p>许多开放数据工具成本低廉或免费。它们减少了昂贵软件带来的财务压力或预算问题。由于其成本效益，它们是企业充分利用资源的绝佳选择，您可以尝试、扩展和开发它们而无需大量投资。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="列式数据和数据库在-iiot-中的位置">列式数据和数据库在 IIoT 中的位置<a href="http://docs.lmgateway.com/blog/open-data-value#%E5%88%97%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9C%A8-iiot-%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE" class="hash-link" aria-label="列式数据和数据库在 IIoT 中的位置的直接链接" title="列式数据和数据库在 IIoT 中的位置的直接链接" translate="no">​</a></h2>
<p>在 IIoT 环境中，传感器和设备不断产生大量数据。这种数据可以由列式数据库轻松处理。它们有效地组织数据，让您分析趋势、识别异常并发现数据中的复杂模式。这些数据库提供对流程优化、预测性维护和监控至关重要的实时洞察。它们还可以帮助您做出重要的业务决策，使您在竞争激烈的市场中站稳脚跟。</p>
<p>通过将列式数据库与 IIoT 设备集成，您可以轻松跟踪历史数据。这使您能够开发用于优化复杂运营和生成更准确未来预测的人工智能/机器学习模型。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="数据驱动的决策">数据驱动的决策<a href="http://docs.lmgateway.com/blog/open-data-value#%E6%95%B0%E6%8D%AE%E9%A9%B1%E5%8A%A8%E7%9A%84%E5%86%B3%E7%AD%96" class="hash-link" aria-label="数据驱动的决策的直接链接" title="数据驱动的决策的直接链接" translate="no">​</a></h2>
<p>进行精确的数据驱动决策需要使用来自时间序列数据训练的人工智能模型。它们产生有用的洞察，通过检查历史趋势来帮助预测维护需求和改善运营。这些洞察可以降低昂贵问题的风险，提高机器效率，最终改善整体工业性能。通过将人工智能与时间序列数据相结合，您可以主动管理和持续改进工业流程。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="实时分析">实时分析<a href="http://docs.lmgateway.com/blog/open-data-value#%E5%AE%9E%E6%97%B6%E5%88%86%E6%9E%90" class="hash-link" aria-label="实时分析的直接链接" title="实时分析的直接链接" translate="no">​</a></h2>
<p>当开源数据工具与来自列式实时数据结合时，它们为工业运营提供动态和响应迅速的解决方案。这使您能够实时监控系统并立即识别和解决任何可能的问题。这种响应类型确保工业流程日复一日地持续改进，并避免任何应用程序停机。有了这些工具的帮助，您可以根据最新数据做出快速决策，确保应用程序顺利运行。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="可扩展性和灵活性">可扩展性和灵活性<a href="http://docs.lmgateway.com/blog/open-data-value#%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7%E5%92%8C%E7%81%B5%E6%B4%BB%E6%80%A7" class="hash-link" aria-label="可扩展性和灵活性的直接链接" title="可扩展性和灵活性的直接链接" translate="no">​</a></h2>
<p>可扩展性是开放数据系统的主要优势之一。它们没有私有系统的局限性和费用。因此，它们随着您的 IIoT 部署一起扩展。这些仪器非常适合大型或不断变化的企业，因为它们可以扩展并适应您不断变化的需求。这种灵活性使您能够轻松集成新技术并在不依赖单一供应商的情况下调整解决方案以满足您的独特需求。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iotedgedb领先的-iiot-列式分析数据库">IotEdgeDB：领先的 IIoT 列式分析数据库<a href="http://docs.lmgateway.com/blog/open-data-value#iotedgedb%E9%A2%86%E5%85%88%E7%9A%84-iiot-%E5%88%97%E5%BC%8F%E5%88%86%E6%9E%90%E6%95%B0%E6%8D%AE%E5%BA%93" class="hash-link" aria-label="IotEdgeDB：领先的 IIoT 列式分析数据库的直接链接" title="IotEdgeDB：领先的 IIoT 列式分析数据库的直接链接" translate="no">​</a></h2>
<p>IotEdgeDB 以高性能和可扩展性著称，是 IIoT 设备最受欢迎的时间序列数据库，因为它能够处理连接设备产生的大量数据。该数据库专门为处理列式数据而设计，可实时洞察工业运营。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="为什么高效的列式数据处理对-iiot-很重要"><strong>为什么高效的列式数据处理对 IIoT 很重要？</strong><a href="http://docs.lmgateway.com/blog/open-data-value#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%AB%98%E6%95%88%E7%9A%84%E5%88%97%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E5%AF%B9-iiot-%E5%BE%88%E9%87%8D%E8%A6%81" class="hash-link" aria-label="为什么高效的列式数据处理对-iiot-很重要的直接链接" title="为什么高效的列式数据处理对-iiot-很重要的直接链接" translate="no">​</a></h2>
<p>在 IIoT 环境中，传感器和设备不断生成海量数据。这些数据以列式结构进行组织并带有时间戳，这意味着它对于随时间监测复杂指标、趋势和设备性能至关重要。保持运营效率、避免故障和简化流程，都取决于对这些多维数据进行深度分析所提供的实时洞察。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iotedgedb-简介">IotEdgeDB 简介<a href="http://docs.lmgateway.com/blog/open-data-value#iotedgedb-%E7%AE%80%E4%BB%8B" class="hash-link" aria-label="IotEdgeDB 简介的直接链接" title="IotEdgeDB 简介的直接链接" translate="no">​</a></h2>
<p>IotEdgeDB 是专为快速、处理海量多维分析数据而构建的高性能列式数据库。它不仅在传感器持续产生数据的 IIoT 环境中表现卓越，更能完美支撑产品交互分析、系统可观测性、AI/ML 特征存储以及大规模日志管理等多样化场景。IotEdgeDB 利用列式存储技术，可以轻松收集、存储和检索包括时间序列、用户行为、模型推理日志在内的各种复杂事件数据。这为改善工业运营与业务决策提供了极速的实时洞察。由于其高压缩率与向量化查询特性，IotEdgeDB 是实现预测性维护、工业自动化以及闭环 AI 推理等应用的核心引擎，能够将实时数据流快速转化为可行动的商业智能。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="用于-iiot-的-iotedgedb-关键功能">用于 IIoT 的 IotEdgeDB 关键功能<a href="http://docs.lmgateway.com/blog/open-data-value#%E7%94%A8%E4%BA%8E-iiot-%E7%9A%84-iotedgedb-%E5%85%B3%E9%94%AE%E5%8A%9F%E8%83%BD" class="hash-link" aria-label="用于 IIoT 的 IotEdgeDB 关键功能的直接链接" title="用于 IIoT 的 IotEdgeDB 关键功能的直接链接" translate="no">​</a></h2>
<p>IotEdgeDB 是管理时间序列数据的绝佳选择，因为它具有多项对 IIoT 环境特别重要的关键功能：</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-实时数据摄取">1. 实时数据摄取<a href="http://docs.lmgateway.com/blog/open-data-value#1-%E5%AE%9E%E6%97%B6%E6%95%B0%E6%8D%AE%E6%91%84%E5%8F%96" class="hash-link" aria-label="1. 实时数据摄取的直接链接" title="1. 实时数据摄取的直接链接" translate="no">​</a></h3>
<p>IotEdgeDB 擅长从各种 IIoT 设备和传感器进行实时数据收集。这使得快速有效的决策成为可能。这对于依赖最新数据保证高效率和最小化停机的工业运营至关重要。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-可扩展性">2. 可扩展性<a href="http://docs.lmgateway.com/blog/open-data-value#2-%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7" class="hash-link" aria-label="2. 可扩展性的直接链接" title="2. 可扩展性的直接链接" translate="no">​</a></h3>
<p>无论您的 IIoT 部署规模或涵盖的位置数量如何，IotEdgeDB 都能轻松扩展。其灵活性允许企业扩展其数据收集和分析能力。它支持本地部署和基于云的解决方案。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-与人工智能工具的集成">3. 与人工智能工具的集成<a href="http://docs.lmgateway.com/blog/open-data-value#3-%E4%B8%8E%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%B7%A5%E5%85%B7%E7%9A%84%E9%9B%86%E6%88%90" class="hash-link" aria-label="3. 与人工智能工具的集成的直接链接" title="3. 与人工智能工具的集成的直接链接" translate="no">​</a></h3>
<p>作为开放数据生态系统的一部分，IotEdgeDB 可以轻松与机器学习和基于人工智能的算法或库连接。通过立即将人工智能模型应用于列式数据，您可以利用高级分析、预测性维护和异常检测。它带来更智能的洞察和自动化。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-无限基数">4. 无限基数<a href="http://docs.lmgateway.com/blog/open-data-value#4-%E6%97%A0%E9%99%90%E5%9F%BA%E6%95%B0" class="hash-link" aria-label="4. 无限基数的直接链接" title="4. 无限基数的直接链接" translate="no">​</a></h3>
<p>IotEdgeDB 支持无限基数，能够实时处理高度个性化的传感器数据。与依赖复杂索引的传统系统不同，我们的向量化列式引擎确保在面对海量唯一标识符时依然保持亚秒级查询响应，让您能从复杂的 IIoT 遥测数据中挖掘深层洞察，精准优化运营流程。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iotedgedb-的常见-iiot-用例">IotEdgeDB 的常见 IIoT 用例<a href="http://docs.lmgateway.com/blog/open-data-value#iotedgedb-%E7%9A%84%E5%B8%B8%E8%A7%81-iiot-%E7%94%A8%E4%BE%8B" class="hash-link" aria-label="IotEdgeDB 的常见 IIoT 用例的直接链接" title="IotEdgeDB 的常见 IIoT 用例的直接链接" translate="no">​</a></h2>
<p>凭借其为改善决策和流程优化提供实时洞察的能力，IotEdgeDB 对许多 IIoT 应用至关重要。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-监控和诊断">1. 监控和诊断<a href="http://docs.lmgateway.com/blog/open-data-value#1-%E7%9B%91%E6%8E%A7%E5%92%8C%E8%AF%8A%E6%96%AD" class="hash-link" aria-label="1. 监控和诊断的直接链接" title="1. 监控和诊断的直接链接" translate="no">​</a></h3>
<p>使用 IotEdgeDB，您可以实时监控工业设备，以保持对运营性能的检查，并在问题成为昂贵的故障之前识别问题。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-异常检测-1">2. 异常检测<a href="http://docs.lmgateway.com/blog/open-data-value#2-%E5%BC%82%E5%B8%B8%E6%A3%80%E6%B5%8B-1" class="hash-link" aria-label="2. 异常检测的直接链接" title="2. 异常检测的直接链接" translate="no">​</a></h3>
<p>IotEdgeDB 通过为异常数据模式定义阈值和警告来帮助识别机械和系统的潜在问题，以便您可以采取预防措施。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-能源管理">3. 能源管理<a href="http://docs.lmgateway.com/blog/open-data-value#3-%E8%83%BD%E6%BA%90%E7%AE%A1%E7%90%86" class="hash-link" aria-label="3. 能源管理的直接链接" title="3. 能源管理的直接链接" translate="no">​</a></h3>
<p>IotEdgeDB 允许企业监控和优化能源消耗，减少浪费并提高工业运营效率。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="结论">结论<a href="http://docs.lmgateway.com/blog/open-data-value#%E7%BB%93%E8%AE%BA" class="hash-link" aria-label="结论的直接链接" title="结论的直接链接" translate="no">​</a></h2>
<p>各行业可以利用 IotEdgeDB 和人工智能框架等开源解决方案更有效地利用 IIoT 力量。这些技术使实时数据处理、异常检测和维护规划成为可能。它们还保持了适应工业场景所需的规模和灵活性。人工智能与数列式数据的集成增强了运营洞察。它还带来了更智能的决策、更少的停机时间和成本效益高的解决方案。现在您知道了这些技术如何使您能够最大化工业应用性能并简化流程。</p>
<p>现在是探索这些强大工具用于您自己的 IIoT 需求的最佳时机。通过将 IotEdgeDB 和开源人工智能解决方案集成到您的基础设施中，您可以提升运营效率、降低成本，并通过实时、可操作的数据洞察保持竞争优势。今天就开始利用这些创新技术，释放 IIoT 在您业务中的全部潜力。</p>]]></content>
        <author>
            <name>mengdal</name>
        </author>
        <category label="社区" term="社区"/>
    </entry>
</feed>