- 博客(71)
- 资源 (4)
- 收藏
- 关注
原创 数仓维度建模之维度表技术基础
数仓维度建模之维度表技术基础01 维度表结构组成结构:主键 + 维度属性名词解释:主键:作⽤是与事实表的外键进⾏关联。维度属性:是⽤于描述维度特性的字段,⼀般作为 group by分组查询的条件。举个例⼦:时间维度表 时间id在时间维度表⾥作为主键存在,事实表中也存 在⼀个时间id与之关联,得到时间维度的⼀些维度属性02 ⼀致性维度概念:当不同的维度表的属性具有相同列名和领域内容时, 称维度表具有⼀致性。利⽤⼀致性属性与每个事实表 关联,可将来⾃不同事实表的信息合并到同⼀报表 中。
2021-09-18 11:32:19 772
原创 pyspark使用hbase详解
pyspark使用hbase详解一、测试代码:def write2hbase(): from pyspark.sql import SparkSession from pyspark import SparkContext, SparkConf spark = SparkSession.builder.appName("nlp").getOrCreate() # 创建spark对象 print('spark对象已创建') host = 'emr1:2181,e
2021-07-27 16:37:53 2034
原创 生产环境-数据仓库组件之Kafka(二)《性能优化》
生产环境-数据仓库组件之Kafka(二)《性能优化》1、Heap Size的调整vim kafka-server-start.sh默认配置:KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"调整为:KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"推荐配置:一般HEAP SIZE的大小不超过主机内存的50%。vim server.properties(2-8都是在该文件配置)2、网络和ios操作线程配置优化:默认配置:broker处理消息的最大线程数num.
2021-06-23 15:37:37 226
原创 生产环境-数据仓库组件之Kafka(一)
数据仓库组件之Kafka(一)1、调整参数安装Kafka,进行service.properties参数的调整(3台都进行调整)# 每个机器的唯一表示,这个作用类似于zookeeper中的myid文件和HDFS中的slaves文件broker.id=0# 配置kafka和zookeeper之间的连接端口和列表,因为kafka是依赖于zookeeper的zookeeper.connect=cdh01:2181,cdh02:2181,cdh03:2181# 指定Kafka持久化消息的目录,Kafka
2021-05-14 14:52:16 301
原创 生产环境-数据仓库组件之Flume
数据仓库组件之Flume一、前言 Flume是一个可以收集日志等数据资源,并将这些庞大的数据从各项数据源中集中起来存储的高可用,分布式的工具,其设计的原理也是基于数据流。二、架构1 架构示意图2 架构说明:根据我们公司的业务架构,生产环境的服务器基本上是两台,所产生的日志数据分别存放在自己的本地路径下,并没有在大数据集群的服务器上,所以我们需要Flume子节点将日志数据传输到大数据集群。通过我们大数据集群上的Flume再下沉到Kafka集群在下沉到Kafka集群时,需要遵守Kafka
2021-05-14 14:27:02 290 2
原创 使用sqoop全量和增量导入脚本(hive--mysql mysql--hive)
一、MySQL ----> Hive1、考虑到安全性问题,我们会将数据库、服务器的连接信息放在一个配置脚本里,然后在执行脚本里调用这个配置脚本,从而使配置和执行进行解耦分离2、配置脚本(db_config.sh)!/bin/shjdbc=mysql://ip:3326/testusername=rootpassword=roottable=wb_robothive-database=zl_testhive-table=t13、将MySQL历史全量数据进行导入到hive!/bin
2020-06-23 17:21:32 3871
原创 kafka学习之linux单机安装kafka
linux单机安装kafka一、关闭SELINUXvi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出setenforce 0 #使配置立即生效二、配置关闭防火墙,开启9092端口启动一个服务:systemctl start firewalld.service关闭一个服务:systemctl stop firewalld.service
2020-06-10 09:46:43 272
原创 服务器部署dble全流程
我这里使用的版本是actiontech-dble-2.20.04.0.tar,服务器 IP地址 描述DBLE服务器 192.168.56.185 DBLE实例,数据库中间件,负责接收SQL进行路由分发MySQL A服务器 192.168.56.181 物理实例A,将会创建db1,db3,db5三个schemaMySQL B服务器 192.168.56.182 物理实例B,将会创建db2,db4,db6三个schema开始安装:一、首先需要在dble Ser
2020-06-04 14:04:24 1088 1
原创 物理拷贝备份mysql到其他机器上恢复
1、所要拷贝数据库service mysqld stopcp -a /var/lib/mysql /home/mysql2、目标数据库service mysqld stopmv /var/lib/mysql /var/lib/mysql_bak3、所要拷贝数据库scp -i id_dsa_dev -r /home/mysql root@10.9.252.119:/var/lib/4、目标数据库我们看到权限是root组的root用户,这里我们要授权给MySQL组的mysql用
2020-06-03 09:47:49 371
原创 python读取MySQL数据存到一个Excel的多个sheet表里,并通过邮件发送
需求:python读取MySQL数据存到一个Excel的多个sheet表里,并通过邮件发送代码:import pymysqlimport xlwtimport datetimefrom email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart
2020-06-02 18:07:46 1079
原创 win10下tomcat在idea的安装配置
一、下载Tomcat1、进入官网http://tomcat.apache.org/,选择download,下载所需Tomcat版本。此处我选择下载最新版本Tomcat 9。注意有zip和exe两种格式的,zip(64-bit Windows zip(pgp,md5,sha1))是免安装版的,exe(32-bit/64-bit Windows Service installer(pgp,md5,sha1))是安装版。同时观察自己的电脑是64位系统还是32位系统。此处选择下载zip版;下载后直接解
2020-05-29 18:40:47 924
原创 Spring注解@Resource和@Autowired区别对比
Spring注解@Resource和@Autowired区别对比@Resource和@Autowired都是做Bean的注入时使用,其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入共同点:两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不用再写setter方法不同点:1)@Autowired@Autowired为Spring提供的注解,需要导入包org.springfra
2020-05-29 18:27:57 310
原创 hive自定义函数udtf(临时和永久函数)
用户定义表生成函数UDTF(user-defined table-generating function,UDTF) 操作作用于单个数据行,并且产生多个数据行-------一个表作为输出。lateral view explore()1、编写自定义的udtf函数编程思路:继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF,实现initialize,process, close三个方法。UDTF首先会调用initialize方法,此方法返回UDT
2020-05-29 14:33:52 846
原创 hive自定义函数udf(临时和永久函数)
hive自定义函数udf和udtf一、UDF(user defined functions)用于处理单行数据,并生成单个数据行1、自定义UDF 的步骤:1.1、编写自定义的UDF函数继承"org.apache.hadoop.hive.ql.exec.UDF"类至少实现一个evaluate()方法,evaluate函数支持重载例子:import org.apache.hadoop.hive.ql.exec.UDF;import java.text.ParseException;import
2020-05-28 17:40:16 1980
原创 Spark Streaming 和 Flink 详细对比
干货 | Spark Streaming 和 Flink 详细对比原文详见:https://mp.weixin.qq.com/s/Fb1cW0oN7xYeb1oI2ixtgQ
2020-05-27 14:21:24 335
原创 spark streaming的业务场景(无状态、有状态、窗口操作)
spark streaming支持的业务场景:1、无状态操作:每个批次处理都不依赖于先前批次的数据,只关注当前的DStream中的实时数据,例如 只对当前的DStream中的数据做正确性校验。每个DStream在内部是由许多个RDD(也叫批次)组成,且无状态转化操作是分别应用到每个RDD上的。无状态转化操作的例子map、filter等等,操作都是每个批次中的数据,但是DStream如果使用join,union等基于健的操作的话,那么所传的RDD就必须同样也是DStream才行。SparkStrea
2020-05-26 17:14:12 1219 1
原创 hive实操六(用户标签连接查询)
用户标签连接查询数据: tags_info 表:字段(一个): tags1,2,31,22,3lab_info表:字段(两个):Id lab1 A2 B3 C根据两个表的数据,期望编写sql实现如下结果:ids tags1,2,3 A,B,C1,2 A,B2,3 B,C所用SQL: -- 建表和加载数据create table tags_info( tags string);load dat
2020-05-25 19:23:30 644
原创 hive的udtf函数一(lateral view explode源码解析)
hive的udtf函数二 (lateral view explode源码分析)Lateral view与UDTF函数一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用UDTF,然后连接结果输出行与输入行组成拥有指定表别名的虚拟表。测试SQL:explain select c1 as mlike from person_infolateral view explode(likes)t1 as c1;下图是上面SQL的hive执行任务:对每一步进行
2020-05-25 18:51:13 979
原创 hive的udtf函数一(lateral view explode)
基础介绍:1.explode函数explode函数以array类型数据输入,然后对数组中的数据进行迭代,返回多行结果,一行一个数组元素值ARRAY函数是将一列输入转换成一个数组输出。例如:SELECT explode(array(1,2,3)) AS element;OKelement123Time taken: 0.327 seconds, Fetched: 3 row(s)数据准备:1 zhang3 "sing","tennis","running" "beijing":"d
2020-05-25 16:47:04 945
原创 hive中的拼接函数(concat,group_concat,concat_ws,collect_set)
1、concatconcat() 函数用于将多个字符串连接成一个字符串。concat(string s1, string s2, string s3,…)表示通过s1、s2和s3连接一起举例:+----+--------+| id | name |+----+--------+| 1 | city |+----+--------+CONCAT(id,’:’,name) = 1:city2、concat_wsconcat_ws() 指定参数之间的分隔符concat_ws(s
2020-05-25 14:41:14 16916
原创 hive实操五(每个用户连续登陆的最大天数)
每个用户连续登陆的最大天数数据:1,2019-08-011,2019-08-021,2019-08-032,2019-08-012,2019-08-023,2019-08-013,2019-08-034,2019-07-284,2019-07-294,2019-08-014,2019-08-024,2019-08-03期望结果:uid cnt_days 1 32 23 14 3所用SQL:create ta
2020-05-22 14:34:55 724
原创 hive实操四(订单及订单类型行列互换)
数据:111 N 10:00111 A 10:05111 B 10:10期望结果:order_id order_type_1 order_type_2 order_time_1 order_time_2 111 N A 10:00 10:05 111 A B 10:05 10:10所用SQLcreate table order_type(o
2020-05-21 18:32:10 215
原创 Hive分析窗口函数一(LAG,LEAD,FIRST_VALUE,LAST_VALUE)
数据准备:cookie1,2015-04-10 10:00:02,url2cookie1,2015-04-10 10:00:00,url1cookie1,2015-04-10 10:03:04,1url3cookie1,2015-04-10 10:50:05,url6cookie1,2015-04-10 11:00:00,url7cookie1,2015-04-10 10:10:00,url4cookie1,2015-04-10 10:50:01,url5cookie2,2015-04-10
2020-05-21 15:53:30 217
原创 hive实操三(每班前三名和前三名按名次排序的一次的分差)
编写sql语句实现每班前三名,分数一样并列,同时求出前三名 按名次排序的一次的分差数据:1 1901 902 1901 903 1901 834 1901 605 1902 666 1902 237 1902 998 1902 679 1902 87结果如下:1901 1 90 1 1 901901 2 90 2 1 01901 3 83 3 1 -71902 7 99 1 1 991902 9 87 2 2 -121902 8 67 3 3 -20SQL如下:cr
2020-05-21 15:38:26 756
原创 hive实操二(连续7天登录的总人数)
求连续7天登录的总人数数据:1 2019-07-12 11 2019-07-13 11 2019-07-14 11 2019-07-15 11 2019-07-16 11 2019-07-17 11 2019-07-18 12 2019-07-11 12 2019-07-12 12 2019-07-13 02 2019-07-14 12 2019-07-15 12 2019-07-16 02 2019-07-17 12 2019-07-18 03 2019-07-11 1
2020-05-20 18:49:26 1086
原创 hive实操一(最大单月访问次数和用户月累计访问次数)
编写sql实现每个用户截止到每月为止的最大单月访问次数和累 计到该月的总访问次数数据:A,2015-01,5A,2015-01,15B,2015-01,5A,2015-01,8B,2015-01,25A,2015-01,5A,2015-02,4A,2015-02,6B,2015-02,10B,2015-02,5A,2015-03,16A,2015-03,22B,2015-03,23B,2015-03,10B,2015-03,1每个用户截止到每月为止的最大单月访问次数和累计
2020-05-20 18:39:54 1298
原创 大数据踩过的坑(一)hive union
大数据踩过的坑(一)hive union今天朋友问我一个关于hive的问题,是想将两个筛选条件的值加起来,然后就想到了用union,因为最近用的MySQL比较多,就直接写了union,朋友说hive里没有union,只有union all,但是我这边用union测试的是没有问题的,然后就上网搜了一下,列了下面几点合并前的两个SQLselect count(distinct uid) as ct1from userswherestatus=1;selectcount(distinct u
2020-05-20 18:00:06 2204
原创 MySQL8性能测试五(日期虚拟列)
mysql 虚拟列创建表CREATE TABLE `date_virtual_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255), `buy_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '时间', `buy_day` int(9) GENERATED ALWAYS AS (date_format(`buy_time`,'%Y%m%d'))
2020-05-20 10:36:43 809
原创 MySQL8性能测试四(nosql)
NoSQL数据库数据库大致上可以分为四类:键值存储,列存储,文档存储和图形存储。MySQL8新增了NoSQL的文档存储将mysql用作文档存储时,集合是容器,集合包含可以添加、查找、更新、和删除的JSON文档。这里会用到mysql-shell,下载地址:链接:https://pan.baidu.com/s/1VX3eQIeiAslzpeDC4RzSnQ 密码:3u2y然后解压就可以进入mysql-shell的bin目录执行./mysqlsh root@localhost:33060/test
2020-05-20 10:16:39 582
原创 MySQL8性能测试三(myisam引擎)
从MySQL 8.0版本开始,就不允许创建 MyISAM 分区表了,只允许创建已经实现了本地分区策略的引擎。到目前为止,只有InnoDB和NDB这两个引擎支持本地分区策略。CREATE TABLE t (i INT) ENGINE = MYISAM;在MySQL 8.0中,通常需要使用它 ENGINE来指定MyISAM 存储引擎,因为InnoDB它是默认引擎。数据量:408434条,141.7M,50个并发,查询1000次,结果如下:Mysql8使用InnoDB引擎测试Mysql8使用MyIS
2020-05-20 09:38:14 1504
原创 服务器otter部署全流程
jdk安装包链接:https://pan.baidu.com/s/16TaQgey-arlK6rw-nyz9rQ 密码:h7gpzookeeper安装包链接:https://pan.baidu.com/s/1ahdf9YJIMj2LDYH_VaGtJA 密码:ccrhotter安装包链接:https://pan.baidu.com/s/1eDl9nu6Jq_ZbW1KgLHw07g 密码:gk9z一、安装jdk1、查看是否存在which java2、卸载mv /usr/bin/ja
2020-05-18 16:08:09 1782
原创 Python爬取携程机票代码实例
Python爬取携程机票代码实例现在携程的页面是通过接口传递数据的,不能直接使用xpath进行解析,需要模拟调用接口的步骤dcity是指出发地的城市编码acity是指目的地的城市编码其他参数是根据前端页面直接复制过来的,Mac 的Chrome浏览器如下图def getResponse(fromCity,toCity,date): cityInfo = judgeCity(fromCity,toCity,date) dcity = cityInfo.get('dcity')
2020-05-15 18:04:51 4047 6
原创 MySQL8性能测试二 (JSON函数)
优雅浏览想要以优雅的格式显示JSON值,请使用JSON_PRETTY()函数select uid,JSON_PRETTY(data)from json_test_indexwhere uid=3;2.查找可以在WHERE子句中使用col ->> path运算符来引用JSON的某一列select uid,datafrom json_test_index where data ->> '$.index._id' = "10";也可以使用JSON_CONTA.
2020-05-15 17:08:10 1476
原创 MySQL8性能测试一(JSON索引)
json索引测试创建表CREATE TABLE json_test( uid BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT, data JSON NOT NULL, speaker VARCHAR(32) GENERATED ALWAYS AS (json_extract(data, '$.speaker')) VIRTUAL) ENGINE=INNODB CHARSET=utf8mb4; 数据量大小:221,698行,36.56 MB查询测试1、
2020-05-15 17:01:41 5692
原创 MySQL之Linux服务器MySQL5.7.26安装流程
下载地址:链接:https://pan.baidu.com/s/15-SSkzR89K3uMhHUwwjpbQ 密码:enbj1.上传到服务器并解压tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar2.再移动并重命名一下mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql3.创建m...
2020-04-28 14:20:01 347
原创 MySQL之用户权限(二)
MySQL8.0用户权限新特性用户权限 在MySQL5.7的版本: > grant all privileges on *.* to '用户名'@'主机' identified by '密码'; 在MySQL8.0需要分开执行: >create user '用户名'@'主机' identified by '密码'; >grant all privile...
2020-04-21 18:31:50 190
原创 MySQL之MySQL8.0新特性
最近公司正在升级MySQL的版本,对于MySQL8和以前版本有一些区别,新增了一些新特性MySQL8.0做出的一些改变,在功能上主要有以下6点::账户与安全优化器索引通用表表达式窗口函数InnoDB增强JSON增强一、账户与安全1.用户的创建与授权在MySQL5.7的版本:> grant all privileges on . to ‘用户名’@‘主机’ identif...
2020-04-21 18:12:04 232
用户画像MVP实践设计
2021-09-08
电影天堂最新电影爬虫数据
2020-04-10
kNN算法代码实例和数据集.zip
2020-04-10
java内部人员物流网站项目
2018-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人