《大数据之路:阿里巴巴大数据实践》第二篇 数据模型篇-读书笔记
8.大数据领域建模综述8.1 为什么需要数据建模 数据建模就是数据组织和存储方法,他强调从业务、数据存储和实用角度合理存储数据。
有了适合业务和基础数据存储环境的模型,那么大数据就能获得以下好处:
性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐。
成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。
效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率。
质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
因此,毋庸置疑,大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。
8.2 关系数据库系统和数据仓库 E .F .Codd是关系数据库的鼻祖,他首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究。随着一大批大型关系数据库商业软件(如Oracle、Informix、DB2等)的兴起,现代企业信息系统几乎都使用关系数据库来存储、加工和处理数据。数据仓库系统也不例外,大量的 ...
《大数据之路:阿里巴巴大数据实践》第一篇 数据技术篇-读书笔记
一、数据技术篇2.日志采集本章主要介绍数据采集中的日志采集部分,阿里巴巴的日志采集体系方案包括两大体系:
Aplus.JS是Web端( 基于浏览器)日志采集技术方案;
UserTrack是APP端(无线客户端)日志采集技术方案。
本章从浏览器的页面日志采集、无线客户端的日志采集以及我们遇到的日志采集挑战三块内容来阐述阿里巴巴的日志采集经验。
2.1 浏览器的页面日志采集(1)页面浏览(展现)日志采集
顾名思义,页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志。此类日志是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量(Page View,PV)和访客数(UniqueVisitors,UV)的统计基础。页面浏览日志是目前成熟度和完备度最高,同时也是最具挑战性的日志采集任务,我们将重点讲述此类日志的采集。
(2)页面交互日志采集
当页面加载和渲染完成之后,用户可以在页面上执行各类操作。随着互联网前端技术的不断发展,用户可在浏览器内与网页进行的互动已经丰富到只有想不到没有做不到的程度,互动设计都要求采集用户的互动行为数据,以便通过量化获知用户的兴趣点或者体验 ...
Nacos - 安装
安装使用 docker 启动 nacos# 使用standalone模式并开放8848端口,并映射配置文件和日志目录,数据库默认使用 Derbydocker pull nacos/nacos-server~ ❯ mkdir -p nacos/logs~ ❯ touch nacos/custom.properties~ ❯ vi nacos/custom.propertiesmanagement.endpoints.web.exposure.include=*docker run -d \-p 8848:8848 \-e MODE=standalone \-e PREFER_HOST_MODE=hostname \-v /Users/kami/nacos/custom.properties:/home/nacos/init.d/custom.properties \-v /Users/kami/nacos/logs:/home/nacos/logs \--restart always \--name nacos \nacos/nacos-server # Macos m1 使用 zill ...
《数据中台实战课》原理篇-学习笔记
1、为什么说数据中台是大数据的下一站?
2、到底什么样的企业应该建数据中台?2.1 建设中台前,我们面临的挑战(数据中台解决的问题)
指标口径不一致。指标口径不一致包括:业务口径不一致、计算逻辑不一致、数据来源不一致。例如: 两个数据产品一个包含税,一个不包含税,它们相同的一个指标名称都是销售额,结果却不一样。运营面对这些指标的时候,不知道指标的业务口径,很难去使用这些数据。
数据重复建设,需求响应时间长。随着需求的增长,运营和分析师不断抱怨需求的交付时间拉长,面对快速变化的业务,需求响应时间已经无法满足业务对数据的敏捷研发要求。
取数效率低。 面对数十万张表,我们的运营和分析师找数据、准确地理解数据非常困难,想找到一个想要的数据,确认这个数据和自己的需求匹配,他们往往需要花费三天以上的时间,对新人来说,这个时间会更长。
数据质量差。数据经常因为 BUG 导致计算结果错误,最终导致错误的商业决策。例如:分享一个我们踩过的坑,在大促期间,某类商品搜索转化率增长,于是我们给这个商品分配了更大的流量,可转化率增长的原因是数据计算错误,所以这部分流量也就浪费了,如果分配给其他的商品的话, ...
Linux - centos 卸载 JDK
# 查询rpm包rpm -qa | grep jdkrpm -qa | grep gcj~$ libgcj-4.1.2-42.el5~$ java-1.4.2-gcj-compat-1.4.2.0-40jpp.115# 上面先确认jdk的具体版本号,然后yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115# 添加chmod +x jdk-6u11-linux-i586.bin# 然后解压:./jdk-6u11-linux-i586.binls ./~$ bin db include lib man README_ja.html register.html register_zh_CN.html src.zip COPYRIGHT demo jre LICENSE README.html README_zh_CN.html register_ja.html sample THIRDPARTYLICENSEREADME.txtmv jdk1.6.0_11 /usr/local# 添加环境变量vi /etc/profileexpo ...
处理 bad interpreter No such file or directory
执行命令时有时会出现 bad interpreter: No such file or directory 错误,一般是因为Linux无法识别出Windows的DOS格式,此时只需将文件格式转换成Unix的即可,方法如下:
编辑出错文件:
vi filename
查看该格式(报错文件格式是DOS):
:set ff
修改格式:
:set ff=unix
保存退出:
:wq!
Linux - 基础 - 理解 iowait
%iowait 是 sar -u 等工具检查CPU使用率时显示的一个指标,在Linux上显示为 %iowait,在有的Unix版本上显示为 %wio,含义都是一样的。
09:35:06 AM CPU %user %nice %system %iowait %steal %idle09:35:07 AM all 0.00 0.00 0.00 0.00 0.00 100.0009:35:08 AM all 0.51 0.00 2.53 13.13 0.00 83.8409:35:09 AM all 1.54 0.00 7.69 39.49 0.00 51.2809:35:10 AM all 2.04 0.00 9.18 39.80 0.00 48.9809:35:11 AM all ...
ubuntu16.04搭建elasticsearch6集群
一、安装jdk
1.sudo apt-get install openjdk-8-jdk 注:不能装openjdk-9-jdk设置JAVA_HOME安装java之后设置Java环境变量的最佳实践。 要设置JAVA_HOME,请在 /etc/environment文件中添加以下行,路径可能与您的系统体系结构不同。
echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/" >> /etc/environmentsource /etc/environment
二、安装elasticsearch6.1.2及分词
\1. 安装elasticsearch
cd /data/server/elastic/node/wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gztar zxvf elasticsearch-6.1.2.tar.gzcd elasticsearch-6.1.2./bi ...
Python - 基础 - 时间日期处理小结备忘
原则,以datetime为中心,起点或中转,转化为目标对象,涵盖了大多数业务场景中需要的日期转换处理。
步骤:
掌握几种对象及其关系
了解每类对象的基本操作方法
通过转化关系转化
涉及对象:
datetime
import datetimenow = datetime.datetime.now()type(now)
timestamp
import timetime.time()
时间元组 (time tuple)
import timetime.localtime()
字符串 (string)
import datetimedatetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
日期 (date)
import datetimedatetime.datetime.now().date()
datetime基本操作:
获取当前datetime
import datetimedatetime.datetime.now()
获取当天date
datetime.date.tod ...
Python - 基础 - 操作dict时避免出现KeyError的几种方法
第一种解决方法首先测试key是否存在,然后才进行下一步操作,如:
t = { 'a': '1', 'b': '2', 'c': '3',}if 'd' in t: print(t['d'])else: print('not exist')
会出现:
not exist
第二种解决方法利用dict内置的get(key[,default])方法,如果key存在,则返回其value,否则返回default;使用这个方法永远不会触发KeyError,如:
t = { 'a': '1', 'b': '2', 'c': '3',}print(t.get('d'))
会出现:
None
加上 ...