- 博客(501)
- 资源 (24)
- 收藏
- 关注
原创 第一章:专栏大纲
很多人数仓开发人员有一个误解,认为数仓开发的门槛极低,只需要会写SQL就可以了。其实不然,专业的数仓开发需要很多方便的知识沉淀,包括但不限于:需求理解,培养业务sense,指标梳理、数据采集、落仓、数据探索、数据建模、调度配置、数仓上线、数据核对、数仓下线等等。会搭建数仓不难,但是搭建一个规范的、高效的、高扩展的、低成本的数据仓库,绝对不是一件简单的事情。这既要知识面的宽度,更需要知识面的深度,当然少不了需要经验的积累。这里的经验就是多做项目,多踩坑,经过不断的总结和提升,你就能在新的项目和产品中少走一些
2021-01-26 15:52:54 261 1
原创 第六章:数据治理
1、数据治理的概念数据治理并不是一个新生事物,可以说,有数据的地方就存在数据治理,只不过随着数据应用的迅猛发展将它提到了一个高度,作为一个独立的研究领域。数据治理并没有标准的、严格的定义,概况地讲所有为提高数据质量而展开的业务、技术和管理活动都属于数据治理范畴。2、数据治理的目标Ensure metadata management and data documentation。确保元数据管理和数据文档Simplify data access and facilitate data usage a
2021-01-29 14:04:40 650
原创 第五章 节点开发
1、DDL建表语句表和字段必须有描述信息drop表前面加上IF EXISTS判断create表前面加上IF NOT EXISTS判断设置合理的生命周期,保证有用的历史数据不被删除,同时避免存储资源浪费使用常见的字段类型 DataTime、Bigint、Double、String,如使用其他字段,需要项目组评估DROP TABLE IF EXISTS ITSL_dev.dwd_sl_ams_tb_vms_cs_carinfo_d ;CREATE TABLE IF NOT EXISTS ITS
2021-01-28 14:17:05 467
原创 第四章:数据建模
1、数据建模的意义设想一下:情景1:如果需要建一个工厂,需要加入一条新的线路,上面2个情况,哪个更容易加呢?情景2:如果线路发生故障,需要排查问题点在哪里,上面2个情况,哪个更容易呢?这就引出了数据建模的作用:加快数据的运算效率,更方便扩展,适应新的数据产品需求。2、数据落仓将业务数据、日志数据、爬虫数据通过ETL工具,加载到数据中台的ODS层进行存储,这个过程就叫数据落仓。3、数据探索数据落仓之后,需要数仓开发人员,申请相关ODS层表的读取权限,审核通过之后,就可以进行数据探索了。数
2021-01-27 18:57:38 936
原创 Oracle表空间利用率
表空间利用率:SELECT a.tablespace_name, --total "表空间大小", -- free "表空间剩余大小", -- (total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)", (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", free / (1024 * 1024 * 1024) "表空
2021-01-26 18:21:49 715
原创 第三章:数据采集
数据采集,在数仓开发过程中至关重要,它要求数据类型全、数据量完整、尽可能覆盖数据流转的各个环节,它是数仓建设的核心底座,毕竟巧妇难为无米之炊嘛。1、数据的来源(1)数据库数据库不用过多介绍,业务系统例如CRM、ERP、财务系统等等,每天都会生成大量的业务数据,存储在mysql、SqlServer、Oracle等关系型数据库中。(2)日志日志也是采集数据的重要来源,因为日志记录了程序执行的情况,例如用户登录数据、用户操作数据等,使用这些数据可以统计PV、UV等指标。(3)前端埋点用户很多前端请求
2021-01-26 18:16:53 967 2
原创 第二章:指标管理
这里涉及到两个概念:数据指标和指标体系。数据指标:对业务中产生的内部数据或者互联网中爬取的外部数据,按照一定的业务逻辑,使用一定的技术手段进行加工处理,能够描述、分析、预测业务的结果数据。指标体系:指标体系是将零散单点的具有相互联系的指标,系统化的组织起来,通过单点看全局,通过全局解决单点的问题。那就产生了一个问题,既然有了指标,干嘛还需要指标体系呢?一个指标没办法解决复杂的业务问题,这就需要使用多个指标从不同维度来评估业务,也就是使用指标体系。比如说衡量一个淘宝店的业务发展,我们可以用一个核心
2021-01-26 17:06:09 1521
转载 导出sqlserver数据库设计语句
SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = A.name, ...
2018-11-24 14:21:00 718
原创 Eclipse常见问题以及解决办法
1、Eclipse Console输出日志中文乱码解决办法:直接打开eclipse的ini,在最后一行加上-Dfile.encoding=utf-8
2018-11-20 15:39:23 732
原创 HttpAndHttpsProxy接口访问工具类,支持代理
package com.unis.core;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.Inet...
2018-11-15 17:39:15 1397
原创 Ajax-hook拦截所有的Ajax请求
在解决同一个浏览器登录多个账户,解决sesson覆盖问题的时候,我想到的办法是为每一个用户的session定义唯一的key,例如“sessionUser”+accessToken.accessToken是登录校验成功后,生成的唯一字符串,你可以使用UUID策略。这样,我需要给所有的ajax请求带上这个accessToken,有没有简单的办法,有的,Ajax-hook可以做到。Ajax-hook...
2018-11-14 23:57:39 9829
原创 Shiro框架基本概念
1、SubjectSubject一词是一个安全术语,其基本意思是“当前的操作用户”。称之为“用户”并不准确,因为“用户”一词通常跟人相关。在安全领域,术语“Subject”可以是人,也可以是第三方进程、后台帐户(Daemon Account)、定时作业(Corn Job)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。在...
2018-11-14 11:03:25 296
原创 shiro登录成功后,没有跳转到配置的SuccessUrl
debug后跟进去观察后发现FormAuthenticationFilter成功登陆后,会调用它的onLoginSuccess方法。 protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest re...
2018-11-13 17:32:19 6785 2
原创 shiro将ServletHttpSession包装成了ShiroHttpSession
最近在做Oauth SSO单点登录集成,目标有三个:A:各个业务系统在统一门户登录,各业务系统不用再次登录,即SSO;B:原来各业务系统的登录入口暂时保留;C:解决同一个浏览器登录多个账户,session覆盖的问题。因为业务系统使用的是SpringMVC,并且使用了shiro安全框架。我的实现逻辑是,先执行OauthFilter,后执行Shiro认证。但是在shiro中session设置...
2018-11-13 17:22:51 4173
原创 SqlServer智能提示插件SQLPrompt
需要安装插件:SQLPrompt插件安装地址:插件安装方法:先安装SQLPrompt_6.3.0.344.exe打开SQL Server Management Studio,可以看到出现一个新的菜单:SQL Prompt打开 SQL Prompt ->help -> Enter Serial Number先断开网络,然后运行注册机SQL.Prompt.Keygen.exe...
2018-10-22 16:15:45 10367 1
原创 你确定懂「用户画像」?来点基础知识
大数据助力企业营销的核心在于:在「合适的时间」,基于对用户的了解,把你希望推送的东西通过「合适的载体」,以「合适的方式」,推送给「合适的人」。一:什么是标签体系说到客户标签,不得不说用户画像。用户画像,有个类似的概念叫「受众定向」。“用户画像”既有人口属性、生活状态这些基本静态信息,又包括用户“最近要不要旅游”、“准备买多少钱的车”这样能驱动直接效果的动态信息。从这层意思来看,用“受众定向”更...
2018-10-20 12:41:13 1313
原创 SpringCloud框架初探(七) :Zuul API路由功能
API网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的Facade模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤。它除了要实现请求路由、 负载均衡、 校验过滤等功能之外,还需要更多能力,比如与服务治理框架的结合、请求转发时的熔断机制、服务的聚合等一系列高级功能。在SpringCloud中了提供了基于NetflixZuul实现的A...
2018-10-04 15:05:24 532 1
原创 SpringCloud框架初探(五): Eureka Client客户端相互调用
前面已经讲了Eureka注册中心服务器已经客户端的搭建,接下来通过一个例子,来实现Eureka client微服务之间的调用。RestTemplate需要配合@LoadBalanced才能通过服务名spring.application.name解析到具体的服务上。Ribbon在Netflix组件是非常重要的一个组件,在Zuul中使用Ribbon做负载均衡,以及Feign组件的结合等。在Spri...
2018-09-29 14:41:27 4065
原创 SpringCloud框架初探(四): Eureka Client客户端搭建
@SpringBootApplication@EnableEurekaClientpublic class ProviderUserApplication { public static void main(String[] args) { SpringApplication.run(ProviderUserApplication.class, args); }}使用...
2018-09-29 11:33:55 1343
原创 SpringCloud框架初探(三): Eureka Server 服务器搭建
Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。...
2018-09-29 10:11:24 618
原创 SpringCloud框架初探(二) : SpringCloud微服务架构概述
首先,先介绍一下SpringCloud,它是基于SpringBoot的微服务架构。Eureka:注册中心,单个微服务将自己注册到eureka上供其它服务调用。Ribbon:客户端负载均衡,负责对eureka中的服务进行调用。Hystrix:客户端容错保护,负责当ribbon出现问题时保证整个服务的畅通。...
2018-09-27 15:27:09 333
原创 SpringCloud框架初探(一):SpringBoot知识整理
1、@Controller与@RestController的区别@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象。@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。@RestController相当于@Resp...
2018-09-26 15:45:44 1066 1
原创 springBoot多数据源配置以及事务控制
一:多数据源配置1、主数据源配置文件package com.bert.datasource;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;i...
2018-09-17 15:30:21 4863
原创 像架构师一样思考
很多程序员经常陷入迷茫,技术发展日新月异,没有充足的时间精力去学习新技术,每天都疲于产品经理、市场、领导的各种需求的编码实现,没有丝毫的成就感。如果要想有成就感,就需要了解业务,清楚自己做的东西对用户和公司的价值。马云在创建阿里巴巴的时候,就明确了公司和员工的使命:让天下没有难做的生意。可是,如果让程序员说说业务流程,大部分人描述的只是文档中的逻辑和流程。这让我想起来《亮剑》中李云龙跟楚云...
2018-09-12 10:31:48 351
原创 把握用户需求三部曲
A:需求阶段,帮助用户挖掘需求用户不一定清楚自己需要什么?我以公司内部业务系统的开发为例,业务方就是用户。最初评审设计原型的时候,业务方可能无法发现一些体验问题,开发完成之后,业务方在真正使用中,就发现了问题,又要求研发改设计。生活中有很多反人性的设计,例如:买水果或者蔬菜,有些商家总需要在上面粘上塑料标签,既浪费资源,又影响消费者健康。再比如,我们公司公共卫生间,...
2018-09-11 09:28:24 554
原创 单体架构&微服务架构&中台服务架构
开门见山,一图胜千言,先来看看单体架构跟微服务架构的区别? 单体服务架构,将所有的功能模块(service)打包到一起并放在一个web容器中运行。 微服务架构,就是将复杂臃肿的单体应用进行细粒度的服务拆分,每个微服务可以交给小的团队进行开发和维护,拆分出来的服务各自独立打包部署。这两种架构各有优缺点:我之前工作过的几个公司,基本都是单体架构,顶多加一个负载均衡。很多人都有疑问,...
2018-09-06 16:16:39 35310 6
原创 数据库优化方案整理
一:优化说明A:有数据表明,用户可以承受的最大等待时间为8秒。数据库优化策略有很多,设计初期,建立好的数据结构对于后期性能优化至关重要。因为数据库结构是系统的基石,基础打不好,使用各种优化策略,也不能达到很完美的效果。B:数据库优化的几个方面 可以看出来,数据结构、SQL、索引是成本最低,且效果最好的优化手段。C:性能优化是无止境的,当性能可以满足需求时即可,不要过度优化...
2018-08-29 16:05:16 83717 10
原创 推荐一款API神器Swagger
现在的网站架构基本上都是前后端分离,然后出现了前端工程师和后端工程师的岗位区分(当然你也可以是全栈的)。前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要相信大多数朋友都遇到过上面的场景:明明调用的是之前约定好的API,拿到的结果却不是想要的。可能因为是有人修改了API的接口,却忘了更新文档;又或者是文档写的有歧义,大家的理解各不相同。一般...
2018-08-24 10:12:44 2211
原创 微信小程序-全局属性
全局属性有两种赋值方式:静态赋值和动态赋值Page({ data: { message:'加载中' //静态赋值 } }) //动态赋值 that.setData({ message:'加载中' })
2018-08-23 14:41:40 404
原创 微信小程序-页面元素
<view class="group"> <block wx:for="{{iconSize}}"> <icon type="success" size="{{item}}"/> </block&a
2018-08-23 14:15:36 1164
原创 微信小程序-Json配置文件
app.json是小程序的全局配置文件,主要配置项有:注意:类型String Array,就是字符串数组"pages": [ "pages/login/login", "pages/index/index" ]Object类型,就是json对象"window": { "backgroundText
2018-08-23 13:48:02 792
原创 微信小程序分页实现
方案一:scroll-view绑定bindscrolltolower<scroll-view scroll-y="true" style="height:{{scrollHeight}}px;" bindscrolltolower="bindDownLoad" > &
2018-08-22 11:21:34 3367
原创 C#之HelloWorld
1:配置环境变量 C:\Windows\Microsoft.NET\Framework\v4.0.30319 2:编译CS文件3:运行exe文件
2018-08-16 16:46:50 841
原创 微信小程序开发技巧
开发中的页面,可以放在app.json中pages列表中第一个,这样可以普通编译模式,随时查看修改后的结果。 整体调试的话,再切换到登录编译模式
2018-08-15 17:22:41 177
原创 视图解决树形结构数据查询
如果是树形结构,展示在列表中,我们希望按照树形结构的排序,怎么做呢?可以使用视图。USE [ADataBase]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE VIEW [dbo].[VW_RP_CLASSIFY]ASWITH temp AS ( SELECT ID, Level, IsUse, L...
2018-08-15 15:28:48 1518
原创 最近的我
先跑个题,最近听了一场分享,我不想谈分享的主题,因为主题不是每个人都关心的。但是其中的一些方法论对我们都会有一些启示。经验不是万能的,方法论才是万能的。一:企业要做一件事情,需要搞懂3个W和一个H When:时势,现在处于一个什么时代。 Where:在一个什么样的行业背景里 Why:做这件事情的意义 How:做这件事情的战略战术二:提纲挈领 一个企业不可能什么都做,但是需要抓...
2018-08-14 16:28:31 149
原创 SQL索引与碎片
一:概述 在SQLServer中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构。在聚集索引B树中,只有叶子节点实际存储数据,而其他根节点和中间节点仅仅用于存放查找叶子节点的数据.每一个叶子节点为一页,每页是不可分割的. 而SQLServer向每个页内存储数据的最小单位是表的行(Row).当叶子节点中新插入的行或更新的行使得叶子节点无法容纳当前更...
2018-07-27 15:16:16 3102 1
原创 面试的套路
如果你到一家公司去面试,大多数的面试流程都是这样的: A:自我介绍 如果面试官让你做个自我介绍,面试官不仅仅是想了解你的基本情况。因为他要想了解你的情况,从简历上就可以看。面试官的套路在于,通过你的描述,看你表达是否清晰有条理,是否有亲切感。B:介绍一下最近的项目 跟自我介绍一样,项目经历简历上都有。面试官的套路在于,通过描述项目,感觉你的项目经历是否真实,你是不是真正了解自己做的的项目...
2018-03-08 13:58:28 760
原创 JDK5新特性:泛型
开篇分享:学习技术不仅学会怎么应用,还需要了解技术产生的背景。让我们先来看一段简单的代码: 在一个集合里面添加元素,我们看一下集合add()方法的源码: add方法传入的参数是一个E对象,而所有对象的父类默认都是Object。 所以集合默认可以添加任何类型的元素。上面的例子添加了若干String数据,最后在第7行添加了一个元素10,其实这里用到了自动装箱,其实原理是这样的: l
2018-02-07 13:02:22 370
SpringCloud+Eureka+Ribbon实践代码Demo
2018-09-29
cronolog工具切割tomcat日志
2016-04-20
red5流媒体服务器安装文件
2016-01-27
nginx安装文件
2016-01-09
nginx负载均衡配置文件demo
2016-01-09
Memcached_Session_Manager集群共享session需要的jar
2016-01-09
微信支付工具类
2015-09-08
REST架构风格详解
2015-08-26
Google Java编程风格指南
2015-01-15
Java解析apk文件
2015-01-14
springMVC工程demo
2015-01-14
java设计模式
2015-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人