一条SQL语句搞定半导体行业采集的μs级数据

小 T 导读:昆山润石智能科技是一家为半导体、泛半导体行业客户提供智能制造一站式解决方案。VMPC是润石开发的智联网管理平台,将IOT、BD、AI三环节打通、形成闭环,从而解决数据孤岛的问题。VMPC数据收集、业务逻辑、日志管理是分离的,传感器采集的数据,存储在TDengine Database中。润石采用的传感器精度很高,采集的数据是μs级别的,TDengine Database是完全契合这一需求的,支持时间精度精确到μs。

场景介绍

VMPC是润石开发的智联网管理平台,将集成电路相关制程所需的传感器,依据实际工艺阶段分门别类,将Leading Foundry的经验数字化、模型化,来满足微影、蚀刻、薄膜、扩散、离子注入、研磨、测试或是面板厂的Array、Cell、CF、Module等物联网需求,也对Facilities相关的附属设备加以监控,以实现维护提醒、故障报警和状态预测等功能。VMPC是一套整体解决方案,更是一套定制化的解决方案,最终的方案会根据工厂生产线和设备的实际情况,进行定制化的二次开发。

润石的VMPC将IOT、BD、AI三环节打通、形成闭环,从而解决数据孤岛的问题。VMPC本质上是Data + Algorithm,Data是智联网传感器采集到的数据,Algorithm是AI算法在特定领域创新应用的算法。可将流量、振动、压力、温度、速度等模拟量,通过边缘端设备进行采集,从来得到大量的实时数据和历史数据,采用AI工具和算法进行分析和建模,根据量测到的数据监控设备实时状态,进而做到预测维护。

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 1
VMPC架构图

VMPC数据收集、业务逻辑、日志管理是分离的,传感器采集的数据,存储在TDengine中,数据流向如下:

1)VBOX负责现场数据采集;

2)VBOX将数据发送到指定的Server;

3)Server 后台处理程序,将数据进行解析和处理;

4)根据客户实际的场景选择算法模型,算法模型决定了TDengine Database中库和表的结构。解析和处理之后的数据,存储到TDengine中;

5)采集的数据一方面用来实时监控,另一方面用来报警和预测。

业务流程:

VMPC中AI的Algorithm主要包括两大类,一是图像数据算法,二是时序数据算法。如下图:

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 2
图像智能分析
TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 3
时序数据智能分析


而TDengine专门用于存储时序数据

良品率的提升涉及到查找问题根因,根本原因隐藏在数据之中。以时序数据场景为例,在设备的众多参数中,找到关键参数,从单一变量演化成多变量分析,从设备监视过渡到设备控制等。从针对某一类问题的通用型产品,到可以定制化的物联网平台。

业务流程抽象如下

生产设备 → 数据采集 → 实时展示 → 数据存储 → 数据分析 → 模型算法 → 生产设备

数据是模型和算法的基础,模型和算法挖掘数据的价值。

快速实现MVP

举一个项目作为示例:面板行业的Robot健康度管理及预测维护——对噪音、设备马达监控及预警。传感器部署到现场控制设备上,收集设备的噪音与马达的振动的数据,收集到的数据利用润石自研的通讯技术,将数据推送到存储接口,调用TDengine的jdbc的接口写入数据。实时数据通过VMPC的应用软件实现展示。以上的流程可以很复杂,也可以很简单。润石已经有了一些积累,对于一些进入到某个行业的初创企业,如果可以给一些建议的话,那就是快速的实现MVP,特别是在给客户做PoC的阶段。技术上需要哪几部分呢?

1)传感器,传感器解析模块;

2)TDengine,TDengine提供的写入和查询Demo;

3)Grafana,TDengine提供的Grafana插件。

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 4
TDengine接口demo
TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 5
TDengine的Grafana DataSource插件

整个过程,真正需要写的代码,不会超过500行,然后通过一条SQL语句,就完成了MVP的搭建工作,也就可以是客户演示了。

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 6
Grafana中TDengine SQL查询

数据的写入和查询

润石采用的传感器精度很高,采集的数据是μs级别的。TDengine默认的时间精度为ms,只需在建库的时候指定precision us即可将时间精度设置为μs,如下:


Create database testdb keep 365 precision ‘us’;

其中keep 365表示保存一年的数据,过期的数据会被删除,而这个过程全部由数据库完成,不需要认为参与。只需要在项目之初,硬件选型时预留足够的空间,就不用操心数据的任何问题了。

由于业务的具体场景不太方便过多的设计,但是在使用TDengine的过程中,使用超级表tag,仅需要一条SQL就可以检索出需要的数据,并进行对比:


select * from stb where ts > t1 and ts < t2 group by tag1;
TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 7
设备采集的数据

模型的训练集

从事AI模型和算法研究的人都比较清楚,数据处理的流程如下。其中最宝贵的就是数据的训练集,训练集的好坏直接决定着模型和算法的成败。

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 8
数据分析流程图

很多公司新进入一个行业,最难的不是技术,而是拿到一些现场数据。如果有幸得到PoC的计划,有机会得到实际生产环境中的数据,如果数据量不足以训练模型,TDengine的降维(down sample)聚合功能可以用于产生训练集数据。SQL语句如下:

SELECT function FROM stb_name 
 [WHERE where_condition]
 INTERVAL (interval)
 [FILL ({ VALUE | PREV | NULL | LINEAR})]
 [GROUP BY tags]

聚合查询中,当function取:avg、sum 、min、max、first、last、percentile的时候,就可以降频之后新的数据集。

原始数据如下

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 9
原始数据

变换之后数据如下

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 10
变换之后的训练集(1)
TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 11
变换之后的训练集(2)

在预测模型中,很多神经网络模型都是Long Short Term Memory networks(以下简称LSTMs)的变换,LSTMs一种特殊的RNN网络,该网络设计出来是为了解决长依赖问题,非常适合设备维护和故障的预测。LSTMs的训练集,通过TDengine做降频处理非常方便,可以在保证样本数的前提下,改变时间跨度:

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 12
更改时间跨度的训练集

TDengine应用中遇到的问题

1) 客户端接口不是很方便

TDengine 时序数据库 - 一条SQL语句搞定半导体行业采集的μs级数据 13
C# 读写 demo 

2)指定是否可以显示tag

我们查询子表的时候,数据的tag是显示不出来的。虽然可以使用group by tag将tag的值显示出来,但是作为一个对技术有洁癖的工程师而言,我认为作为一个选项决定是否显示tag值更为合理。

3)支持多表之间的联合检索

虽然内测的beta版功能已经实现,希望尽快发布出来,是用的人多了,产品才能更加稳定。

下一个发力点

润石认为边缘计算在半导体设备管理上将有更广泛的应用。整个半导体生产线离散程度高,各个设备间常存在两两互联关系,而不管是设备之间还是单台设备均需要较强的算力来支持其反应速度。

TDengine的ARM 32位版,为边缘计算、嵌入式场景下时序数据的存储、查询、分析与计算提供一强大的工具,以解决流行的SQLite在该场景下的诸多不足,并且100%开源。并且提供数据库远程登录功能、提供数据的生命周期管理、提供流式计算、提供数据订阅服务、支持更好的并发等。

可以预见TDengine的ARM 32位版将为VMPC的边缘计算提供很多的便利。

作者简介Blues,润石科技解决方案工程师,主要负责技术架构、业务推广等工作。

公司简介:昆山润石智能科技,是一家科技公司,严格来讲是一家科技创新及应用为主的科技公司,为半导体、泛半导体行业客户提供智能制造一站式解决方案,是全国领先的工业智能化解决方案供应商之一,公司集智能制造需求的软硬件研发、销售、服务于一体。团队成员具备半导体与泛半导体产业资深背景,精通高端智能制造、制程研发、整合及半导体设备知识,丰富的研发、管理、营销经验。

原文首发于:https://www.jianshu.com/p/1547ee76b4aa