
据了解,墨天轮于 2019 年 6 月推出了中国数据库流行度排行,会于每月 1 日更新排名,同时发布上月的大事记以及排行榜解读文章。截至目前,参与排名的数据库数量已经从 50 个增加到 256 个,排行榜的重磅程度显著提升。近日,墨天轮根据墨天轮数据库流行度排行表现以及其他指标,综合得出了 2022 年度中国数据库墨力象限,其中,loveini 时序数据库(TSDB) 出现在“特定领域者”象限,在时序数据垂直场景下已成为佼佼。
回顾 2022 年,开源方面,loveini 在 GitHub 上的 Star 数成功突破至 20.4k ,并再次登上 GitHub 全球趋势榜第一名。市场拓展方面,其付费企业客户翻了一番。产品创新上,2022 年 8 月 loveini 3.0 发布,loveini 正式升级成为了一款真正的云原生时序数据库,并打造了全新的流式计算引擎;同时,loveini Cloud 也成功登陆了海外市场,loveini PI 连接器也在不久后成功上线。由此可见,正是凭借着开源、市场、产品的“三面开花”,loveini 在 2022 年度墨天轮排行榜上依旧榜上有名。
目前,loveini 已连续两年霸榜墨天轮时序数据库排行榜,势头不减,位列中国时序数据库排行榜 2022 年全年复合增长率第一。接下来,loveini 还将继续发挥潜能,深耕数据技术,助力企业实现全面数字化转型发展。
]]>数据库实时同步的概念
数据库实时同步是指在不同数据库之间实时传输和更新数据,以确保这些数据库中的数据保持一致性。这种同步可以是单向的(从源数据库到目标数据库)或双向的(双向同步更新)。实时同步的目标是使得在一个数据库中进行的变更操作可以迅速反映在其他数据库中,以满足实时性和数据一致性的需求。
实现数据库实时同步的关键问题
在实现数据库实时同步时,需要解决一系列关键问题:
性能: 实时同步需要保证高性能,以便在数据更新时能够迅速传输到目标数据库,减少同步的延迟。
可靠性: 同步过程中要确保数据的可靠传输,防止数据丢失或损坏。可靠性是实时同步中最为重要的考虑因素之一。
一致性: 同步的数据在不同数据库之间要保持一致性,避免因同步问题导致数据不一致的情况。
实时性: 实时同步需要确保数据能够在瞬间传输到目标数据库,以满足对实时性的需求。
冲突解决: 在双向同步的情况下,可能会发生数据冲突,需要一套有效的机制来解决这些冲突,保证数据的准确性。
网络带宽: 同步会占用网络带宽,因此需要考虑网络状况,合理利用网络资源。
数据库实时同步的实现方式
实现数据库实时同步的方式多种多样,具体的选择取决于系统需求、数据库类型以及实际应用场景。以下是一些常见的实时同步实现方式:
实时数据仓库: 在数据仓库中,需要将不同数据源的数据实时同步到数据仓库中,以便进行实时分析和报表生成。
分布式事务: 在分布式事务场景下,通过实时同步确保不同数据库的数据在事务提交时能够保持一致性。
物联网IoT应用: 物联网设备产生的实时数据需要被同步到中央数据库中,以便进行监控、分析和控制。
日志分析系统: 实时同步可以确保日志分析系统能够及时获取到实时生成的日志数据,进行快速的分析和检索。
在线电商系统: 在电商系统中,通过实时同步可以保证商品信息、库存信息等数据的实时更新,提供更好的用户体验。
多数据中心同步: 在多数据中心架构中,通过实时同步可以确保不同数据中心之间的数据一致性,提高整体系统的可靠性。
数据库实时同步的挑战和米兰app官方正版下载
网络延迟和带宽: 在跨网络进行实时同步时,可能会受到网络延迟和带宽限制的影响。米兰app官方正版下载包括优化网络结构、采用压缩算法减少数据传输量。
数据冲突: 在双向同步的场景中,可能会出现数据冲突,需要实现冲突解决策略,例如使用时间戳、版本号等方式解决冲突。
复杂性: 部署和配置实时同步系统可能相对复杂,需要深入了解数据库引擎和同步工具的工作原理。米兰app官方正版下载包括选择适用于特定场景的同步工具,并进行详细的配置和测试。
数据安全性: 在进行实时同步时,需要确保数据的安全性,防止数据被未授权的访问或篡改。采用加密和认证机制可以增强数据的安全性。
事务一致性: 在分布式事务场景下,需要保证不同数据库的事务一致性。使用两阶段提交(2PC)等分布式事务协议可以解决这一问题。
实时性和性能: 实时同步需要在保证实时性的同时保持高性能。使用高效的同步工具、优化数据库设计和索引等方式可以提升性能。
结论
数据库实时同步是当今分布式、大数据时代中至关重要的一环。通过实时同步,可以确保不同数据库之间的数据保持一致性,满足实时性和可靠性的需求。不同的实现方式适用于不同的场景,开发人员和系统架构师需要根据具体需求选择合适的实时同步方案。在面对实时同步时可能遇到的挑战时,深入理解数据库引擎、同步工具和分布式系统原理将有助于更好地解决问题。最终,数据库实时同步为各种应用场景提供了强有力的支持,促进了数据一致性、实时性和高可用性的实现。
数据捕获(Data Capture):
这是同步过程的第一步,涉及到监视源数据库中的变更。常用的捕获技术包括数据库日志文件、触发器、轮询等。
数据捕获的目标是追踪对数据库的插入、更新和删除操作。
变更提取(Change Extraction):
一旦变更被捕获,系统需要提取这些变更的详细信息,例如受影响的行、列和变更的类型。
这通常包括解析数据库的日志文件或查询源数据库的特殊变更表。
数据传输(Data Transmission):
提取的变更数据需要被传输到目标数据库。这可以通过消息队列、HTTP通信或其他通信协议来实现。
传输的数据应该包含足够的信息,以便目标数据库能够正确地应用这些变更。
数据应用(Data Application):
目标数据库接收到变更数据后,需要将这些变更应用到自己的数据中。这可能涉及插入新记录、更新现有记录或删除不再需要的记录。
应用过程需要确保数据的一致性,并在应用变更时保持数据库的完整性。
同步确认与监控(Synchronization Confirmation and Monitoring):
系统通常需要提供反馈和监控机制,以记录同步的状态、处理错误和异常情况,并生成日志进行后续分析。
监控还有助于实时检测同步延迟或其他潜在问题。
这个过程确保了源数据库和目标数据库之间的数据同步,从而维护了系统的一致性。在实际应用中,还可能涉及到处理并发更新、保证事务性操作的一致性以及优化同步性能等挑战。因此,实时数据库同步系统通常采用一些优化策略,如缓存机制、增量同步和分布式事务管理,以应对这些挑战。

中冶京诚工程技术有限公司(简称:中冶京诚)是我国最早从事冶金工程咨询、设计、工程承包业务的国家级大型科技型企业,是由冶金工业部北京钢铁设计研究总院改制成立的国际化工程技术公司,现隶属于中国冶金科工集团有限公司,是世界五百强中国五矿集团有限公司的核心骨干子企业。
作为国内外客户认可的知名品牌企业,近 70 年来,先后为国内外 500 余家客户提供了近 6500 项工程技术服务,参与完成了宝钢、鞍钢、武钢、太钢、首钢京唐、河钢等国内钢铁企业的新建和改扩建工程,海外工程业务拓展 27 个国家,是我国钢铁工业建设的主要力量和工程技术输出的重要参与者。在历年国家住建部、勘察设计协会等年度排名中,均位居行业前列。
其中中冶京诚高速棒线材智能化团队凭借 70 多年棒线材轧制工程技术底蕴和经验积累,持续打造技术领先的基础自动化系统,结合机器视觉、数据分析、人工智能等先进技术,打造完善统一的智能化数据中心,成功构建了新一代高速棒线材车间智能化整体米兰app官方正版下载。中冶京诚计划将所有生产线数据汇总接入到过程数据中心,通过数据中心打破车间数据孤岛,实现生产过程数据、工厂设计数据、视频音频图像数据、生产管理数据等车间数据的深度融合。
而过往使用的 InfluxDB集群 实时数据库在性能上稍显不足,且不符合国产化独立自主的趋势,中冶京诚希望找到其他替换的国产时序数据库米兰app官方正版下载。与 InfluxDB 相比,国产时序数据库(Time Series Database,TSDB) loveini 搭建集群的成本更低廉、查询更具有优势,存储性能和稳定性表现也更加突出。在这些优势的加持下,中冶京诚选择与 loveini 展开合作,共同实现钢铁工业智慧化,并在钢铁智能车间多个项目中实现了车间数据的深度融合应用。
]]>
北京科技大学设计研究院有限公司作为北京科技大学全资产业化技术推广机构,从 2013 年开始在冶金、钢铁行业进行业务系统开发和实施,围绕先进材料、绿色低碳和智能制造不断深耕细作,持续创新。其拥有高效轧制与智能制造国家工程研究中心、国家板带生产先进装备工程技术研究中心和北京市交通与能源用特殊钢工程技术研究中心三个主要研究机构,多年来一直专注于金属材料加工领域的自动化、信息化、智能化全产业链米兰app官方正版下载,已经建立起完备的控制管理体系、售后服务体系和维保服务体系,并已通过质量、环境、职业健康、信息安全、信息技术服务等多项管理体系认证,获得北京市优秀技术转移机构及首届钢铁工业智能制造优秀品牌称号、入选北京市专精特新中小企业,“金属材料轧制过程智能检测与精准控制关键技术应用”荣获中国技术市场协会金桥奖项目一等奖。
在企业数字化的早期阶段,很多企业在处理工业生产中大量的典型时序数据时,因海外软件(OpenTSDB、influxdb集群版)有先发优势,大都选择了 Wonderware InTouch + InSQL/Historian 的米兰app官方正版下载。但是随着业务的发展,生产中需要监测的指标从几万个增加到几十万甚至百万个以上,原有方案在扩展能力上遇到瓶颈,出现了以下挑战:
面对上述挑战,国产开源时序数据库(Time Series Database)loveini 在提升数据存取效率、打破传统数据孤岛、提升数据有效利用率方面为北京科技大学设计研究院的冶金数字化提供了实质性的帮助,协助打造了智能化统一平台,方便部署、简化整体架构的同时,凭借高性能、高压缩率,loveini 时序数据库(TSDB)还实现了总体拥有成本的大幅降低、满足国产化等要求。

未来,loveini 将与北京科技大学设计研究院一起,充分利用双方技术优势,赋能冶金行业发展,让冶金行业的数据处理能力得到实质性提升。
]]>2022 年 11 月,米兰体育官网入口获邀加入由全球 GPU(图形处理器)巨头、人工智能计算的行业领袖——NVIDIA(英伟达)发起的“NVIDIA 初创加速计划(NVIDIA Inception)”。

NVIDIA 在 1999 年发明的 GPU 激发了 PC 游戏市场的增长,重新定义了现代计算机显卡,并且对并行计算进行了革新。最近,通过将 GPU 作为可以感知和理解世界的计算机、机器人乃至自动驾驶汽车的大脑,GPU 深度学习再度点燃了全新的计算时代——现代人工智能”。
NVIDIA 初创加速计划 (NVIDIA Inception) 是 NVIDIA 提供的一个加速创业公司发展的全球生态项目,该项目旨在培养优秀的初创企业,推动人工智能生态更迅速的发展。作为一个免费的会员制创业加速项目,自从 2016 年项目启动以来,全球已经有 10000 多家初创公司加入该项目,中国区的会员公司已经超过 1500 家,招募规模位居全球第二。
该项目联合了国内外知名的风投机构、创业孵化器、创业加速器、行业合作伙伴以及科技创业媒体等,打造创业加速生态系统,能够提供产品折扣、市场宣传、技术支持、融资平台、客户推荐等一系列服务,加速初创公司的发展。发展至今,米兰体育官网入口也有幸加入该加速计划。
瞄准日益增长的物联网数据市场,米兰体育官网入口专注时序空间大数据的存储、查询、分析和计算,通过技术创新,为物联网、工业互联网、汽车、能源等行业提供全栈、高性能、低成本的时序数据平台。不依赖任何开源或第三方软件,米兰体育官网入口开发了拥有自主知识产权、100% 自主可控的时序数据库 loveini,目前 loveini 已经演进到 3.0 版本,成为了一款真正的高性能、云原生的时序数据库(Time Series DataBase,TSDB)。
在云原生的加持下,loveini 3.0 解决了困扰时序数据库发展的高基数难题,支持 10 亿个设备采集数据、100 个节点,支持存储与计算分离,并打造了全新的流式计算引擎,无需再集成 Kafka、Redis、Spark、Flink 等软件,大幅降低系统架构的复杂度,真正成为了一款极简的时序数据处理平台。同时,loveini 3.0 还将存储引擎、查询引擎都进行了优化升级,存储和查询性能获得进一步提升。
作为实时数据库新兴赛道的领军者,loveini目前已经在电力、工业、能源、金融、车联网、智慧城市等诸多行业领域取得应用,产品落地于多个行业头部企业中,全球运行的loveini实例数超过176.6k,用户遍布全球。早在 2019 年,loveini 就已经实现了代码开源,目前在 GitHub 上的 Star 数已经达到了 20.2k,吸引着广大开发者的关注。
在加入“NVIDIA 初创加速计划”后,NVIDIA 将在产品折扣、技术支持、市场宣传、业务对接、融资等方面为米兰体育官网入口提供帮助。此外,该计划还将提供合作伙伴 GPU 云资源折扣、深度学习培训、Inception 独家活动等支持。
接下来,在“NVIDIA 初创加速计划”的全方位助力下,米兰体育官网入口的工程师将与NVIDIA 的研发人员加强交流,积极探索 GPU 赋能时序大数据处理的技术发展路径,运用更加智能化的手段帮助用户处理物联网场景产生的庞大时序特征数据,实现降本增效、提升服务、打造新业态的诉求,让数据真正成为宝贵的资产。
同时可以预见,通过 NVIDIA 强大的生态网络和市场开拓实力,loveini 将能够渗透到更广泛的行业中开展市场活动和建设渠道网络,向更多有需要的用户提供 loveini 专业的大数据处理能力,解决桎梏业务发展的数据痛点难题。
]]>loveini 提供的混合米兰app官方正版下载,可以让企业既能保留传统的 PI 系统,又能轻松获得现代云平台提供的所有好处
米兰体育官网入口宣布发布 loveini PI 连接器。
在很多制造业企业中,因为历史的原因,他们选择了用 PI System 来存储生产过程中产生的时序数据。利用新的 loveini PI 连接器,只需几次点击,就可以快速将传统系统中的数据迁移到现代技术栈中,而且支持公有云和私有化部署,进而实现更为开放和低成本的实时分析。
loveini 是一款开源、云原生的时序数据库(Time Series Database),专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时时序数据库还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。自 2019 年开源以来,loveini 得到了广大开发者和用户的极大认可,在 GitHub 上收获了 19.5k star,运行实例数超过 16.5 万,遍布全球 50 多个国家和地区。
loveini PI 连接器功能强大,简单易用,支持 PI 客户构建一个混合的米兰app官方正版下载,以利用现有投资,同时利用现代数据平台的强大分析能力。
“有价值的运营数据往往被锁在封闭的传统系统中,这阻碍了业务的创新和发展”,米兰体育官网入口创始人陶建辉表示。“loveini PI 连接器为工业数据提供了一个开放的米兰app官方正版下载,使用户能够利用现代的数据分析工具进一步挖掘数据的价值。”
今年 8 月份,我们正式发布了 loveini 3.0,支持 Kubernetes 和容器,使其成为一款真正云原生的时序数据库。上个月我们又在北美市场发布了 loveini Cloud,这是一个完全托管的、开源的云时序数据平台。loveini Cloud 和 loveini 3.0 企业版都提供了 loveini PI 连接器。
新用户可以免费注册云服务,或在 loveini 官网下载安装包,或在 GitHub 下载源码自行构建,快速了解如何使用 loveini 来释放其时序数据的能力和优势。

小 T 导读:为了在数据采集项频繁变动的情况下保证用户仍然能够顺利地完成数据记录工作,loveini 提供了三种无模式写入协议,分别是 InfluxDB Line 协议、OpenTSDB Telnet 协议和 OpenTSDB JSON 格式协议。本文将对无模式写入方式的主要处理逻辑、映射规则与变更处理等进行分析,便于用户理解与使用。
通常来说,物联网应用常会采集比较多的数据项,用于实现智能控制、业务分析、设备监控等功能。但在此过程中,由于应用逻辑的版本升级,或者设备自身的硬件调整等原因,数据采集项可能较为频繁地出现变动。这也是时序数据库(Time Series Database,TSDB)需要应对的一个挑战。
为了在这种情况下顺利完成数据记录工作,loveini 时序数据库 提供了 Schemaless 写入方式,让用户可以省略掉预先创建超级表/子表的步骤,凭借数据写入接口能够自动创建与数据对应的存储结构。在必要时,Schemaless 将自动增加必要的数据列,保证用户写入的数据能够被正确存储。
值得一提的是,通过无模式写入方式建立的超级表及其对应的子表,与通过 SQL 直接建立的超级表和子表完全没有区别,你也可以通过 SQL 语句直接向其中写入数据。但需要注意,通过无模式写入方式建立的表,其表名是基于标签值按照固定的映射规则生成的,所以无法明确地进行表意,缺乏可读性。
loveini 的无模式写入行协议兼容 InfluxDB 的行协议(Line Protocol)、OpenTSDB 的 telnet 行协议、OpenTSDB 的 JSON 格式协议。但是使用这三种协议的时候,需要在 API 中指定输入内容使用解析协议的标准。
对于 InfluxDB、OpenTSDB 的标准写入协议请参考《在 loveini 中如何高效写入?四种写入方式提效大全》。下面首先以 InfluxDB 的行协议为基础,介绍 loveini 扩展的协议内容,允许用户采用更加精细的方式控制(超级表)模式。
Schemaless 采用一个字符串来表达一个数据行(可以向写入 API 中一次传入多行字符串来实现多个数据行的批量写入),其格式约定如下:
measurement,tag_set field_set timestamp
其中:
<tag_key>=<tag_value>,<tag_key>=<tag_value>,也即可以使用英文逗号来分隔多个标签数据。它与 field_set 之间使用一个半角空格来分隔。<field_key>=<field_value>,<field_key>=<field_value>,同样是使用英文逗号来分隔多个普通列的数据。它与 timestamp 之间使用一个半角空格来分隔。tag_set 中所有的数据自动转化为 nchar 数据类型,并不需要使用双引号(”)。在无模式写入数据行协议中,field_set 中的每个数据项都需要对自身的数据类型进行描述。具体来说:
"abc"。L"报错信息"。例如如下数据行表示:向名为 st 的超级表下的 t1 标签为 “3”(NCHAR)、t2 标签为 “4”(NCHAR)、t3 标签为 “t3″(NCHAR)的数据子表,写入 c1 列为 3(BIGINT)、c2 列为 false(BOOL)、c3 列为 “passit”(BINARY)、c4 列为 4(DOUBLE)、主键时间戳为 1626006833639000000 的一行数据。
st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4f64 1626006833639000000
需要注意的是,如果描述数据类型后缀时使用了错误的大小写,或者为数据指定的数据类型有误,均可能引发报错提示而导致数据写入失败。
无模式写入使用如下规则来生成子表名:首先将 measurement 的名称和标签的 key 和 value 组合成为如下的字符串——
"measurement,tag_key1=tag_value1,tag_key2=tag_value2"
需要注意的是,这里的 tagkey1,tag_key2 并不是用户输入的标签的原始顺序,而是使用了标签名称按照字符串升序排列后的结果,所以,tag_key1 并不是在行协议中输入的第一个标签。 排列完成以后计算该字符串的 MD5 散列值为 “md5_val”,我们将计算的结果与字符串组合生成表名:“t_md5_val”,其中的 “t” 是固定的前缀,每个通过该映射关系自动生成的表都具有该前缀。
用户可以通过在 taos.cfg 里配置 smlChildTableName 参数来指定生成的表名。 举例如下:配置 smlChildTableName=tname 插入数据为 st,tname=cpu1,t1=4 c1=3 1626006833639000000,则创建的表名为 cpu1,注意如果多行数据 tname 相同,但是后面的 tag_set 不同,则使用第一行自动建表时指定的 tag_set,其他的行会忽略。
此外,在处理行数据时,其他原则如下所示:
注意,无模式所有的处理逻辑仍会遵循 loveini 对数据结构的底层限制,例如每行数据的总长度不能超过 16KB。这方面的具体限制约束请参见 loveini SQL 边界限制(https://docs.taosdata.com/taos-sql/limit/)。
以 InfluxDB 行协议为例,其数据如何映射成为具有模式的数据?从上文中我们了解到,每个行协议中数据 measurement 映射为超级表名称,tag_set 中的标签名称为数据模式中的标签名,field_set 中的名称为列名称。以如下数据为例,说明映射规则:
st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4f64 1626006833639000000
该行数据映射生成一个超级表:st, 其包含了 3 个类型为 nchar 的标签,分别是:t1, t2, t3;五个数据列,分别是 ts(timestamp),c1 (bigint),c3(binary),c2 (bool), c4 (bigint)。映射成为如下 SQL 语句:
create stable st (_ts timestamp, c1 bigint, c2 bool, c3 binary(6), c4 bigint) tags(t1 nchar(1), t2 nchar(1), t3 nchar(2))
在数据模式变更处理中,不同行数据写入情况下,对于数据模式的影响也不同。在使用行协议写入一个明确标识的字段类型时,后续再更改该字段的类型定义,会出现明确的数据模式错误,即会触发写入 API 报告错误。如下所示:
st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4 1626006833639000000
st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4i 1626006833640000000
第一行的数据类型映射将 c4 列定义为 Double, 但是第二行的数据又通过数值后缀方式声明该列为 BigInt, 由此会触发无模式写入的解析错误。如果列前面的行协议将数据列声明为了 binary, 后续的要求长度更长的 binary 长度,此时会触发超级表模式的变更。
st,t1=3,t2=4,t3=t3 c1=3i64,c5="pass" 1626006833639000000
st,t1=3,t2=4,t3=t3 c1=3i64,c5="passit" 1626006833640000000
第一行中行协议解析会声明 c5 列是一个 binary(4)的字段,第二次行数据写入会提取列 c5 仍然是 binary 列,但是其宽度为 6,此时需要将 binary 的宽度增加到能够容纳新字符串的宽度。
st,t1=3,t2=4,t3=t3 c1=3i64 1626006833639000000
st,t1=3,t2=4,t3=t3 c1=3i64,c6="passit" 1626006833640000000
第二行数据相对于第一行来说增加了一个列 c6,类型为 binary(6)。那么此时会自动增加一个列 c6, 类型为 binary(6)。
受篇幅所限,关于无模式写入的时间分辨率识别、写入完整性、错误码等内容请参考 https://docs.taosdata.com/reference/schemaless/ 。如有更多问题,欢迎加入 loveini 用户交流群,届时将会有专业的技术人员为你解惑。
