精华内容
下载资源
问答
  • 数据采集系统

    2020-01-06 17:46:57
    两个月的时间,终于做出了数据采集系统,虽然支持的插件少了一点,但是整个数据采集的调度,工作流以及执行引擎功能都已完成,后面需要开发新的数据源只需要添加对应的task任务。 数据采集架构: 程序执行...

    两个月的时间,终于做出了数据采集系统,虽然支持的插件少了一点,但是整个数据采集的调度,工作流以及执行引擎功能都已完成,后面需要开发新的数据源只需要添加对应的task任务。

    数据采集架构:

    程序执行时序图:

     

    展开全文
  • C# 数据采集系统 智能采集 数据分析 整套源码
  • C# 数据采集系统 智能采集 数据分析更新后代码20171208
  • 振动数据采集系统

    2013-01-29 16:20:27
    振动数据采集系统,数据采集系统,振动传感器,位移声压传感器;
  •  ...实验结果表明,与现有的机械臂实时位姿数据采集系统相比较,设计的机械臂实时位姿数据采集系统极大地降低了采集误差,充分证明基于Android的机械臂实时位姿数据采集系统具备更好的采集效果。
  • 土壤数据采集系统

    2020-01-31 11:10:01
    土壤数据采集系统 标签: 系统 数据结构 远程数据库 1.User –类型– ID 用户名 密码 系统数据 电话 地址 名称 ID UserName Key Numbser Where 类型 int varchar varchar [] varchar(20) varchar ...

    土壤数据采集系统

    标签: 系统


    数据结构


    • 远程数据库

    1.User

    –类型– ID 用户名 密码 系统数据 电话 地址
    名称 ID UserName Key Numbser Where
    类型 int varchar varchar [] varchar(20) varchar

    2.Soil

    类型 ID 温度 湿度 气压
    名称 ID WenDu(Max,Min) ShiDu(Max,Min) QiYa(Max,Min)
    类型 int double double double

    3.Price

    类型 种类 价格

    • 本地数据库

    1.Date

    表名 20170101 (日期)

    在此输入正文

    展开全文
  • 采用NI PCI-6221数据采集卡,运用虚拟仪器及其相关技术于多通道数据采集系统的设计。该系统具有数据同时采集、采集数据实时显示、存储与管理等功能,最后使用Web技术实现了采集数据的远程访问。
  • 安卓GIS数据采集系统

    热门讨论 2014-02-19 12:02:48
    安卓版GIS外业数据采集系统,支持工程管理、图层、坐标系转换、参数校正、各类数据采集方式、查询统计、矢量底图、GB级栅格底图、导出shp等功能,支持各类安卓机型!
  • 用labview构建数据采集系统 数据采集是labview这门虚拟仪器...本项目主要包括:用labview构建数据采集系统的前期准备,labview提供的用于数据采集的VIs,构建单通道数据采集系统,将数据采集系统由单通道扩展为多通道。
  • 数据采集系统整体设计与开发》围绕农田远程病虫害监测预警系统,完整地描述网络采集系统硬件设计、芯片固件程序、网络通信、数据服务器、数据库关键技术、Web服务器整个采集过程的工作原理和设计思路。全书共分8章...
  • 传智播客 数据采集系统 包括数据库的创建脚本
  • 开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据采集系统开发者突击22课数据...
  • 本文将重点探讨数据采集层中的用户行为数据采集系统。这里的用户行为,指的是用户与产品UI的交互行为,主要表现在Android App、IOS App与Web页面上。这些交互行为,有的会与后...

    本文将重点探讨数据采集层中的用户行为数据采集系统。这里的用户行为,指的是用户与产品UI的交互行为,主要表现在Android App、IOS App与Web页面上。这些交互行为,有的会与后端服务通信,有的仅仅引起前端UI的变化,但是不管是哪种行为,其背后总是伴随着一组属性数据。对于与后端发生交互的行为,我们可以从后端服务日志、业务数据库中拿到相关数据;而对于那些仅仅发生在前端的行为,则需要依靠前端主动上报给后端才能知晓。用户行为数据采集系统,便是负责从前端采集所需的完整的用户行为信息,用于数据分析和其他业务。

    举个例子,下图所示是一次营销活动(简化版)的注册流程。如果仅仅依靠后端业务数据库,我们只能知道活动带来了多少新注册用户。而通过采集用户在前端的操作行为,则可以分析出整个活动的转化情况:海报页面浏览量—>>点击”立即注册”跳转注册页面量—>>点击“获取验证码”数量—>>提交注册信息数量—>>真实注册用户量。而前端用户行为数据的价值不仅限于这样的转化率分析,还可以挖掘出更多的有用信息,甚至可以与产品业务结合,比如笔者最近在做的用户评分系统,便会从用户行为中抽取一部分数据作为评分依据。

    在早期的产品开发中,后端研发人员每人负责一个摊子,虽然也会做些数据采集的事情,但是基本上只针对自己的功能,各做各的。通常做法是,根据产品经理提出的数据需求,设计一个结构化的数据表来存储数据,然后开个REST API给前端,用来上报数据;前端负责在相应的位置埋点,按照协商好的数据格式上报给后端。随着业务的发展,这样的做法暴露了很多问题,给前后端都带来了混乱,主要表现在:前端四处埋点,上报时调用的API不统一,上报的数据格式不统一;后端数据分散在多个数据表中,与业务逻辑耦合严重。

    于是,我们考虑做一个统一的用户行为数据采集系统,基本的原则是:统一上报方式、统一数据格式、数据集中存储、尽可能全量采集。具体到实现上,归纳起来主要要解决三个问题:

    • 采什么。搞清楚需要什么数据,抽象出一个统一的数据格式。

    • 前端怎么采。解决前端如何有效埋点、全量采集的问题。

    • 后端怎么存。解决数据集中存储、易于分析的问题。

    采什么

    用户在前端UI上的操作,大多数表现为两类:第一类,打开某个页面,浏览其中的信息,然后点击感兴趣的内容进一步浏览;第二类,打开某个页面,根据UI的提示输入相关信息,然后点击提交。其行为可以归纳为三种:浏览、输入和点击(在移动端,有时也表现为滑动)。其中,浏览和点击是引起页面变化和逻辑处理的重要事件,输入总是与点击事件关联在一起。

    因此,浏览和点击便是我们要采集的对象。对于浏览,我们关注的是浏览了哪个页面,以及与之相关的元数据;对于点击,我们关注的是点击了哪个页面的哪个元素,与该元素相关联的其他元素的信息,以及相关的元数据。页面,在Android与IOS上使用View名称来表示,在Web页面上使用URL(hostname+pathname)来表示。元素,使用前端开发中的UI元素id来表示。与元素相关联的其他元素信息,指的是与“点击”相关联的输入/选择信息,比如在上面的注册页面中,与“提交”按钮相关联的信息有手机号、验证码、姓名。元数据,是指页面能提供的其他有用信息,比如URL中的参数、App中跳转页面时传递的参数等等,这些数据往往都是很重要的维度信息。

    除了这些页面中的数据信息,还有两个重要的维度信息:用户和时间。用户维度,用来关联同一用户在某个客户端上的行为,采用的方案是由后端生成一个随机的UUID,前端拿到后自己缓存,如果是登录用户,可以通过元数据中的用户id来关联;时间维度,主要用于数据统计,考虑到前端可能延迟上报,前端上报时会加上事件的发生时间(目前大多数正常使用的移动端,时间信息应该是自动同步的)。

    综合起来,将前端上报的数据格式定义如下。uuid、event_time、page是必填字段,element是点击事件的必填字段,attrs包含了上述的元数据、与元素相关联的其他元素的信息,是动态变化的。

    {
        "uuid": "2b8c376e-bd20-11e6-9ebf-525499b45be6",
        "event_time": "2016-12-08T18:08:12",
        "page": "www.example.com/poster.html",
        "element": "register",
        "attrs": {
            "title": "test",
            "user_id": 1234
        }
    }
    

    而针对不同客户端的不同事件,通过不同的REST API来上报,每个客户端只需调用与自己相关的两个API即可。

    前端怎么采

    整理好数据格式和上报方式后,前端的重点工作便是如何埋点。传统的埋点方式,就是在需要上报的位置组织数据、调用API,将数据传给后端,比如百度统计、google analysis都是这样做的。这是最常用的方式,缺点是需要在代码里嵌入调用,与业务逻辑耦合在一起。近几年,一些新的数据公司提出了“无埋点”的概念,通过在底层hook所有的点击事件,将用户的操作尽量多的采集下来,因此也可以称为“全埋点”。这种方式无需嵌入调用,代码耦合性弱,但是会采集较多的无用数据,可控性差。经过一番调研,结合我们自己的业务,形成了这样几点设计思路:

    hook底层的点击事件来做数据上报,在上报的地方统一做数据整理工作。

    通过UI元素的属性值来设置是否对该元素的点击事件上报。

    通过UI元素的属性值来设置元素的关联关系,用于获取上述的“与元素相关联的其他元素的信息”。

    我们首先在Web的H5页面中做了实践,核心的代码很简单。第一,在页面加载时绑定所有的click事件,上报页面浏览事件数据。第二,通过user_action_id属性来表示一个元素是否需要上报点击事件,通过user_action_relation属性来声明当前元素被关联到哪个元素上面,具体代码实现不解释,很简单。

    $(d).ready(function() {
        // 页面浏览上报
        pvUpload({page: getPageUrl()},
                 $.extend({title: getTitle()}, getUrlParams()));
    
    
        // 绑定点击事件
        $(d).bind('click', function(event) {
            var $target = $(event.target);
            // 查找是否是需要上报的元素
            var $ua = $target.closest('[user_action_id]');
            if ($ua.length > 0) {
                var userActionId = $ua.attr('user_action_id');
                var userActionRelation = $("[user_action_relation=" + userActionId + "]");
                var relationData = [];
    
    
                // 查找相关联的元素的数据信息
                if (userActionRelation.length > 0) {
                    userActionRelation.each(function() {
                        var jsonStr = JSON.stringify({
                                "r_placeholder_element": $(this).get(0).tagName,
                                'r_placeholder_text': $(this).text()
                            });
                        jsonStr = jsonStr.replace(/\placeholder/g, $(this).attr('id'));
                        jsonStr = JSON.parse(jsonStr);
                        relationData.push(jsonStr);
                    });
                }
    
    
                // 点击事件上报
                clickUpload({page: getPageUrl(), element: userActionId},
                            $.extend({title: getTitle()}, getUrlParams(), relationData));
            }
        });
    });
    

    上述代码可以嵌入到任何HTML页面,然后只要在对应的元素中进行申明就好了。举个例子:

    <div>    
        <div>
            <textarea id="answer" cols="30" rows="10" user_action_relation="answer-submit"></textarea>
        </div>
        <button user_action_id="answer-submit">提 交</button>
    </div>
    

    后端怎么存

    数据进入后台后,首先接入Kafka队列中,采用生产消费者模式来处理。这样做的好处有:第一,功能分离,上报的API接口不关心数据处理功能,只负责接入数据;第二,数据缓冲,数据上报的速率是不可控的,取决于用户使用频率,采用该模式可以一定程度地缓冲数据;第三,易于扩展,在数据量大时,通过增加数据处理Worker来扩展,提高处理速率。

    除了前端上报的数据内容外,我们还需要在后端加入一些其他的必要信息。在数据接入Kafka队列之前,需要加入五个维度信息:客户端类型(Web/Android/IOS)、事件类型(浏览/点击)、时间、客户端IP和User Agent。在消费者Worker从Kafka取出数据后,需要加入一个名为event_id的字段数据,具体含义等下解释。因此,最后存入的数据格式便如下所示:

    {
        "uuid": "2b8c376e-bd20-11e6-9ebf-525499b45be6",
        "event_time": "2016-12-08T18:08:12",
        "page": "www.example.com/poster.html",
        "element": "register",
        "client_type": 0,
        "event_type": 0,
        "user_agent": "Mozilla\/5.0 (Linux; Android 5.1; m3 Build\/LMY47I) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/37.0.0.0 Mobile MQQBrowser\/6.8 TBS\/036887 Safari\/537.36 MicroMessenger\/6.3.31.940 NetType\/WIFI Language\/zh_CN",
        "ip": "59.174.196.123",
        "timestamp": 1481218631,
        "event_id": 12,
        "attrs": {
            "title": "test",
            "user_id": 1234
        }
    }
    

    再来看event_id的含义。前端传过来的一组组数据中,通过page和element可以区分出究竟是发生了什么事件,但是这些都是前端UI的名称,大部分是开发者才能看懂的语言,因此我们需要为感兴趣的事件添加一个通俗易懂的名称,比如上面的数据对应的事件名称为“在海报页面中注册”。将page+element、事件名称进行关联映射,然后将相应的数据记录id作为event id添加到上述的数据中,方便后期做数据分析时根据跟event id来做事件聚合。做这件事有两种方式:一种是允许相关人员通过页面进行配置,手动关联;一种是前端上报时带上事件名称,目前这两种方式我们都在使用。

    最后,来看看数据存储的问题。传统的关系型数据库在存储数据时,采用的是行列二维结构来表示数据,每一行数据都具有相同的列字段,而这样的存储方式显示不适合上面的数据格式,因为我们无法预知attrs中有哪些字段数据。象用户行为数据、日志数据都属于半结构化数据,所谓半结构化数据,就是结构变化的结构化数据,适合使用NoSQL来做数据存储。我们选用的是ElasticSearch来做数据存储,主要基于这么两点考虑:

    • Elasticsearch是一个实时的分布式搜索引擎和分析引擎,具有很强的数据搜索和聚合分析能力。

    • 在这之前我们已经搭建了一个ELK日志系统,可以复用Elasticsearch集群做存储,也可以复用Kibana来做一些基础的数据分析可视化。

    Elasticsearch的使用方法可以参考Elasticsearch使用总结一文,这里不做过多讲解。使用Elasticsearch来做数据存储,最重要的是两件事:建立Elasticsearch的映射模板、批量插入。Elasticsearch会根据插入的数据自动建立缺失的index和doc type,并对字段建立mapping,而我们要做的创建一个dynamic template,告诉Elasticsearch如何自动建立,参考如下。批量插入,可以通过Elasticsearch的bulk API轻松解决。

    "user_action_record": {
        "order": 0,
        "template": "user_action_record_*",
        "settings": {
    
    
        },
        "mappings": {
            "_default_": {
                "dynamic_templates": [{
                    "string_fields": {
                        "mapping": {
                            "type": "string",
                            "fields": {
                                "raw": {
                                    "index": "not_analyzed",
                                    "ignore_above": 256,
                                    "type": "string"
                                }
                            }
                        },
                        "match_mapping_type": "string"
                    }
                }],
                "properties": {
                    "timestamp": {
                        "doc_values": true,
                        "type": "date"
                    }
                },
                "_all": {
                    "enabled": false
                }
            }
        }
    }
    

    展开全文
  • 数据采集系统基本结构及参数引言数据采集系统结构框图1.通讯接口2.输入类型1)接口类型2)输入信号3)其他3.模拟电路1)输入阻抗2)单端与差分3)抗混叠滤波4)高通滤波4.数字电路1)量程2)ADC位数3)最大采样率4)...

    引言

    最近意识到关于数据采集相关的参数还没有一个比较明确的意识,所以对其进行学习,记下了一部分笔记,以供日后参考。

    数据采集系统结构框图

    首先我们来看一下一个典型的数据采集系统的结构框图,如下图所示:
    在这里插入图片描述
    有了数据采集系统的结构框图,我们就来看一下在数据采集系统中一些常见的参数的意义和作用。

    1.通讯接口

    通讯接口指采集设备与电脑的连接方式,常用的有如下几种:

    PCI\PCI-E: 采集板卡直接插入电脑的PCI\PCI-E插槽。
    LAN\WLAN: 通过有线或无线网络通讯。

    2.输入类型

    1)接口类型

    BNC:

    BNC接头是监控工程中用于摄像设备输出时导线和摄像机的连接头。
    有别于普通15针D-SUB标准接头的特殊显示器接口。
    由RGB三原色信号及行同步、场同步五个独立信号接头组成。
    在这里插入图片描述

    Micro-BNC:
    在这里插入图片描述
    LEMO:
    在这里插入图片描述
    并口:

    并行接口,指采用并行传输方式来传输数据的接口标准。
    数据的宽度可以从1~128位或者更宽,最常用的是8位,可通过接口一次传送8个数据位。
    在计算机领域最常用的并行接口是通常所说的LPT接口。
    在这里插入图片描述

    2)输入信号

    指输入通道接口支持的输入信号类型或传感器类型:

    电压: 数据采集系统通常采集的是电压信号,并将电压信号做数字采样。
    电荷: 采集电路内部内置电荷放大器,可直接接电荷信号。

    3)其他

    IEPE\ICP:

    指自带电荷\电压放大器的加速度传感器,因放大和调理电路靠近传感器,所以有更好的抗噪声性能。
    使用时需要采集设备供电,要确认采集设备的供电电流和传感器的要求是否匹配。
    ICP是注册商标,特指由PCB生产的IEPE传感器。

    TEDS:

    具有TEDS芯片的传感器,其内部存储了传感器厂家、型号和灵敏度等常用信息,可简化参数配置过程

    3.模拟电路

    1)输入阻抗

    输入端阻抗,因为数采模拟电路采集的通常是电压信号,因此输入阻抗越大,对输入信号的要求就越低、采集效果越好。

    2)单端与差分

    单端与差分指信号的传输方式:

    ①单端
    在这里插入图片描述
    ②差分
    在这里插入图片描述
    差分是将单端信号变为两个信号,其中一个与原信号相同,另一个与其相反,最终结果为两者之差,这样得到的信号可以有效抑制共模干扰,更适合长距离传输。

    3)抗混叠滤波

    滤除高于采样频率一半的信号的模拟滤波器。

    4)高通滤波

    接入的信号通常带有一定的偏置,内置高通滤波,可以方便的去除这部分低频信号。但是也需要结合实际的测试需求选择是否使用高通滤波功能。

    4.数字电路

    1)量程

    信号的测量范围

    2)ADC位数

    模数转换ADC芯片的位数,位数越高采集到的信号的分辨率越高。

    3)最大采样率

    指ADC芯片的支持的最高采样率

    4)动态范围

    采集到信号的最大值与最小值之比,ADC的动态范围通常由芯片的位数决定,即20*log10(2^N),其中N为芯片的位数。例:通常24位芯片为144dB,32位芯片为192dB。

    5.电源

    电源指设备的供电方式。

    交流供电:大型的采集设备通常为交流直接供电
    直流供电:一些便携式的采集设备,因为没有内置电源转换设备,需要使用直流供电,但此类设备一般会提供与笔记本电源类似的转换器。
    POE(有源以太网)供电:通过网线由POE电源供电。

    参考文档

    1.中谱科技-数采系统常用技术参数说明
    链接: https://www.zptest.com/2020/03/18/technical_parameter/
    .

    展开全文
  • 数据采集系统ETL工具

    热门讨论 2011-10-26 14:33:23
    数据采集系统主要解决了药品经销商业务系统的进销存数据的采集、上报的问题。医药渠道数据的采集需要连接多种数据源,实现异构数据之间灵活导数据。本系统兼容了SQL Server、Oracle、DB2等类型各版本的关系型数据库...
  • ForeSpider数据采集系统

    千次阅读 2016-03-31 14:37:49
    前嗅ForeSpider数据采集系统是一款通用性互联网数据采集软件。软件具备全面的采集范围、精准的数据精度、绝佳的抓取性能、简易的可视化操作、智能的自动化采集,使企业能够以很少的人工成本,快速获取互联网中结构化...
  • 机床监控与数据采集系统 杭州乐芯科技有限公司,提供专业CNC数据采集解决方案 MDC 是一套实时的机床数据采集系统,MDC提供强大的机床数据采集功能和分析能力,可以为您提供包括实时的全部机床利用率(OEE)等各种...
  • 基于ZigBee的物联网环境数据采集系统

    万次阅读 多人点赞 2017-06-15 00:04:08
    鉴于ZigBee技术适合用于数据采集系统的的特点, 提出了基于ZigBee的数据采集系统的设计方案, 着重探讨ZigBee节点的硬件设计及其组网设计. 并详细讨论了基于CC2530芯片的数据采集节点的硬件设计方案, 组网设计中的协调...
  • 基于STM32F103的数据采集系统设计,keil4开发环境。F103ZET6
  • 数据采集系统DMS

    2018-12-18 01:11:37
    数据采集系统DMS 一、软件项目开发流程 1.需求分析:业务语言-&gt;技术语言、归纳和整理《需求规格说明书》 2.概要设计:技术路线、结构框架、开发计划《概要设计说明书》 3.详细设计:功能性详细描述、类型、...
  • 有没做过GPRS远程数据采集系统的,问一下你们实现的功能参数 1.数据更新速度 2.采集终端的数量 3.服务器端是使用连接什么方式(TCP ,UDP,长连接还是短连接 )
  • 激光测风雷达由激光发射系统、光学收发扫描系统、光学环行器、平衡光电探测器和高速数据采集系统组成。其中高速数据采集系统是其中非常重要的一部分。由于激光测风雷达系统对数据采集系统的采样率要求很高,同时对....
  • 嵌入式数据采集系统

    2015-02-28 14:58:50
    嵌入式数据采集系统方案需求说明 一、实现目标 方案功能是通过统计产生的气泡数目来测量产生气体体积,整个方案是基于linux系统下实现web服务器访问的数据采集系统,软件程序主要实现的内容包括数据采集、数据库、...
  • 基于MQTT的数据采集系统

    千次阅读 2020-06-25 22:43:46
    基于MQTT的数据采集系统 1.实验目的 本次研究推出一款实用的轻量型智能家居系统,本系统采用STM32为主控芯片,将MQTT通信协议移植到STM32中,将其作为一个MQTTClient。该系统的核心为MQTT协议,该协议占用网络资源较...
  • 基于rs232接口的数据采集系统 基于rs232接口的数据采集系统基于rs232接口的数据采集系统基于rs232接口的数据采集系统
  • test 示波与数据采集系统的TCP接收并展示数据 学习交流QQ群835259695 示波与数据采集系统的TCP接收并展示数据 学习交流QQ群835259695
  • 点击蓝字关注我们AD转换电路近来,为了实现传感器输出信号的采集,购买了AD7705、微控制器(stm32f103)等相关模块,如下图所示;经过一番摸索,也算成功达到了预期要求,感觉收获最大的应该就是不断调试程序的过程中...
  • 自动化设备数据采集系统在各行业的开法应用的步骤方法就显得尤为重要。自动化设备数据采集系统在航海事业、光纤制造产业,数控技术领域,能源自动化行业等中都有应用。 本文以PLC应用为例解决多通道工业数据采集系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,090
精华内容 12,436
关键字:

数据采集系统