
讨论几种针对各种软件系统的数据采集的方式方法。重点关注它们的实现过程、各自的优缺点。
软件接口对接方式
开放数据库方式
基于底层数据交换的数据直接采集方式
1、 软件接口对接方式
各个软件厂商提供数据接口,实现数据汇集,为客户构建出自己的业务大数据平台;
接口对接方式的数据可靠性较高,一般不存在数据重复的情况,且都是客户业务大数据平台需要的有价值的数据;同时数据是通过接口实时传递过来,完全满足了大数据平台对于实时性的要求。
但是接口对接方式需花费大量人力和时间协调各个软件厂商做数据接口对接;同时其扩展性不高,比如:由于业务需要各软件系统开发出新的业务模块,其和大数据平台之间的数据接口也需要做相应的修改和变动,甚至要推翻以前的所有数据接口编码,工作量很大且耗时长。
2、 开放数据库方式
一般情况,来自不同公司的系统,不太会开放自己的数据库给对方连接,因为这样会有安全性的问题。为实现数据的采集和汇聚,开放数据库是最直接的一种方式。
不同类型的数据库之间的连接就比较麻烦,需要做很多设置才能生效,这里不做详细说明。
开放数据库方式可以直接从目标数据库中获取需要的数据,准确性很高,是最直接、便捷的一种方式;同时实时性也有保证;
开放数据库方式需要协调各个软件厂商开放数据库,其难度很大;一个平台如果要同时连接很多个软件厂商的数据库,并且实时都在获取数据,这对平台本身的性能也是个巨大的挑战。
3、基于底层数据交换的数据直接采集方式
101异构数据采集的原理是通过获取软件系统的底层数据交换、软件客户端和数据库之间的网络流量包,进行包流量分析采集到应用数据,同时还可以利用仿真技术模拟客户端请求,实现数据的自动写入。
实现过程如下:使用数据采集引擎对目标软件的内部数据交换(网络流量、内存)进行侦听,再把其中所需的数据分析出来,经过一系列处理和封装,保证数据的唯一性和准确性,并且输出结构化数据。经过相应配置,实现数据采集的自动化。
基于底层数据交换的数据直接采集方式的技术特点如下:
1)独立抓取,不需要软件厂家配合;
2)实时数据采集;
数据端到端的延迟在数秒之内;
3)兼容Windows平台的几乎所有软件(C/S,B/S);
作为数据挖掘,大数据分析的基础;
4)自动建立数据间关联;
5)配置简单、实施周期短;
6)支持自动导入历史数据。
目前,由于数据采集融合技术的缺失,往往依靠各软件原厂商研发数据接口才能实现数据互通,不仅需要投入大量的时间、精力与资金,还可能因为系统开发团队解体、源代码丢失等原因出现的死局,导致了数据采集融合实现难度极大。在如此急迫的需求环境下基于底层数据交换的数据直接采集方式应运而生,从各式各样的软件系统中开采数据,源源不断获取所需的精准、实时的数据,自动建立数据关联,输出利用率极高的结构化数据,让数据有序、安全、可控的流动到所需要的企业和用户当中,让不同系统的数据源实现联动流通,为客户提供决策支持、提高运营效率、产生经济价值。
1、设备类:
指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。比如条码机、扫描仪等都是数据采集工具(系统)。
2、网络类:
用来批量采集网页,论坛等的内容,直接保存到数据库或发布到网络的一种信息化工具。可以根据用户设定的规则自动采集原网页,获取格式网页中需要的内容,也可以对数据进行处理。
数据采集系统包括了:可视化的报表定义、审核关系的定义、报表的审批和发布、数据填报、数据预处理、数据评审、综合查询统计等功能模块。
通过信息采集网络化和数字化,扩大数据采集的覆盖范围,提高审核工作的全面性、及时性和准确性;最终实现相关业务工作管理现代化、程序规范化、决策科学化,服务网络化。
扩展资料
数据采集系统特点:
a、数据采集通用性较强。不仅可采集电气量,亦可采集非电气量。电气参数采集用交流离散采样,非电气参数采集采用继电器巡测,信号处理由高精度隔离运算放大器AD202JY调理,线性度好,精度高。
b、整个系统采用分布式结构,软、硬件均采用了模块化设计。数据采集部分采用自行开发的带光隔离的RS-485网,通信效率高,安全性好,结构简单。
后台系统可根据实际被监控系统规模大小及要求,构成485网、Novell网及WindowsNT网等分布式网络。由于软、硬件均为分布式、模块化结构,因而便于系统升级、维护,且根据需要组成不同的系统。
c、数据处理在WindowsNT平台上采用VisualC++语言编程,处理能力强、速度快、界面友好,可实现网络数据共享。
d、整个系统自行开发,符合我国国情。对发电厂原有系统的改动很小,系统造价较低,比较适合中小型发电厂技术改造需要。
参考资料来源:百度百科-数据采集系统
数据采集技术指完成数据从源端获取,并传输到大数据平台,以供数据治理、数据服务使用。数据是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、半结构化(或称之为弱结构化)及非结构化的海量数据,是大数据知识服务模型的根本。重点要突破分布式高速高可靠数据爬取或采集、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大数据整合技术;设计质量评估模型,开发数据质量技术。
OceanMind海睿思数据采集包括公开数据采集和采集汇聚工具。
公开数据采集主要偏向于互联网公开数据的采集、汇聚,公开数据采集是一个灵活、便捷、高效、可扩展的互联网数据爬虫系统。可实现利用模板从指定公开网页上爬取数据,并提供给后续数据处理使用。
采集汇聚工具偏向于持有型数据的采集、汇聚,汇聚工具是可视化数据采集软件,外部数据通过采集工具将数据库或文件类型的数据转换为制定格式的文件(CSV、parquet)存放到指定的FTP路径,然后通过汇聚工具将FTP傻姑娘的文件汇聚至大数据平台。
数据库数据质量是数据库的生命,再好的入库数据质量控制的方法,如果得不能贯彻和执行,也不能保证入库数据的正确性。所以,基于上述入库数据质量控制思想,研发了航空物探数据库数据采集软件(图5-3),强制数据入库工作按规范化的流程执行,保证数据库数据质量。
数据采集软件包括数据导入录入、数据检查、数据编辑、数据归档入库等功能,为了方便数据采集人员工作,把本系统应用软件中的数据查询统计和数据制图功能也集成到该软件中。各部分功能分述如下。
图5-3 数据库数据采集软件结构
一、创建项目树
航空物探勘查项目工作一般分为航空物探生产测量、数据处理和地质解释3个阶段,野外生产测量和数据处理完成之后分别编写航空物探生产报告和数据处理报告,通过评审后须上交测量资料和处理后的数据。此时,地质解释工作正进行。
航空物探科研项目工作一般是分课题(二级项目)、课题分子课题(三级项目)等进行的。级别低的项目总是最先完成,然后评审和上交资料;级别较高的项目较后完成,一级项目最后完成,最后上交资料。
如果把勘查项目的3个阶段当成3个课题(事实上的确如此,只是习惯上不这样叫),勘查项目和科研项目不仅在工作形式上是一致的,资料上交的次序也是相同的(图5-5)。这种按项目完成的先后次序进行项目资料归档方式,在资料人工管理人工服务时代,人们并没有觉得有什么问题。只是,资料管理方式的变革,人们对资料服务提出了更高的要求,希望资料信息化管理不要再忽视不同级别项目间的关系信息。
这种关系与计算机磁盘文件管理的目录间关系是相似的,目录等同于项目,子目录等同于子项目。目录、子目录间的关系似树形结构,称为目录树;项目、子项目间的关系也似树形结构,称之为项目树。有计算机常识的人都知道,按照一定的方式建立目录树,把文件存在相应目录下,不仅文件管理更有条理,用户查找文件的速度也成倍提高。因此,本系统采用项目树方式来管理项目资料。该管理方式符合人们的思维习惯,资料查询更方便。
图5-4 数据库数据采集软件主界面
图5-5 不同级别项目资料归档次序图
在新项目数据导入或录入数据库之前,须先创建项目树。建项目树与在磁盘上创建文件目录相似,按项目(目录)、子项目(子目录)顺序创建,不能倒行逆施。然后,按项目导入或录入数据。图5-6为创建项目树界面。用户在父项目的下拉框中选择新建项目的父项目(一级项目为null),再填写项目的档案号等信息后,按“确定”创建项目树的根项目(一级项目),或项目树的一个节点(子项目),并自动为项目分配一个项目标识号,作为识别项目和项目资料的唯一标志。
图5-6 创建项目树功能界面
二、数据录入和导入
项目数据进入数据库有数据录入和数据导入两种方式。数据录入方式是使用系统的数据录入界面将数据直接录入到数据采集库中。若用户已按入库数据接口标准要求整理好入库数据,可采用导入方式将数据导入到数据采集库中。其实,这两种方式没有本质上的差别。例如,项目概况数据、空间要素类(岩石物性、异常、解释评价)属性数据等都必须是人工录入的,区别是谁来录入资料整理人员,还是数据采集人员这不属本系统的研究范畴,系统支持这两种数据入库方式。
因数据库的每张表所包含的信息不同,所以每张表都应有独立的数据录入界面(录入、浏览、编辑数据)。加之用户查询界面、数据统计界面,1张数据库表需要3个用户界面。本系统共有地球物理数据库表31张,按照常规做法需要开发93个用户界面。随着航空物探技术发展,可能在数据库表中增加新的信息,或新增数据库表,都需要通过修改软件代码来满足新的需求。该方法不仅软件研发和测试工作量大,后期软件维护工作量也很大。
为此,本系统研究出根据数据库表的描述信息动态生成用户界面的方法,此方法具有很好的通用性,对数据库的所有表均适用,有效地降低了软件开发工作量,方便了后期软件维护。图5-7是使用该方法动态生成的项目概况数据录入界面,用于项目概况数据的录入和编辑。
图5-7 项目概况数据的录入定制界面
该方法是将数据库表的描述信息存储在资料库中的库表属性清单表中,在运行时系统根据数据库表名称从库表属性清单表和其相关的数据字典表中提取该表对应的字段信息,然后调用界面定制函数,根据界面类型(录入、浏览、修改、简单查询)动态生成相应的界面。
由于数据库表包含的字段数相差较大(多的近30个字段,少的不到10个字段)、同一表的字段类型不同(有字符串、数字、时间、大字段)、字段数据类型长度不一(有的字段长度为200个字符,有的只有1个字符),同时库表的相关字段在界面上相邻摆放较合适,针对这些问题在界面定制时采取以下策略:
1)对库表字段分组,并为每组取一个合适的名字。在定制界面上,同组的字段摆放在同一张卡片中,组名作为卡片名。
2)字段值来源于数据字典表的数字型字段,用组合框显示其值,组合框中内容从数据字典表提取。用文本框显示其他数字型字段、字符串型字段值。
3)根据定制界面上父控件的尺寸、字段名称、字段数据类型长度确定其对应控件的位置和大小,控件的布局遵循一行最多显示两字段的原则。
不同类型界面的定制方法大同小异,因此采用了同界面定制代码,只是在个别地方根据需要相关处理。例如,对于大字段型的字段,如果界面定制类型为“录入”,则其对应文本框后的命令按钮为打开文件。如果界面定制类型为“浏览”,则其对应文本框后的命令按钮为浏览大字段值。
三、入库前系统检查
入库数据进入采集数据前,系统对其进行唯一性检查、缺项检查和数据类型检查,即入库前系统检查。
唯一性检查:航空物探资料库是航空物探数据的最终目的地,但可能会有部分项目数据因没有通过质量检查而滞留在采集库中。在进行新的项目数据采集过程时,为了避免项目数据2次入库,在其进入采集库前需要进行唯一性检查。方法是用入库数据每条记录主键作为查询条件,查找资料库和采集库中相对应的库表是否存在有相同的记录。例如,黄海北部海域航空磁测普查(项目标识号AGS011978000251),在项目概况数据导入采集库时,根据项目概况数据库表的项目标识号(主键)在采集库和资料库的相应表中查找是否有相同的项目标识号存在:若资料库中存在,说明该项目数据已归档;若采集库中存在,该项目数据已被导入采集库中待检,不需再次导入。
缺项检查:入库数据的字段数必须等于相应数据库表的字段数,比数据库表字段数多或少都不能通过缺项检查。
数据类型检查:对入库数据所有字段数据进行类型检查。若是日期型数据,则检查数据格式(YYYY-MM-DD),YYYY、MM、DD是否为数字。若数字型数据,检查整数位和小数位的位数是否超过范围,整数位和小数位是否为数字。字符型数据,则检查字符串长度是否超限。
入库数据通过入库前系统检查后被存入采集库中,否则软件给出错误提示信息(图5-8)。采集人员根据提示信息纠正数据中存在错误,再新导入数据。
图5-8 入库前系统检查的错误提示
四、入库后系统检查
系统对进入采集库中的数据进行非空和可空检查、前后数据检查、相关数据检查、值域范围检查、选择范围检查,即入库后系统检查(图5-9)。
非空检查:入库数据指定字段的值不能为空,如所有数据库表的项目标识不能为空,项目名称、项目参加单位名称、参加人员名称都不能为空。
可空缺项检查:入库数据指定字段的值在有一定条件下可以为空,例如当勘查项目概况表记录方式字段的值为打点记录或纸卷模拟记录时,航磁数据的采样率为空。若为数字收录,航磁数据的采样率不能为空。
前后数据检查:检查入库数据指定字段与其父表中相同字段数据的一致性,如项目参加人员表中的项目标识必须与项目概况信息中的项目标识相同。
图5-9 入库后系统检查
相关数据检查:检查相关表中相关字段数据对入库数据指定字段的约束,如项目概况信息中有项目的起始日期和完成日期两个字段,那么项目人员参加项目工作的起止日期都必须在项目的起始日期和完成日期之间。
值域范围检查:入库数据指定字段的数值必须是在设定的值域范围内,如勘查项目概况中的调机小时设定在0和100h范围,若超过此范围,调机小时数据有错误。
选择范围检查:入库数据指定字段的数值必须是一个已知数据集合的元素之一,如项目成果评价只能在优秀、良好、通过和不合格4个选项中择其一。
根据选定的库表名提取该库表各个字段的检查规则,逐条记录进行前后数据检查、相关检查、值域范围检查、选择范围检查。发现错误,把错误记录暂存在内存中,继续进行下条记录检查,至所有记录检查完。把错误写入检查日志表(若有相同检查日志记录,则先备份到检查日志备份表后再删除,以便查看数据入库不通过的历史轨迹);否则,写入一条系统检查通过的日志记录。再进行另一张表的系统检查,所有库表全部检查后,若有错误,系统给出错误提示信息。
五、拓扑检查
航空物探解释数据和评价数据为空间要素类数据,入库时要进行拓扑检查(表5-6,图5-10)。检查各要素类之间相互位置关系的正确性。
以油气远景评价数据集为例说明拓扑检查。检查规则是局部构造异常位置应位于油气远景评价区的某一分布区内,油气远景评价区之间不以有重叠。若发现错误,把检查的错误日志暂存在内存中,继续进行拓扑检查;检查完成后,把错误写入检查日志表。没有发现拓扑错误写入一条通过拓扑检查的日志记录。
表5-7 解释数据和评价数据拓扑检查规则表
图5-10 拓扑检查空间数据源列表界面
六、文件比较检查
通过入库后系统检查和拓扑检查的入库数据,系统将对其进行与原数据文件比较检查,保证数据的一致性。所有的入库数据均须与原数据文件进行比较检查。
根据项目标识号和库表名从采集库中提取相应的数据,若存在数据字典代码,则将其替换文字字符,存放在Oracle临时表中;打开本地路径下原数据文件,逐条记录对比。若有不匹配的记录,显示提示信息,并在日志库中写一条检查日志。
七、人工检查与复核
经过系统检查、空间拓扑检查,以及文件比较检查后,还必须进行人工检查和人工复核检查。人工检查是用原表格数据、空间属性数据、解释评价数据、图件、文字报告(含软件源代码)与采集库中相应的各类数据进行人工比对。若有原始纸质图件,则需从采集库中提取相应的数据使用相同软件相同绘图参数绘图,并加以比较。若人工检查发现错误,写明错误原因(图5-11),保存日志。
图5-11 填写人工检查结果界面
人工复核检查与人工检查过程完成一样,只是人员不同。
八、系统归档检查
在入库数据归档到资料库之前,系统对归档项目数据的完整性进行检查,即归档检查。系统根据归档项目的类别、工作性质、测量方法及归档阶段,定义了项目资料归档对照表,该表记录每类项目各个归档阶段的项目资料清单和资料的归档标识。在资料归档时,系统检查项目资料的归档标识。若为非空,说明该资料必须归档;若为空,说明该资料可归档,从而保证了数据库中的项目资料完整性。
如区域航空磁力勘查项目资料归档分为3个阶段(图5-12),第一阶段是生产测量资料归档,航空磁力勘查项目概况(项目概况、勘查项目概况、航磁概况)信息、测区信息生产报告必须归档。第二阶段是数据处理资料归档,航迹线数据、航磁数据、数据处理报告必须归档。第三阶段是地质解释资料归档,项目概况信息、岩石磁性数据、图件数据、文字数据、断裂构造和区域构造单元必须归档。
科研项目资料归档时,根据项目标识号及项目级次,确定该项目是否有子项目,以及子项目资料是否已全部归档。在所有子项目资料全部归档后,使用项目资料归档向导(图5-13)进行该级次的项目资料归档。如果项目属保密项目,系统同时对归档数据进行加密。数据成功归档后,系统删除采集库中已归档数据,并把各种检查日志存放到备份日志表中,以备检查。
图5-12 勘查项目资料归档示意图
图5-13 项目资料归档向导
MSCOMM控件在VB6的企业版中有,需通过部件添加方式加载。
Private Sub MSComm_OnComm()
Dim bytInput() As Byte
Dim intInputLen As Integer
Select Case frmMainctrMSCommCommEvent
Case comEvReceive
If blnReceiveFlag Then
If Not frmMainctrMSCommPortOpen Then
frmMainctrMSCommCommPort = intPort
frmMainctrMSCommSettings = strSet
frmMainctrMSCommPortOpen = True
End If
'此处添加处理接收的代码
frmMainctrMSCommInputMode = comInputModeText '按ASCII接收
intInputLen = frmMainctrMSCommInBufferCount
ReDim bytInput(intInputLen)
bytInput = frmMainctrMSCommInput
Text1 = bytInput
Text2 = Text1
jscd = Len(Text1)
If Left(Text1, 1) <> Chr(27) Or jscd > 25 Then '
frmMainLabel3BackColor = vbRed
frmMainLabel3ForeColor = vbWhite
frmMainLabel3Caption = "接收信号出错!"
ElseIf Left(Text2, 1) = Chr(27) And Mid(Text2, 25, 1) = Chr(13) Then
frmMainLabel3BackColor = vbGreen
frmMainLabel3ForeColor = vbBlack
frmMainLabel3Caption = "接收信号正常!"
If Left(Text2, 6) = Chr(27) & "R0032" And jscd = 25 Then
If Val(fa2) >= 0 And Len(fa2) = 4 Then
fa2 = "0" & Mid(fa2, 2, 3)
End If
frmMaintxtSend = Chr(27) & fa0 & fa1 & "9999" & zhenkong & fa2 & fa3 & fa4 & Chr(13)
lenTxtSend = Len(txtSend)
frmJishiLabel8Caption = txtSend
frmJishiLabel11Caption = lenTxtSend
If lenTxtSend = 24 Then
Call commFasong
Else
frmMainLabel3BackColor = vbRed
frmMainLabel3ForeColor = vbWhite
frmMainLabel3Caption = "发送信号出错!"
End If
blL1 = Mid$(Text2, 19, 2)
If blL1 = "01" Then
record_jmm(0) = Val(Mid$(Text2, 21, 4)) / 10 '制品1温度
ElseIf blL1 = "02" Then
record_jmm(1) = Val(Mid$(Text2, 21, 4)) / 10 '制品2温度
ElseIf blL1 = "03" Then
record_jmm(2) = Val(Mid$(Text2, 21, 4)) / 10 '制品3温度
ElseIf blL1 = "04" Then
record_jmm(3) = Val(Mid$(Text2, 21, 4)) / 10 '制品4温度
ElseIf blL1 = "05" Then
record_jmm(4) = Val(Mid$(Text2, 21, 4)) / 10 '制品5温度
ElseIf blL1 = "06" Then
record_jmm(5) = Val(Mid$(Text2, 21, 4)) / 10 '制品6温度
End If
record_jm(0) = Val(record_jmm(0))
record_jm(1) = Val(record_jmm(1))
record_jm(2) = Val(record_jmm(2))
record_jm(3) = Val(record_jmm(3))
record_jm(4) = Val(record_jmm(4))
record_jm(5) = Val(record_jmm(5))
blL = Mid$(Text2, 7, 6)
Call Hex_bin '输出口状态鉴别
blLg = Mid$(Text2, 13, 6)
Call hex_bin1 '输出口故障状态鉴别
txtSend = ""
Else
txtSend = ""
End If
End If
If Not blnAutoSendFlag And Not blnReceiveFlag Then
frmMainctrMSCommPortOpen = False
End If
End If
End Select
End Sub
以上是一段MSCOMM的ONCOMM事件代码,接收的数据按上下位机约定取出赋值于全局变量,在其它窗体进行数据记录(写入数据库)至于数据分析确如一楼说的可以海阔天空,通过数据控件及SQL语句来完成任务
以下提供MSDN参考:
OnComm 常数
常数 值 描述
comEvSend 1 发送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 线变化。
comEvDSR 4 data-set ready 线变化。
comEvCD 5 carrier detect 线变化。
comEvRing 6 振铃检测。
comEvEOF 7 文件结束。
MSComm 控件提供下列两种处理通讯的方式:
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。
在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
SThreshold 属性
在 MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。
说明
若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。
如果在传输缓冲区中的字符数小于 value,CommEvent 属性设置为 comEvSend,并产生 OnComm 事件。comEvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时,comEvSend 才发生。如果在输出队列中从没有比 Sthreshold 多的字符,comEvSend 事件将绝不会发生。
CommEvent 属性包含实际错误或产生 OnComm 事件的数码。注意,设置 Rthreshold 或 Sthreshold 属性为 0,分别使捕获 comEvReceive 和 comEvSend 事件无效。
用Timer实现,如果数据采集是通过查询数据库,控件用dataGridView,在Timer的Tick事件中将查询到的数据赋值给dataGridView的datasource。
SqlParameter[] param ={
new SqlParameter("@flag",SqlDbTypeInt),
new SqlParameter("@deptcode",SqlDbTypeVarChar,50),
new SqlParameter("@DeviceType",SqlDbTypeVarChar,4)
};
param[0]Value = "1";
param[1]Value = LoginForm_RoleDeptCodeToString()Trim(); //变量名,已经赋值
param[2]Value = "90";
dataGridView1DataSource = CardBindTKQEventForCardNo(param)Tables["TKQEventForCardNoSS"]; // CardBindTKQEventForCardNo查询数据库,返回数据集
以上就是关于几种数据采集的方式哪个好全部的内容,包括:几种数据采集的方式哪个好、数据采集系统有哪几种采集方式,各自有什么特点、数据采集技术是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)