数据仓库的治理一塌糊涂,没有管理好数据,最后都会怎么样
“年年数据要治理,数据年年治不好”。
数仓治理的老大难,通常是跟着**业务需求快跑**,要不是**数据零散在各个团队**,或者是大家的**研发规范有不同**,作为一项通过维度模型来约束规范的工种来讲,“模型”的治理难度,大于“架构”。
目前整个行业通常的模型治理方法,是规定一种建模规范,大家在编码的过程中各自遵守。当业务开始变得模糊不清的时候,再专门抽调时间,来做人工治理。就像黄河一样,流沙清理了一次又一次,但上游还是会冲下新的流沙。
数仓的假设既然都是采用的维度建模,那么其设计思想必然是自下而上的进行建设,**与架构进行类比,也就是先做好子模块,最后做顶层设计**。
但如果设计者不熟悉对应的领域模型,一旦业务上发生了变动,一张核心表动辄几百张的引用,会让重构的工作变得困难无比。
强如阿里,会做一些更进一步的工作,比如模型的健康分,看看你的**存储成本有多少、计算成本有多少、生命周期是不是合理、代码规范有没有避免全表扫描**,等等。但这些工作只能发现一些常规的问题,也依然需要进行人工治理,不仅效率上没有得到提高,每天推送的邮件也会让你产生心烦。
投入多少人,投入多少时间,终归是解决了 ...
有了数据湖,距离数据仓库消失还有几年?
很多人跟我一样,对于数据湖充满好奇,也许还读了不少数据湖文章,但无论别人怎么说,你还是会觉得难以把握数据湖的本质。
有些人会望文生义说,数据湖嘛,就是什么东西都可以往里面扔,特别是对非结构数据的处理比较方便。
\是这样吗?**
有案例才有鉴别,有的人找了数据湖的作者AWS来说明数据湖是什么东西,比如下图:
不懂数据的人也许会觉得数据湖很厉害,而懂数据的人也许会觉得仅是一堆数据仓库技术的堆砌包装而已,你看上面那张框架图,哪个专业词汇数据人士会不懂?凭什么数据湖被炒作成了一个新概念?
有比较才有鉴别,因此很多文章对数据湖与数据仓库做了比较,下面是网上流传的一些说法:
这种比较似乎能找到点区别,难道结构化与非结构化就成了数据仓库和数据湖的一个主要区别?BI和机器学习成为了主要区别?
事实上,这种比较有较大逻辑漏洞:即是从结果出发来看差异,然后又用这个差异来说明区别,颠倒了因果,因此受到了不少专业人士的鄙视。比如AWS的数据湖能够处理非结构化数据,而数据仓库无法处理非结构化数据,就认为这是数据湖与数据仓库的本质区别之一。
本文来跟大家聊聊我所理解的数据湖的本质,对于一种新事物不了解本质,你 ...
用frp内网穿透实现windows远程登录内网机器
步骤如下:
阿里云购买服务器最低配置,30元/月即可。
为服务器安装git先更新apt再安装,否则可能会失败
用frp实现内网穿透非常简单,但是前提是你有一个公网IP的机器,没有的话你需要先买个vps,如果你已经有了,那么可以继续往下看了。
我们需要从frp官网下载frp软件 下载地址 你需要根据你的vps系统来选择对应的版本,我的vps是ubuntu的,我选的是frp_0.27.0_linux_amd64.tar.gz 那么直接ssh登录到vps上用命令:
1wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz
下载到本地,然后解压:
1234mkdir /usr/local/frp/mv frp_0.27.0_linux_amd64.tar.gz /usr/local/frp/[root@izbp147qkvfxrb2efks5y9z ~]# cd /usr/local/frp/[root@izbp147qkvfx ...
systemctl frp自动启动脚本
1、脚本内容放置在/lib/systemd/system目录下,由于我这里启动的是服务端,我将该脚本文件命名为:frps.service,完整路径为:/lib/systemd/system/frps.service
123456789101112131415[Unit]Description=frps serviceAfter=network.target syslog.targetWants=network.target[Service]Type=simpleRestart=always #当程序退出时,自动重启。#最好使用非root用户启动User=frpGroup=frp#启动服务的命令(此处写你的frps的实际安装目录)ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.iniExecStop=/bin/kill $MAINPID[Install]WantedBy=multi-user.target
2、systemctl命令控制12345systemctl enable frps #设置开机自动启动systemctl ...
15种微服务架构框架汇总
这几年来,微服务这个概念越来越火了,火到什么程度呢?2019年有一个统计说,两千家企业里,45%在使用微服务,16%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的15%的企业没有使用微服务。
微服务到底有什么好呢?微服务在2013年才被提出,短短几年就有这么快速的发展。微服务架构能够实现由小型自主服务组成一个整体应用,各个组成部分之间是松耦合的,复杂性低,各个部分可以独立部署,修复bug或者引入新特性更容易,能够独立扩展,不同技术栈之间可以使用不同框架、不同版本库甚至不同的操作系统平台。
对于中大型架构系统来说,微服务更加便捷,微服务成为很多企业架构重构的方向,同时也对架构师提出更高的挑战。目前有很多常用于微服务构建的框架,对于构建微服务架构能够带来一些帮助。
Java语言相关微服务框架Spring BootSpring Boot的设计目的是简化新Spring应用初始搭建以及开发过程,2017年有64.4%的受访者决定使用Spring Boot,可以说是最受欢迎的微服务开发框架。利用Spring Boot开发的便捷度简化分布式系统基础设施的开发,比如像配置中心、注 ...
6种微服务RPC框架,你知道几个?
开源 RPC 框架有哪些呢?
一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。
跟语言平台绑定的开源 RPC 框架主要有下面几种。
Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。
Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。
Tars:腾讯内部使用的 RPC 框架,于 2017 年对外开源,仅支持 C++ 语言。
Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言
而跨语言平台的开源 RPC 框架主要有以下几种。
gRPC:Google 于 2015 年对外开源的跨语言 RPC 框架,支持多种语言。
Thrift:最初是由 Facebook 开发的内部系统跨语言的 RPC 框架,2007 年贡献给了 Apache 基金,成为 Apache 开源项目之一,支持多种语言。
如果你的业务场景仅仅局限于一种语言的话,可以选择跟语言绑定的 RPC 框架中的一种;
如果涉及多个语言平台之间的相互调用,就 ...
2020周阳Spring Cloud完整版笔记一
微服务 的概念最早产生于Martin Fowler在2014年的一篇论文中。
微服务架构是一种架构模式,他提倡将单一应用程序划分成一组小的服务,服务与服务之间互相协调、相互配合,为用户提供最终价值。每个服务运行在独立的进程中,服务与服务之间采用轻量级的通信机制相互合作(通常是基于HTTP协议的Restful API)。每个服务围绕具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免同一的、集中式的服务管理机制,对具有的一个服务而言,应当根据业务上下文,选择合适的语言、工具对其进行构建。
Cloud组件停更被动修复bug,停更不停用,不再github上接收新的合并请求,不再发布新的版本。
RestTemplate提供了多种边界访问远程HTTP服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。
(URL,requestMap,ResponseBean.class)这三个参数分别代表REST请求地址,请求参数,HTTP响应转换的对象类型。
服务注册中心Eureka服务注册中心什么是服务治理 ...
Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
场景Dubbo环境搭建-ZooKeeper注册中心:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555470
在上面搭建好ZooKeeper注册中心后,搭建管理控制台实现服务监控。
注:
博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。
实现进入Dubbo官网,点击GIthub
http://dubbo.apache.org/zh-cn/
进入到Github页面后,一直往下找到dubbo-admin/dubbo-monitor
在此页面会看到dubbo-admin-server,但是没有dubbo-admin,这是因为此时的分支是develop,将分支切换为master
此时页面地址为:
https://github.com/apache/dubbo-admin/tree/master
在此页面可以看见其官方说明
下载后找到dubbo-admin-server/src/main/resources/ ...
Kafka与Flink集成
阅读目录
1. 目标
2. 环境准备
3. 创建Flink Streaming工程
4. 增加kafka和kafka-connector依赖
5. 启动Flink环境(本例使用local测试环境)
6. 启动Kafka单节点集群
7. 代码开发
8. 部署Flink jar包
8. 运行KafkaProducerTest
9. 总结
Apache Flink是新一代的分布式流式数据处理框架,它统一的处理引擎既可以处理批数据(batch data)也可以处理流式数据(streaming data)。在实际场景中,Flink利用Apache Kafka作为上下游的输入输出十分常见,本文将给出一个可运行的实际例子来集成两者。
1. 目标本例模拟中将集成Kafka与Flink:Flink实时从Kafka中获取消息,每隔10秒去统计机器当前可用的内存数并将结果写入到本地文件中。
2. 环境准备
Apache Kafka 0.11.0.0
Apache Flink 1.3.1
Gradle 3.5 (版本号不是强要求)
本例运行在Windows环境,但可以很容易地移植到其他平台上。
3. 创 ...
Nginx高并发优化方案(血荐!)
一、一般来说nginx 配置文件中对优化比较有作用的为以下几项:
1. worker_processes 8;
nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。
2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一个进程分配到多个cpu。
3. worker_rlimit_nofile 65535;
这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240, ...