电信客服综合项目 第1天 项目背景介绍

1、项目背景

通信运营商每时每刻会产生大量的通信数据,例如通话记录,短信记录,彩信记录,第三方服务资费等等繁多信息。数据量如此巨大,除了要满足用户的实时查询和展示之外,还需要定时定期的对已有数据进行离线的分析处理。例如,当日话单,月度话单,季度话单,年度话单,通话详情,通话记录等等+。我们以此为背景,寻找一个切入点,学习其中的方法论。当前我们的需求是:统计每天、每月以及每年的每个人的通话次数及时长。


2、项目架构

在这里插入图片描述


3、项目实现

系统环境:

系统版本
windows10 专业版
linuxCentOS 7.6

开发工具:

工具版本
idea2019.3旗舰版
maven3.2.2
JDK1.8+

提示:idea2017.2.5必须使用maven3.3.9,不要使用maven3.5,有部分兼容性问题

集群环境:

框架版本
hadoop2.7.2
zookeeper3.4.10
hbase1.3.1
flume1.7.0
kafka2.11-0.11.0.0

硬件环境:

Flink105Flink105Flink105
内存4G2G2G
CPU2核1核1核
硬盘50G50G50G

3.1、数据生产

此情此景,对于该模块的业务,即数据生产过程,一般并不会让你来进行操作,数据生产是一套完整且严密的体系,这样可以保证数据的鲁棒性。但是如果涉及到项目的一体化方案的设计(数据的产生、存储、分析、展示),则必须清楚每一个环节是如何处理的,包括其中每个环境可能隐藏的问题;数据结构,数据内容可能出现的问题。

3.1.1、 数据结构

我们将在HBase中存储两个电话号码,以及通话建立的时间和通话持续时间,最后再加上一个flag作为判断第一个电话号码是否为主叫。姓名字段的存储我们可以放置于另外一张表做关联查询,当然也可以插入到当前表中。

列名解释举例
call1第一个手机号码15369468720
call1_name第一个手机号码人姓名(非必须)李雁
call2第二个手机号码19920860202
call2_name第二个手机号码人姓名(非必须)卫艺
date_time建立通话的时间20171017081520
date_time_ts建立通话的时间(时间戳形式)
duration通话持续时间(秒)0600

4、技术栈流程图

(1)电信项目技术框架
在这里插入图片描述
(2)数据分析流程
在这里插入图片描述
(3) 数据展示流程
在这里插入图片描述
(4) 消费模型
在这里插入图片描述

ESP8266是一种常用的微控制器,常用于物联网应用中,它的模拟输入口ADC可以用来采集电压信号。NTC热敏电阻在温度变化时其阻值会相应变化,通过测量这个电阻的电压降可以推算出温度。 以下是一个简单的示例代码,使用了Arduino IDE编写的ESP8266库,假设ADC通道0连接到NTC电阻上: ```c++ #include <ESP8266WiFi.h> #include <OneWire.h> // 如果用的是DS18B20温度传感器 #include <Adafruit_Temperature_Sensor.h> // NTC热敏电阻相关的数据,假设Rref = 100K欧姆 const int ADC_CHANNEL = 0; const float Rref = 100000.0f; // 100k欧姆 const float Vref = 3.3f; // ESP8266的供电电压 Adafruit_NeoPixel led(1, D4); // LED用于显示温度状态 void setup() { Serial.begin(9600); if (pinMode(ADC_CHANNEL, INPUT) == LOW) { // 配置ADC adc.begin(ADC_CHANNEL); } // 初始化温度传感器或者其他通信模块(如WiFi) } void loop() { // 读取ADC样本 int adcValue = analogRead(ADC_CHANNEL); // 将ADC转换为电阻值 float resistance = (float)Vref * Rref / adcValue; // 根据公式计算温度(这里假设线性关系) float temperature_Celsius = 1 / (log(resistance / Rref) * (1/Temperature::Constants::BETA)); // 显示温度并处理 led.setColor(cRGB(255 * tempToColor(temperature_Celsius), 0, 0)); // 红色表示高温 Serial.println("Temperature: " + String(temperature_Celsius) + " °C"); // 适当延时防止频繁采样 delay(1000); } // 转换温度为颜色指数 int tempToColor(float temp) { return map(temp, -273.15, 100, 0, 255); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值