Skip to content

Commit

Permalink
deploy: 6788717
Browse files Browse the repository at this point in the history
  • Loading branch information
RifeWang committed Jan 2, 2024
1 parent a881c17 commit 10f410a
Show file tree
Hide file tree
Showing 134 changed files with 151 additions and 135 deletions.
2 changes: 1 addition & 1 deletion 1/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,5 @@
</span></span><span class=line><span class=cl>db=Prometheus
</span></span></code></pre></td></tr></table></div></div><p>三个 tag set 构成了三个 series ,每个 series 就可以看成是图中的一条线(一个维度),而每个 point 点就是 series 上具体某个 timestamp 对应的点。</p><hr><h4 id=与传统数据库的不同>与传统数据库的不同</h4><hr><p>InfluxDB 就是被设计用于处理时间序列的数据。传统SQL数据库虽然也可以处理时间序列数据,但并不是专门以此为目标的。InfluxDB 可以更加高效快速的存储大量时间序列数据并对这些数据进行实时分析。</p><p>在 InfluxDB 中,时间是绝对的主角,就像是SQL数据库中的主键一样,如果你不指定则会默认为系统当前时间,时间必须是 UNIX epoch ( GMT ) 或者 RFC3339 格式。</p><p>InfluxDB 不需要预先定义好数据的结构,你可以随时改变你的数据结构。InfluxDB 支持 continuous queries(连续查询,就是以时间划分范围自动定期执行某个查询)和 retention policies(保留策略)。InfluxDB 不支持跨 measurement 的 JOIN 查询。</p><p>InfluxDB 中的查询语言叫 InfluxQL ,语法与 SQL 极其相似,就是 select from where 那一套。</p><p>InfluxDB 并不是 CRUD,更像是 CR-ud ,意思就是更新和删除数据跟传统SQL数据库明显不一样:</p><ul><li>更新某个 point 数据,只需向原来的 measurement,tag set,timestamp 重写数据即可。</li><li>你可以删除 series ,但是不能基于 field 值去删除独立的 points ,解决方法是,你需要先查询 field 值的时间戳,然后根据时间戳去删除。</li><li>无法更新或重命名 tags ,因为 tags 会构建索引,你只能创建新的 tags 并导入数据然后删除老的。</li><li>无法通过 tag key 或者 tag value 去删除 tags 。</li></ul><hr><h4 id=设计与权衡之道>设计与权衡之道</h4><hr><p>InfluxDB 为了更高的性能做了一些设计与权衡之道:
1、对于时间序列用例,即使相同的数据被发送多次也会被认为是同一笔数据。</p><ul><li>优点:简化了冲突,提高了写入性能。</li><li>缺点:不能存储重复数据,可能会在极少数情况下覆盖数据。</li></ul><p>2、删除是罕见的,当它们发生时肯定是针对大量的旧数据。</p><ul><li>优点:提高了读写性能。</li><li>缺点:删除功能受到了很大限制。</li></ul><p>3、更新是罕见的,持续或者大批量的更新不会发生。时间序列的数据主要是永远也不会更新的新数据。</p><ul><li>优点:提高了读写性能。</li><li>缺点:更新功能受到了很大限制。</li></ul><p>4、绝大多数写入都是接近当前时间戳的数据,并且是按时间递增顺序添加。</p><ul><li>优点:按时间递增的顺序写入数据更高效。</li><li>缺点:随机时间写入的性能要低很多。</li></ul><p>5、数据规模至关重要,数据库必须能够处理大量的读写。</p><ul><li>优点:数据库可以处理大批量数据的读写。</li><li>缺点:被迫做出的一些权衡去提高性能。</li></ul><p>6、能够写入和查询数据比具有强一致性更重要。</p><ul><li>优点:多个客户端可以在高负载的情况下完成查询和写入操作。</li><li>缺点:如果负载过高,查询结果可能不包含最近的点。</li></ul><p>7、许多时间序列都是短暂的。时间序列可能只有几个小时然后就没了,比如一台新的主机开机,监控数据写入一段时间,然后关机了。</p><ul><li>优点:InfluxDB 善于管理不连续的数据。</li><li>缺点:无模式设计意味着不支持某些数据库功能,例如没有 join 交叉表连接。</li></ul><p>8、No one point is too important 。</p><ul><li>优点:InfluxDB 具有非常强大的工具去处理聚合数据和大数据集。</li><li>缺点:Points 数据点没有传统意义上的 ID ,它们被时间戳和 series 区分。</li></ul><hr><p>相关文章:</p><ul><li><a href=/posts/influxdb/1/ rel>时序数据库 InfluxDB(一)</a></li><li><a href=/posts/influxdb/2/ rel>时序数据库 InfluxDB(二)</a></li><li><a href=/posts/influxdb/3/ rel>时序数据库 InfluxDB(三)</a></li><li><a href=/posts/influxdb/4/ rel>时序数据库 InfluxDB(四)</a></li><li><a href=/posts/influxdb/5/ rel>时序数据库 InfluxDB(五)</a></li><li><a href=/posts/influxdb/6/ rel>时序数据库 InfluxDB(六)</a></li><li><a href=/posts/influxdb/7/ rel>时序数据库 InfluxDB(七)</a></li></ul></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span>Updated on 2023-02-27</span></div></div><div class=post-info-line><div class=post-info-md></div><div class=post-info-share><span><a href=javascript:void(0); title="Share on Twitter" data-sharer=twitter data-url=https://rifewang.github.io/1/ data-title="时序数据库 InfluxDB(一)" data-hashtags=InfluxDB><i class="fab fa-twitter fa-fw" aria-hidden=true></i></a><a href=javascript:void(0); title="Share on Facebook" data-sharer=facebook data-url=https://rifewang.github.io/1/ data-hashtag=InfluxDB><i class="fab fa-facebook-square fa-fw" aria-hidden=true></i></a><a href=javascript:void(0); title="Share on Hacker News" data-sharer=hackernews data-url=https://rifewang.github.io/1/ data-title="时序数据库 InfluxDB(一)"><i class="fab fa-hacker-news fa-fw" aria-hidden=true></i></a><a href=javascript:void(0); title="Share on Line" data-sharer=line data-url=https://rifewang.github.io/1/ data-title="时序数据库 InfluxDB(一)"><i data-svg-src=/lib/simple-icons/icons/line.min.svg aria-hidden=true></i></a><a href=javascript:void(0); title="Share on 微博" data-sharer=weibo data-url=https://rifewang.github.io/1/ data-title="时序数据库 InfluxDB(一)"><i class="fab fa-weibo fa-fw" aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class="fas fa-tags fa-fw" aria-hidden=true></i>&nbsp;<a href=/tags/influxdb/>InfluxDB</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>Back</a></span>&nbsp;|&nbsp;<span><a href=/>Home</a></span></section></div><div class=post-nav><a href=/errors/ class=prev rel=prev title="Go Errors 错误处理"><i class="fas fa-angle-left fa-fw" aria-hidden=true></i>Go Errors 错误处理</a>
<a href=/2/ class=next rel=next title="时序数据库 InfluxDB(二)">时序数据库 InfluxDB(二)<i class="fas fa-angle-right fa-fw" aria-hidden=true></i></a></div></div></article></div></main><footer class=footer><div class=footer-container><div class=footer-line itemscope itemtype=http://schema.org/CreativeWork><i class="far fa-copyright fa-fw" aria-hidden=true></i><span itemprop=copyrightYear>2017 - 2023</span><span class=author itemprop=copyrightHolder>&nbsp;<a href=/ target=_blank>凌虚</a></span>&nbsp;|&nbsp;<span class=license><a rel="license external nofollow noopener noreffer" href=https://creativecommons.org/licenses/by-nc/4.0/ target=_blank>CC BY-NC 4.0</a></span></div></div></footer></div><div id=fixed-buttons><a href=# id=back-to-top class=fixed-button title="Back to Top"><i class="fas fa-arrow-up fa-fw" aria-hidden=true></i>
<a href=/2/ class=next rel=next title="时序数据库 InfluxDB(二)">时序数据库 InfluxDB(二)<i class="fas fa-angle-right fa-fw" aria-hidden=true></i></a></div></div></article></div></main><footer class=footer><div class=footer-container><div class=footer-line itemscope itemtype=http://schema.org/CreativeWork><i class="far fa-copyright fa-fw" aria-hidden=true></i><span itemprop=copyrightYear>2017 - 2024</span><span class=author itemprop=copyrightHolder>&nbsp;<a href=/ target=_blank>凌虚</a></span>&nbsp;|&nbsp;<span class=license><a rel="license external nofollow noopener noreffer" href=https://creativecommons.org/licenses/by-nc/4.0/ target=_blank>CC BY-NC 4.0</a></span></div></div></footer></div><div id=fixed-buttons><a href=# id=back-to-top class=fixed-button title="Back to Top"><i class="fas fa-arrow-up fa-fw" aria-hidden=true></i>
</a><a href=# id=view-comments class=fixed-button title="View Comments"><i class="fas fa-comment fa-fw" aria-hidden=true></i></a></div><link rel=stylesheet href=/lib/katex/katex.min.css><script type=text/javascript src=/lib/autocomplete/autocomplete.min.js></script><script type=text/javascript src=/lib/lunr/lunr.min.js></script><script type=text/javascript src=/lib/lazysizes/lazysizes.min.js></script><script type=text/javascript src=/lib/clipboard/clipboard.min.js></script><script type=text/javascript src=/lib/sharer/sharer.min.js></script><script type=text/javascript src=/lib/katex/katex.min.js></script><script type=text/javascript src=/lib/katex/contrib/auto-render.min.js></script><script type=text/javascript src=/lib/katex/contrib/copy-tex.min.js></script><script type=text/javascript src=/lib/katex/contrib/mhchem.min.js></script><script type=text/javascript>window.config={code:{copyTitle:"Copy to clipboard",maxShownLines:50},comment:{},math:{delimiters:[{display:!0,left:"$$",right:"$$"},{display:!0,left:"\\[",right:"\\]"},{display:!0,left:"\\begin{equation}",right:"\\end{equation}"},{display:!0,left:"\\begin{equation*}",right:"\\end{equation*}"},{display:!0,left:"\\begin{align}",right:"\\end{align}"},{display:!0,left:"\\begin{align*}",right:"\\end{align*}"},{display:!0,left:"\\begin{alignat}",right:"\\end{alignat}"},{display:!0,left:"\\begin{alignat*}",right:"\\end{alignat*}"},{display:!0,left:"\\begin{gather}",right:"\\end{gather}"},{display:!0,left:"\\begin{CD}",right:"\\end{CD}"},{display:!1,left:"$",right:"$"},{display:!1,left:"\\(",right:"\\)"}],strict:!1},search:{highlightTag:"em",lunrIndexURL:"/index.json",maxResultLength:10,noResultsFound:"No results found",snippetLength:50,type:"lunr"}}</script><script type=text/javascript src=/js/theme.min.js></script></body></html>
Loading

0 comments on commit 10f410a

Please sign in to comment.