股票学习网

如何学炒股,入门炒股,股票入门,股票怎么玩,学习炒股网,股票技术,股票知识学习 - - 股票知识网!

Td指标不准(Td指标计数)

2023-06-29 06:38分类:技术指标 阅读:

作者:大数据模型

本篇文章出自 2022 年“用 TDengine,写 TDengine”征文投稿活动。


因为工作的关系,最近几年我接触到过各种国产数据库,唯独对 TDengine 念念不忘。在众多数据库中,TiDB 一枝独秀,OceanBase 出身名门世家,openGauss 有华为撑腰,只有 TDengine 给人有一种草莽出英雄的感觉;在开发上,TiDB 借用了 rocksDB 的性能,openGauss 是基于 postgreSQL9.2.4 开发的,即使 OceanBase 也是基于内部应用需求开始打造的,只有 TDengine 不依赖任何开源或第三方软件自研而成。而且它不是一款通用型的数据库,剑走偏锋,它有自己独特的社会应用场景,主要为工业网服务。

基于对 TDengine 的定义和理解,笔者将会在本篇文章中从 TDengine 能解决什么问题、它的优势与亮点、它与其它数据库的区别等维度展开详述,希望能帮助到对 TDengine 感兴趣的小伙伴。

“区别于通用数据库,TDengine 抛掉无用包袱”

数据库想要完成出色的的读写,最核心的能力就是索引,一般数据库产品都具备正向索引能力。所谓正向索引就是通过文档记录里面的标识符为关键字,通过关键标识符不再需要进行全盘扫描。虽然 B树索引、哈希索引、位图索引有区别,但是大方向都属于正向索引。

除了正向索引,还有反向索引【也称倒排索引】,反向索引主要用于全文检索,例如 ElasticSearch,大多数据库都是正向索引。TDengine 也是使用正向索引,它的特别之处是标识符肯定包含时间戳,再加上一个维度指标数据,构成一个对数据值明确的描述——某个时间某个指标对象的数据值是多少。

从数据组织的存储引擎来看,数据库底层可以分为 B树机制、LSM 机制,两种机制没有最好,各有各的优点和缺点:

B树最大好处在于它对数据持续高涨读性能的处理,即使数据量级增大,它的读也没有放大。 奥秘在于对数据进行终极持久存储时,B树是以有序有规律的数据结构保存在硬盘上的。这样随着数据越来越大,它依然保持有序有规律的特性,面对成千上万的读操作,都可以遵循条件运行,减少或避免读放大的行为。

与 B树机制截然相反,LSM 机制则是减少避免了写放大。LSM 机制充分利用了内存,在内存里面开辟了一个空间,写数据优先往内存里放,写进去直接返回用户成功,而不是像 B树那样写一个,我要找出谁比我大谁比我小,只要内存有够,就直接往内存里面填就好,当内存达到一定的阈值,将内存中的数据以批量、顺序的方式一次写入硬盘上,内存则重置清零再服务新的写要求

传统数据库 MySQL、Oracle 使用的是 B树机制,而 TiDB、OceanBae 使用的是优化后的 LSM 机制,而 TDengine 使用的是 B树 + LSM 机制的方式,其中 B树存储的是元数据【主要是时间戳+指标数据】,LSM 机制存储的是具体的数据,元数据以有序表结构方式进行存储,而具体数据则是以追加的方式写入,这样即避免了读话大和写放大。

一般来说,OLTP 产品为了提升并发控制的性能,必定会有写时复制或者 MVCC 的功能选项,写时复制与 MVCC 虽然保障了数据的一致性,但是带来更多的 IO 负担。TDengine 不需要对数据进行修改,所以不需要考虑数据一致性的问题,数据是以有序的规律并追加的形式写进去的,因为只有读和写,所以也不需要锁保护,抛掉一些无用的包袱,可以集中优化其它地方,例如列式表。

业界通用数据库针对各种业务都会有行式表、列式表甚至完全的内存库,对于具体的数据存储 TDengine 使用完全列式存储在硬盘,而维度指标则行式保存在内存中。因为 TDengine 面对的是机器的数据,机器 24 小时工作精确到每个毫秒都在产生数据,为了存储更多的数据,所以 TDengine 用上行列并存、用途分离的方式。

一般来说,数据库里面每一行的文档记录都是非常重要的,即使这行记录信息无关交易,只是一个用户的基本信息,那它的价值密度也十分高。但时序数据库(Time Series Database)不同,单行文档记录价值密度低,因为 1 秒可以产生 1 万条记录,必须要把数据聚合汇总起来才能体现数据的价值。快速并有效聚合普通数据使之变成价值密度高的数据,这个也是时序数据库区别于其它数据库的一个重要的特征。

TDengine目前提供了三个版本的产品:社区版,企业版以及云版本, 以满足市场的需求和个人开发者的需求。

“拆解时序数据库,几大产品特点分析”

从技术上区分定位,TDengine 是专注时间序列领域的一个分布式的海量数据分析平台。它的竞争对手可以分为直接竞争对手和间接竞争对手,间接竞争对手有国内的 TiDB、OceanBase、GaussDB 以及国外的 Oracle、MySQL 等等,虽然它们在综合技术维度上与 TDengine 没有对标,但是分析上只要是使用时间戳,与时间序列有关系,这里就有 TDengine 的用武之地。与 TDengine 构成直接竞争的对手有 Druid、OpenTSDB、InfluxDB,他们都是时间序列分析的前辈。

Druid 是一个分布式系统,采用 Lambda 架构,有利于充分利用内存,也会把历史数据保存到硬盘上,按一定的时间粒度对数据进行聚合,实时处理和批处理数据解耦分开。实时处理面向写多读少的场景,主要是以流方式处理增量数据,批处理面向读多写少的场景,主要是以此方式处理离线数据。Druid 依赖 Hadoop,集群中采用 share nothing 的架构,各个节点都有自己的计算和存储能力,整个系统通过 Zookeeper 进行协调。为了提高计算性能,其会采用近似计算方法包括 HyperLoglog、DataSketches 的一些基数计算。

OpenTSDB 是一个开源的时序数据库,支持存储数千亿的数据点,并提供精确的查询,采用 Java 语言编写,通过基于 HBase 的存储实现横向扩展,OpenTSDB 广泛用于服务器的监控和度量,包括网络和服务器、传感器、IoT、金融数据的实时监控领域。OpenTSDB 在设计思路上是利用 HBase 的 key 去存储一些 tag 信息,将同一个小时数据放在一行存储,以此提高查询速度。OpenTSDB 通过预先定义好维度 tag 等,采用精巧的数据组织形式放在 HBase 里面,通过 HBase 的 keyRange 可以进行快速查询,但是在任意维度的组织查询下,OpenTSDB的效率会降低。

InfluxDB 是一款非常流行的时序数据库,采用 Go 语言开发,社区非常活跃,技术特点支持任意数量的列,去模式化,集成了数据采集、存储和可视化存储,使用高压缩比的算法支持高效存储,采用 TIME SERIES MERGE TREE 的内部存储引擎,支持与 SQL 类似的语言(2.0 版本不再支持)

时间序列的业务背景,在 OLAP 场景中一般会进行预聚合来减少数据量,影响预聚合主要因素可以汇总如下:

  • 维度指标的个数
  • 维度指标的基数
  • 维度指标组合程度
  • 时间维度指标的粗粒度和细粒度

为了实现高效的预聚合,TDengine 的秘诀是超级表,Druid 会提前定义预计算,InfluxDB 也有自己的连续查询方法,只有 HBase 使用时才进行拼接,所以涉及不同的维度指标查询,HBase 会慢一些。

据了解,TDengine 基于 TSBS 的测试报告将于近日出炉,第一期报告针对 InfluxDB 和 TimeScaleDB 进行了详细的性能层面的对比分析,感兴趣的小伙伴最近可以多多关注下公众号的内容。

“放到今天,TDengine 一定是首选”

我对 TDengine 的认识和了解要从过去的项目经验说起,以 2018 年为背景,我给大家讲述一个工业界坏件故障件预测的故事。

某知名集团随着公司业务的快速增长、新工厂的不断增加,各种有价值的数据不能很好的整合、分析与挖掘出它应有的价值。此时公司发展已经进入下一轮“拼”的战略,快速响应与准确预测是业务发展的关键,大数据在其中起到举足轻重的作用,以科学的分析手法整合各系统数据、推动工厂制造智能化发展,成为一件迫在眉睫的工作。

当前工厂生产过程中出现了同一种特殊问题的 glass id,glass 的品质由于各种原因是参差不齐的,甚至会有品质异常的 glass。这些异常 glass 在检测过程中,是无法检测出异常原因的,如果无法快速定位出异常原因,就会造成更多的异常 glass,严重影响生产。应对的具体手段包括:

  1. 通过品质异常的 glass,找到产生此异常的相关性因子。如:机台、物料、载具、参数等。
  2. 异常 glass 侦测预警,通过对产生品质异常的因子进行数学建模,预测出偏离正常范围的异常玻璃,提前预警。
  3. 分析 glass 的特征值与特征值之间的关联关系,并建立预测模型,提前预测出 glass 的特征值。
  4. 分析 glass 相关的电压、电阻、电流、温度、湿度影响。

很明显这是数据挖掘的项目,要分析以上 glass 在生产过程中的环境信息、检测机台资料、量测机台资料、制程参数信息,以及 FDC、OEE 系统的数据,才能找出产生这种问题的原因。第一步是数据收集整合,第二步是数据探索,第三步是模型调校——找出可能性、影响最大的因素的特征因素,第四步是投入生产验证,通过 spark ml 提供预测动力。

当时的技术栈用的是 CDH,首先要通过 Kafka 采集数据,Spark对接 Kafka 进行初步计算去噪并汇总到 Hadoop 里面,以 parquet 的格式保存,如果需要进一步的加工,就通过 impala 进行。这样每天挂起 N 个任务,不停的调度计算。

CDH Hadoop 虽然无法做到实时数据分析,但是也还能做些事,聊胜于无,就继续用着。当时这个坏件故障件预测项目有以下痛点,主要是及时性、有效性、准确性的问题:

  • 难以满足用户需求,某些机器数据的聚合计算需要第二天才能出结果,甚至更多的时间才能出来。
  • 经济成本的费用较高,CPU、磁盘、网络都在一个高段的使用状态,针对越来越多的数据需要投入新机器。
  • 维护成本高,你需要维护 Hadoop 所有的机器,各种 HBase、Spark、Zookeeper、HDFS 之类,不但对工程师要求高,而且工作量巨大。
  • 低质量数据,因为数据流程或者错误的逻辑整合,导致机器传感器聚合后数据模型无法正常使用。
  • 无法做到实时监测,机器数据作为宝贵的自变量因素无法及时传输并进行计算,自然会影响因变量。

笔者经历了这个项目,知道这个坏件故障预测与时间序列有紧密的关系。时至今日,时间序列分析也是重要的数据分析技术,尤其面对季节性、周期性变化数据时,传统的回归拟合技术难以奏效,这时就需要复杂的时间序列模型,以时间为特征作为抓手点。这样即使你不太懂业务的前提下,也可以进行数据挖掘的工作。

那这个项目与 TDengine 有什么关系呢? 实际上,这个项目并没有用上 TDengine,后来集团搭建了一个 Hadoop集群试点,这次居然用了 HDP,理由很简单,因为 HDP 默认搭载了时序数据库 Druid

当时技术负责人认为坏件故障预测模型的数据库基座应该是时序数据库,而不是 Hadoop 不停的进行数据采集、数据转换以及各种批计算,通过时序数据库不但可以实时计算,而且输出的数据质量高。至于选择哪个时序数据库,彼时考虑平稳过渡替换以及学习成本综合因素后他们选择了 Druid。

但当时是 2017 年,TDengine 也还没有面世,如果放到今天,TDengine 必定是选型考虑的首选。

要知道,TDengine 的优势相对 Druid 要多了去了,首先 Druid 不是一个经过开源版本 1.00 正式发布的软件,虽然发展多年,直至 HDP 与 CDH 两家公司融合,HDP 搭配的 Druid 也不是 1.00 版;其次 Druid 依赖 Hadoop,动辄就使用大量的资源以及各种复杂的 Hadoop 组件,最后 Druid 只提供 json 的方式,对传统的 DBA 使用十分不友好。

TDengine 有一个我认为很秀的功能,就是它的超级表的跨指标维度建模思想,目前它仅用于自由组合维度指标,拼接不同的时间粒度进行聚合。在我看来,将来应用于时间序列机器学习模型也会是它的一个亮点,在数据建模方面,针对工厂的设施、设备、机床、机房、车间、测台等必须要做高效准确的定义。我们进行项目规划建设时,都会做大量的数据治理工作,但是在具体实施工作上,还是要使用这些传统工具和技术。TDengine 可以有效汇集各种机器数据源,并且能够高质量的提炼,这个是过去的时序数据产品所不具备的。

“是提速,更是赋能”

中国有句话叫做“长江后浪推前浪,一代新人胜旧人”,IT 世界千变万化,如果你和我一样,一直在关注着 TDengine,就会发现,它这几年崛起的非常迅速。去年 TDengine 推出 3.0 版本,新版本升级成为了一款真正的云原生时序数据库,优化了流计算功能,而且还重新设计了计算引擎,优化工程师对 SQL 的使用,另外增加了 taosX,利用自己的数据订阅功能来解决增量备份、异地容灾,更加方便了企业应用。我对 TDengine 未来的期望是,希望它增加库内机器学习函数,增加 ARIMA 模型、MA 模型等时间相关功能,TDengine 的未来是一个智能学习时间序列数据库,对工业 4. 0 来说不仅是提速,更是赋能。


点击了解更多 TDengine Database 的具体细节。

1983年美国Mullis首先提出核酸体外扩增设想,1985年由其发明了聚合酶链反应(polymerase chain reaction, PCR),意味着PCR技术的诞生。1988年,Saiki等人从Thermus aquaticm分离出了耐热型DNA 聚合酶,即Taq DNA聚合酶,成功完成了DNA的自动扩增,使PCR变成一种便利的、普遍的实用分子生物学技术。

 

 

但随着常规PCR技术在分子生物学各个领域的广泛应用,样本量少、样本珍贵、非特异性扩增等现象经常出现。造成非特异性扩增的原因有很多:普通的Taq DNA 聚合酶的最适温度是72℃,此时酶的活性最佳,低于此温度,酶有较弱活性,于是DNA聚合酶低温下具有活性而引起的错误引导靶标延伸和引物二聚体形成;使用热启动高保真酶时也会出现非特异性扩增,主要跟PCR的条件(Mg2+、退火温度、循环数等)有关。非特异性会造成目标扩增子产量低;目标扩增子的灵敏度下降;下游应用效果不佳等。

 

今天我们来说说如何能成功扩增我们需要的目的片段。

 

一、直接PCR

 

是指直接从样品中扩增目标DNA,无需进行核酸分离纯化。

 

直接PCR中,在高温变性阶段,诸如细胞、组织等材料在特殊的缓冲液中被裂解,释放出DNA。因此这种方法简化了实验流程,减少了动手操作时间,同时可避免纯化过程中DNA的损失。今天分子实验室中所采用的菌落PCR鉴定就是直接PCR法的最直接的体现。可对直接样品简单处理或者稀释即可进行PCR反应。

 

二、梯度PCR

 

梯度PCR与降落PCR都是对反应体系中的退火温度进行优化,但两者在原理上有所不同。

 

梯度PCR是指在退火温度不太明确时,为了找到最优退火温度,在一台PCR仪上同时做多管PCR(需要在支持设置梯度退火温度的PCR仪),每一管放在仪器内不同列(有的是不同行)上,分别进行PCR(如50-60℃可以分6管,分别50℃,52℃,54℃,56℃,58℃,60℃),最终找到最合适的退火温度,并进一步以此退火温度进行普通PCR扩增。

He, Lingjuan, et al. "Genetic lineage tracing of resident stem cells by DeaLT". Nature protocols 13.10 (2018):2217-2246.

 

三、降落PCR

 

PCR反应中许多成分,如引物、模板、Mg2+、dNTPs等均会导致实验结果的不准确,针对复杂的基因组DNA模板,普通PCR往往存在非特异性扩增,得不到需要的理想产物。为了解决PCR非特异性扩增的问题,Don等人于1991年发明了降落PCR(touchdown PCR,TD-PCR)技术。

 

与温度梯度PCR相比,降落PCR更有优势,因为采用梯度PCR选择合适的退火温度时需要多次反应或多管反应,并且即使通过多次试验找到最佳的退火温度后,在更换其它的PCR仪进行同样的扩增时,最适的退火温度也有可能发生改变,需要重新进行最佳温度的摸索。而降落PCR只需一次反应就可以获得很好的扩增效果,避免了对每对引物进行最佳复性温度的优化和测定工作,并且降落PCR在很大程度上削弱了仪器性能对扩增效果的制约。

 

原理

PCR反应中退火温度会对扩增结果产生影响,随着退火温度的升高,扩增特异性会变好,同时扩增效率会变低。降落PCR一开始先用高温扩增,可得到特异性扩增产物;待目的基因的丰度上升后,降低扩增的温度,可提高扩增的效率。当退火温度降到非特异扩增发生的水平时,特异产物会有一个几何级数的优势,在剩余反应中非特异的位点由于丰度低无法和特异位点竞争,从而产生单一的占主导地位的扩增产物。

 

退火温度设置

通常降落PCR的退火温度范围可跨越15℃,从高于Tm值几度到低于其10℃左右,在每个温度上循环1-2个周期,然后在较低的退火温度上循环10个周期左右。

 

降落PCR应用

降落PCR适用于经常更换引物的实验,在不知道Tm值,同时不想很麻烦的找出最佳Tm值的情况下,使用降落PCR可以快速、特异的得到目的扩增片段。现在很多PCR仪具有设置降落PCR的程序,降落PCR在研究领域中已得到了广泛的应用。

 

注意事项

降落PCR虽然有一定的优势,但它并非万能,降落PCR只能做到“锦上添花”,即能看见主带,但是存在杂带,可以利用降落PCR进行优化,但是如果连主带也看不见,只有杂带,那么用降落PCR也不会有很好的效果。

 

四、巢式PCR

 

巢式PCR是一种变异的聚合酶链反应(PCR),使用两对(而非一对)PCR引物扩增完整的片段。第一对PCR引物扩增片段和普通 PCR相似。第二对引物称为巢式引物(因为他们在第一次PCR扩增片段的内部)结合在第一次PCR产物内部,特异性的扩增位于首轮PCR产物内的DNA片段。

 

优势

如果第一次扩增产生了错误片断,则第二次能在错误片段上进行引物配对并扩增的概率极低。因此,巢式PCR的扩增非常特异。

 

实验步骤

第一步:第一对绿色引物结合到DNA模板上,同时由于特异性不够,也可能结合到其他具有相似结合位点的片段上并扩增产物。

第二步:使用第二对黄色引物结合到第一步扩增的目的片段上进行第二轮扩增。由于第二对引物位于第一步PCR产物内部,而非目的片断包含两套引物结合位点的可能性极小,因此第二套引物不可能扩增非目的片断。这种巢式PCR扩增确保第二轮PCR产物几乎或者完全没有引物配对特异性不强造成的非特异性扩增的污染。

 

最后祝愿大家新的学期实验顺利,文章接收,PCR势如破竹!

德国商业银行(Commerzbank)技术分析经理Karen Jones周三(1月7日)表示,英镑兑日元的在反弹至181.00的图中应该建立空仓,并且在182.20附近加仓;纽元兑美元应该对空头头寸获利了结;现货黄金目标位暂时看向1240.90美元/盎司的目标位。

Karen Jones建议英镑兑日元的在反弹至181.00的图中应该建立空仓,并且在182.20附近加仓,止损位在184.50,目标位在175.00。

英镑兑日元月线级RSI指标出现了背离迹象,德马克TD指标计数已经到达13,并且出现了较为完美的TD指标set up,暗示汇价已经筑顶。

纽元兑美元周线级别也出现了背离,汇价未能下破2013年低点0.7683。

另外,德国商业银行从看跌黄金走势转向持中性态度,因为月线级别汇价出现了RSI背离迹象。动能背离显示金价在1132美元/盎司附近已经筑底。

现货黄金目标位暂时看向1240.90美元/盎司的目标位,如果突破则上移目标位至10月高点1255.61美元/盎司和200日移动均线切入位1256.35美元/盎司。

北京时间20:47,英镑兑日元报1.5132/34,纽元兑美元报0.7751/56,现货黄金报1213.30/80美元/盎司。

内容版权归汇通财经品牌所有,转载本文请务必标明:"文章来源于汇通网"。违者必究!

上周大事回顾

1、证监会掌门人刘士余3日在公开讲话中痛批“野蛮收购”。业内人士称,证监会可能掌握部分险资举牌存在问题的证据。

2、深港通今天正式开通。

3、11月29日,全国社会保障基金理事会官网公布了基本养老保险基金托管机构的评审结果,工商银行、中国银行、交通银行和招商银行四家机构入选。这意味着养老金入市的路径已经打通。行业龙头股及蓝筹股有望受益。

本周机构研判

国金证券认为,本次调整短中期的支撑区间为3082点至3140点,后续或有反弹,但不可恋战。大盘在日线TD9计数压制、突破之后长期未能有效放量以及重要阻力位3300附近遇到阻力产生调整。由时间窗口分析可知,即使当下潜在的调整是假摔,后市也没有过于乐观的理由。

牧容投资代恒桥认为,4日的意大利公投、美联储加息,本周将开始迎来本年度最大的解禁潮。预计周一大盘会出现一根探底回升的小阳,然后展开以时间换空间的震荡走法。虽然有深港通正式推出的利好,但后面市场面临的不确定因素太多,所以很多获利资金选择了落袋。

源达投顾认为,阶段性低点有望在本周出现,大盘或现先抑后扬走势。深港通利好已被市场过度吸收,本周不确定性因素较为集中,阴霾重重,上周创出的阶段高点,也仅剩几只中字头概念股苦苦支撑,调整已无法避免,止跌信号仍未出现。

红塔证券黄霁认为,在市场对风格转换充满期待之际,周五创业板却收出了一个光脚大阴线,调整很可能远远没有结束。若今天创业板综指以下跳缺口的方式回补国庆后的上跳缺口,则会在技术上形成岛形下跌,后果是深不可测的。

美国交易大师乔尔·帝纳波利认为,上证指数12月的走势非常关键,如果能拉出一根阳线的话,后市将向更高的帝法汇聚区域XOP=3523/F3=3609一线继续攀升;但如果拉出一根阴线,且收在MACD预测指标线之下,它可能将掉头向2800或COP=2655一线下跌。

北京晨报记者 刘畅

https://www.suoduoma.com

上一篇:现货交易平台(简单的现货交易技巧一)

下一篇:沪深港通交易规则(深港通重仓概念股)

相关推荐

返回顶部