Tips
Go
(18条消息) Go语言自学系列 | golang包_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之channel的遍历_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之select switch_COCOgsta的博客-CSDN博客_golang select switch
(18条消息) Go语言自学系列 | golang并发编程之runtime包_COCOgsta的博客-CSDN博客_golang runtime包
(18条消息) Go语言自学系列 | golang接口值类型接收者和指针类型接收者_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之Timer_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang方法_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之WaitGroup实现同步_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang构造函数_COCOgsta的博客-CSDN博客_golang 构造函数
(18条消息) Go语言自学系列 | golang方法接收者类型_COCOgsta的博客-CSDN博客_golang 方法接收者
(18条消息) Go语言自学系列 | golang接口_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang接口和类型的关系_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang结构体_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang结构体_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang标准库os模块 - File文件读操作_COCOgsta的博客-CSDN博客_golang os.file
(18条消息) Go语言自学系列 | golang继承_COCOgsta的博客-CSDN博客_golang 继承
(18条消息) Go语言自学系列 | golang嵌套结构体_COCOgsta的博客-CSDN博客_golang 结构体嵌套
(18条消息) Go语言自学系列 | golang并发编程之Mutex互斥锁实现同步_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发变成之通道channel_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之原子操作详解_COCOgsta的博客-CSDN博客_golang 原子操作
(18条消息) Go语言自学系列 | golang并发编程之原子变量的引入_COCOgsta的博客-CSDN博客_go 原子变量
(18条消息) Go语言自学系列 | golang并发编程之协程_COCOgsta的博客-CSDN博客_golang 协程 并发
(18条消息) Go语言自学系列 | golang接口嵌套_COCOgsta的博客-CSDN博客_golang 接口嵌套
(18条消息) Go语言自学系列 | golang包管理工具go module_COCOgsta的博客-CSDN博客_golang 包管理器
(18条消息) Go语言自学系列 | golang标准库os模块 - File文件写操作_COCOgsta的博客-CSDN博客_go os模块
(18条消息) Go语言自学系列 | golang结构体的初始化_COCOgsta的博客-CSDN博客_golang 结构体初始化
(18条消息) Go语言自学系列 | golang通过接口实现OCP设计原则_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang标准库os包进程相关操作_COCOgsta的博客-CSDN博客_golang os包
(18条消息) Go语言自学系列 | golang标准库ioutil包_COCOgsta的博客-CSDN博客_golang ioutil
(18条消息) Go语言自学系列 | golang标准库os模块 - 文件目录相关_COCOgsta的博客-CSDN博客_go语言os库
Golang技术栈,Golang文章、教程、视频分享!
(18条消息) Go语言自学系列 | golang结构体指针_COCOgsta的博客-CSDN博客_golang 结构体指针
Ansible
太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏_互联网老辛
ansible.cfg配置详解
Docker
Docker部署
linux安装docker和Docker Compose
linux 安装 docker
Docker中安装Docker遇到的问题处理
Docker常用命令
docker常用命令小结
docker 彻底卸载
Docker pull 时报错:Get https://registry-1.docker.io/v2/library/mysql: net/http: TLS handshake timeout
Docker 拉镜像无法访问 registry-x.docker.io 问题(Centos7)
docker 容器内没有权限
Linux中关闭selinux的方法是什么?
docker run 生成 docker-compose
Docker覆盖网络部署
docker pull后台拉取镜像
docker hub
Redis
Redis 集群别乱搭,这才是正确的姿势
linux_离线_redis安装
怎么实现Redis的高可用?(主从、哨兵、集群) - 雨点的名字 - 博客园
redis集群离线安装
always-show-logo yes
Redis集群搭建及原理
[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some - 亲爱的不二999 - 博客园
Redis daemonize介绍
redis 下载地址
Redis的redis.conf配置注释详解(三) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(一) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(二) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(四) - 云+社区 - 腾讯云
Linux
在终端连接ssh的断开关闭退出的方法
漏洞扫描 - 灰信网(软件开发博客聚合)
find 命令的参数详解
vim 编辑器搜索功能
非root安装rpm时,mockbuild does not exist
Using a SSH password instead of a key is not possible because Host Key checking
(9条消息) 安全扫描5353端口mDNS服务漏洞问题_NamiJava的博客-CSDN博客_5353端口
Linux中使用rpm命令安装rpm包
ssh-copy-id非22端口的使用方法
How To Resolve SSH Weak Key Exchange Algorithms on CentOS7 or RHEL7 - infotechys.com
Linux cp 命令
yum 下载全量依赖 rpm 包及离线安装(终极解决方案) - 叨叨软件测试 - 博客园
How To Resolve SSH Weak Key Exchange Algorithms on CentOS7 or RHEL7 - infotechys.com
RPM zlib 下载地址
运维架构网站
欢迎来到 Jinja2
/usr/local/bin/ss-server -uv -c /etc/shadowsocks-libev/config.json -f /var/run/s
ruby 安装Openssl 默认安装位置
Linux 常用命令学习 | 菜鸟教程
linux 重命名文件和文件夹
linux命令快速指南
ipvsadm
Linux 下查找日志中的关键字
Linux 切割大 log 日志
CentOS7 关于网络的设置
rsync 命令_Linux rsync 命令用法详解:远程数据同步工具
linux 可视化界面安装
[问题已处理]-执行yum卡住无响应
GCC/G++升级高版本
ELK
Docker部署ELK
ELK+kafka+filebeat+Prometheus+Grafana - SegmentFault 思否
(9条消息) Elasticsearch设置账号密码_huas_xq的博客-CSDN博客_elasticsearch设置密码
Elasticsearch 7.X 性能优化
Elasticsearch-滚动更新
Elasticsearch 的内存优化_大数据系统
Elasticsearch之yml配置文件
ES 索引为Yellow状态
Logstash:Grok filter 入门
logstash grok 多项匹配
Mysql
Mysql相关Tip
基于ShardingJDBC实现数据库读写分离 - 墨天轮
MySQL-MHA高可用方案
京东三面:我要查询千万级数据量的表,怎么操作?
OpenStack
(16条消息) openstack项目中遇到的各种问题总结 其二(云主机迁移、ceph及扩展分区)_weixin_34104341的博客-CSDN博客
OpenStack组件介绍
百度大佬OpenStack流程
openstack各组件介绍
OpenStack生产实际问题总结(一)
OpenStack Train版离线部署
使用Packstack搭建OpenStack
K8S
K8S部署
K8S 集群部署
kubeadm 重新 init 和 join-pudn.com
Kubernetes 实战总结 - 阿里云 ECS 自建 K8S 集群 Kubernetes 实战总结 - 自定义 Prometheus
【K8S实战系列-清理篇1】k8s docker 删除没用的资源
Flannel Pod Bug汇总
Java
Jdk 部署
JDK部署
java线程池ThreadPoolExecutor类使用详解 - bigfan - 博客园
ShardingJDBC实现多数据库节点分库分表 - 墨天轮
Maven Repository: Search/Browse/Explore
其他
Git在阿里,我们如何管理代码分支?
chrome F12调试网页出现Paused in debugger
体验IntelliJ IDEA的远程开发(Remote Development) - 掘金
Idea远程调试
PDF转MD
强哥分享干货
优秀开源项目集合
vercel 配合Github 搭建项目Doc门户
如何用 Github Issues 写技术博客?
Idea 2021.3 Maven 3.8.1 报错 Blocked mirror for repositories 解决
列出maven依赖
[2022-09 持续更新] 谷歌 google 镜像 / Sci-Hub 可用网址 / Github 镜像可用网址总结
阿里云ECS迁移
linux访问github
一文教你使用 Docker 启动并安装 Nacos-腾讯云开发者社区-腾讯云
Nginx
Nginx 部署
Nginx 部署安装
Nginx反向代理cookie丢失的问题_longzhoufeng的博客-CSDN博客_nginx 代理后cookie丢失
Linux 系统 Https 证书生成与Nginx配置 https
数据仓库
实时数仓
松果出行 x StarRocks:实时数仓新范式的实践之路
实时数据仓库的一些分层和分层需要处理的事情,以及数据流向
湖仓一体电商项目
湖仓一体电商项目(一):项目背景和架构介绍
湖仓一体电商项目(二):项目使用技术及版本和基础环境准备
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
数仓笔记
数仓学习总结
数仓常用平台和框架
数仓学习笔记
数仓技术选型
尚硅谷教程
尚硅谷学习笔记
尚硅谷所有已知的课件资料
尚硅谷大数据项目之尚品汇(11数据质量管理V4.0)
尚硅谷大数据项目之尚品汇(10元数据管理AtlasV4.0)
尚硅谷大数据项目之尚品汇(9权限管理RangerV4.0)
尚硅谷大数据项目之尚品汇(8安全环境实战V4.0)
尚硅谷大数据项目之尚品汇(7用户认证KerberosV4.1)
尚硅谷大数据项目之尚品汇(6集群监控ZabbixV4.1)
尚硅谷大数据项目之尚品汇(5即席查询PrestoKylinV4.0)
尚硅谷大数据项目之尚品汇(4可视化报表SupersetV4.0)
尚硅谷大数据项目之尚品汇(3数据仓库系统)V4.2.0
尚硅谷大数据项目之尚品汇(2业务数据采集平台)V4.1.0
尚硅谷大数据项目之尚品汇(1用户行为采集平台)V4.1.0
数仓治理
数据中台 元数据规范
数据中台的那些 “经验与陷阱”
2万字详解数据仓库数据指标数据治理体系建设方法论
数据仓库,为什么需要分层建设和管理? | 人人都是产品经理
网易数帆数据治理演进
数仓技术
一文看懂大数据生态圈完整知识体系
阿里云—升舱 - 数据仓库升级白皮书
最全企业级数仓建设迭代版(4W字建议收藏)
基于Hue,Dolphinscheduler,HIVE分析数据仓库层级实现及项目需求案例实践分析
详解数据仓库分层架构
数据仓库技术细节
大数据平台组件介绍
总览 2016-2021 年全球机器学习、人工智能和大数据行业技术地图
Apache DolphinScheduler 3.0.0 正式版发布!
数据仓库面试题——介绍下数据仓库
数据仓库为什么要分层,各层的作用是什么
Databend v0.8 发布,基于 Rust 开发的现代化云数据仓库 - OSCHINA - 中文开源技术交流社区
数据中台
数据中台设计
大数据同步工具之 FlinkCDC/Canal/Debezium 对比
有数数据开发平台文档
Shell
Linux Shell 命令参数
shell 脚本编程
一篇教会你写 90% 的 Shell 脚本
Kibana
Kibana 查询语言(KQL)
Kibana:在 Kibana 中的四种表格制作方式
Kafka
Kafka部署
canal 动态监控 Mysql,将 binlog 日志解析后,把采集到的数据发送到 Kafka
OpenApi
OpenAPI 标准规范,了解一下?
OpenApi学术论文
贵阳市政府数据开放平台设计与实现
OpenAPI简介
开放平台:运营模式与技术架构研究综述
管理
技术部门Leader是不是一定要技术大牛担任?
华为管理体系流程介绍
DevOps
*Ops
XOps 已经成为一个流行的术语 - 它是什么?
Practical Linux DevOps
Jenkins 2.x实践指南 (翟志军)
Jenkins 2权威指南 ((美)布伦特·莱斯特(Brent Laster)
DevOps组件高可用的思路
KeepAlived
VIP + KEEPALIVED + LVS 遇到Connection Peer的问题的解决
MinIO
MinIO部署
Minio 分布式集群搭建部署
Minio 入门系列【16】Minio 分片上传文件 putObject 接口流程源码分析
MinioAPI 浅入及问题
部署 minio 兼容 aws S3 模式
超详细分布式对象存储 MinIO 实战教程
Hadoop
Hadoop 部署
Hadoop集群部署
windows 搭建 hadoop 环境(解决 HADOOP_HOME and hadoop.home.dir are unset
Hadoop 集群搭建和简单应用(参考下文)
Hadoop 启动 NameNode 报错 ERROR: Cannot set priority of namenode process 2639
jps 命令查看 DataNode 进程不见了 (hadoop3.0 亲测可用)
hadoop 报错: Operation category READ is not supported in state standby
Spark
Spark 部署
Spark 集群部署
spark 心跳超时分析 Cannot receive any reply in 120 seconds
Spark学习笔记
apache spark - Failed to find data source: parquet, when building with sbt assembly
Spark Thrift Server 架构和原理介绍
InLong
InLong 部署
Apache InLong部署文档
安装部署 - Docker 部署 - 《Apache InLong v1.2 中文文档》 - 书栈网 · BookStack
基于 Apache Flink SQL 的 InLong Sort ETL 方案解析
关于 Apache Pulsar 在 Apache InLong 接入数据
zookeeper
zookeeper 部署
使用 Docker 搭建 Zookeeper 集群
美团技术团队
StarRocks
StarRocks技术白皮书(在线版)
JuiceFS
AI 场景存储优化:云知声超算平台基于 JuiceFS 的存储实践
JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践
JuiceFS format
元数据备份和恢复 | JuiceFS Document Center
JuiceFS 元数据引擎选型指南
Apache Hudi 使用文件聚类功能 (Clustering) 解决小文件过多的问题
普罗米修斯
k8s 之 Prometheus(普罗米修斯)监控,简单梳理下 K8S 监控流程
k8s 部署 - 使用helm3部署监控prometheus(普罗米修斯),从零到有,一文搞定
k8s 部署 - 使用 helm3 部署监控 prometheus(普罗米修斯),从零到有,一文搞定
k8s 部署 - 如何完善 k8s 中 Prometheus(普罗米修斯)监控项目呢?
k8s 部署 - k8s 中 Prometheus(普罗米修斯)的大屏展示 Grafana + 监控报警
zabbix
一文带你掌握 Zabbix 监控系统
Stream Collectors
Nvidia
Nvidia API
CUDA Nvidia驱动安装
NVIDIA驱动失效简单解决方案:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
ubuntu 20 CUDA12.1安装流程
nvidia开启持久化模式
nvidia-smi 开启持久化
Harbor
Harbor部署文档
Docker 爆出 it doesn't contain any IP SANs
pandoc
其他知识
大模型
COS 597G (Fall 2022): Understanding Large Language Models
如何优雅的使用各类LLM
ChatGLM3在线搜索功能升级
当ChatGLM3能用搜索引擎时
OCR神器,PDF、数学公式都能转
Stable Diffusion 动画animatediff-cli-prompt-travel
基于ERNIE Bot自定义虚拟数字人生成
pika负面提示词
开通GPT4的方式
GPT4网站
低价开通GPT Plus
大模型应用场景分享
AppAgent AutoGPT变体
机器学习
最大似然估计
权衡偏差(Bias)和方差(Variance)以最小化均方误差(Mean Squared Error, MSE)
伯努利分布
方差计算公式
均值的高斯分布估计
没有免费午餐定理
贝叶斯误差
非参数模型
最近邻回归
表示容量
最优容量
权重衰减
正则化项
Sora
Sora官方提示词
看完32篇论文,你大概就知道Sora如何炼成? |【经纬低调出品】
Sora论文
Sora 物理悖谬的几何解释
Sora 技术栈讨论
RAG垂直落地
DB-GPT与TeleChat-7B搭建相关RAG知识库
ChatWithRTX
ChatRTX安装教程
ChatWithRTX 踩坑记录
ChatWithRTX 使用其他量化模型
ChatWithRTX介绍
RAG 相关资料
英伟达—大模型结合 RAG 构建客服场景自动问答
又一大模型技术开源!有道自研RAG引擎QAnything正式开放下载
收藏!RAG入门参考资料开源大总结:RAG综述、介绍、比较、预处理、RAG Embedding等
RAG调研
解决现代RAG实际生产问题
解决现代 RAG 系统中的生产问题-II
Modular RAG and RAG Flow: Part Ⅰ
Modular RAG and RAG Flow: Part II
先进的Retriever技术来增强你的RAGs
高级RAG — 使用假设文档嵌入 (HyDE) 改进检索
提升 RAG:选择最佳嵌入和 Reranker 模型
LangGraph
增强型RAG:re-rank
LightRAG:使用 PyTorch 为 LLM 应用程序提供支持
模型训练
GPU相关资料
[教程] conda安装简明教程(基于miniconda和Windows)
PyTorch CUDA对应版本 | PyTorch
资料
李一舟课程全集
零碎资料
苹果各服共享ID
数据中心网络技术概览
华为大模型训练学习笔记
百度AIGC工程师认证考试答案(可换取工信部证书)
百度智能云生成式AI认证工程师 考试和证书查询指南
深入理解 Megatron-LM(1)基础知识
QAnything
接入QAnything的AI问答知识库,可私有化部署的企业级WIKI知识库
wsl --update失效Error code: Wsl/UpdatePackage/0x80240438的解决办法
Docker Desktop 启动docker engine一直转圈解决方法
win10开启了hyper-v,docker 启动还是报错 docker desktop windows hypervisor is not present
WSL虚拟磁盘过大,ext4迁移 Windows 中创建软链接和硬链接
WSL2切换默认的Linux子系统
Windows的WSL子系统,自动开启sshd服务
新版docker desktop设置wsl(使用windown的子系统)
WSL 开启ssh
Windows安装网易开源QAnything打造智能客服系统
芯片
国内互联网大厂自研芯片梳理
超算平台—算力供应商
Linux 磁盘扩容
Linux使用growpart工具进行磁盘热扩容(非LVM扩容方式)
关于centos7 扩容提示no tools available to resize disk with 'gpt' - o夜雨随风o - 博客园
(小插曲)neo4j配置apoc插件后检查版本发现:Unknown function ‘apoc.version‘ “EXPLAIN RETURN apoc.version()“
vfio-pci与igb_uio映射硬件资源到DPDK的流程分析
KubeVirt
vnc server配置、启动、重启与连接 - 王约翰 - 博客园
虚拟机Bug解决方案
kubevirt 如何通过CDI上传镜像文件
在 K8S 上也能跑 VM!KubeVirt 簡介與建立(部署篇) | Cloud Solutions
KubeVirt 04:容器化数据导入 – 小菜园
Python
安装 flash_attn
手把手教你在linux上安装pytorch与cuda
AI
在启智社区基于PyTorch运行国产算力卡的模型训练实验
Scaling law
免费的GPT3.5 API
AI Engineer Roadmap & Resources 🤖
模型排行
edk2
K8S删除Evicted状态的pod
docker 中启动 docker
远程本地多用户桌面1.17(一种不让电脑跟你抢键鼠的思路) - 哔哩哔哩
华为鲲鹏服务器(ARM架构)部署Prometheus
在Linux上安装配置Grafana_AI开发平台ModelArts_华为云
-
+
首页
网易数帆数据治理演进
> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [mp.weixin.qq.com](https://mp.weixin.qq.com/s/NvngD9jePVrxcguF-pQeTQ) 👆点击 “志明与数据”,获取更多资讯 **导读:**本文将分享网易数帆数据治理的发展过程,以及对现代数据治理的概念和理念的理解,提出现代数据治理应该与数据开发和消费很好地衔接,具备开发治理一体化、形成治理的闭环、仓内仓外统一治理和建立数据资产门户等核心特点。 **文章将从以下四个方面展开:** * 网易数帆大数据简介 * 统建中台:先设计后开发 * 见招拆招:运动式治理 * 治理体系:现代数据治理 分享嘉宾|余利华 网易数帆 大数据产品线总经理 编辑整理|许友昌 每日互动 出品社区|DataFun * * * **01** **网易数帆大数据简介** ![](http://yg9538.kmgy.top/202211221618773.png) 首先简单介绍一下网易数帆大数据产品体系的发展过程。 网易大数据团队最早致力于分布式数据库、分布式文件系统和分布式搜索引擎。2009 年开始基于 Hadoop 做数据分析和运维。2014 年大数据平台上线,并开始 BI 的产品化。2017 年正式对外做商业化的探索。在 2018 年的时候,随着业务的发展,网易使用数据面临了很多的问题,所以开始建设数据中台, 发布了数据中台的解决方案。2020 年通过网易数帆品牌正式提出了数据生产力的概念,提出不仅仅要建设数据中台,还要建设数据中台上的数据产品,提倡 “人人用数据” 的理念。2022 年数据治理 2.0 产品正式发布。 ![](http://yg9538.kmgy.top/202211221618189.png) 到目前网易数帆形成了一个相对全栈的大数据产品体系,分为四层: * 最下面是基础设施,这里有网易数帆自己的 NDH 发行版,也可以对接 CDH 或者 CDP,基础设施主要是提供存储计算能力,NDH 在回收站等方面也有加强,还做了一些存算分离、混合部署的工作。 * 在数据基础设施之上是数据研发,覆盖了从数据设计、开发、一直到测试、上线、运维的整个过程,希望能做成一个符合 DataOps 的数据研发产品。 * 在数据中台部分,我们提供了指标系统、模型设计、数据地图等产品,目的是帮助业务去建设数据中台。 * 在数据产品层,我们提供了很多工具,比如 BI 工具、数据门户,我们的理念是要利用低代码和无代码的方式,帮助用户、客户去打造面向场景化的数据产品,从而真正达成 “人人用数据” 的理念,实现数据生产力在企业落地。 **02** **统建中台:先设计后开发** 网易数帆数据治理发展过程的第一个阶段为统建中台,先设计后开发。 当时的背景是网易的互联网业务在 2018 年的时候发展比较快,面临了很多的数据问题。以网易考拉海购为例,当时交易和主站供应链以及各个团队分别建设了自己的数据仓库,这样就造成烟囱式的开发,带来了很多的问题。 ![](http://yg9538.kmgy.top/202211221618405.png) * 第一个问题是指标口径不一致,很多指标同名不同义、同义又不同名,不同部门之间的沟通存在很大困难。 * 第二个问题是缺乏数据建模规范,当时我们的数据团队非常辛苦,但还是不能满足业务上的需求,交付的速度还是非常慢,平均需要一周的时间, 并且查询的效率又特别低,一个月范围内的查询要将近一分钟, 一年内的查询要 300 多秒,找数据也特别困难,业务产生了几万张表,不知道哪里有数据,不知道怎么去找、怎么去用。 * 第三个问题是数据重复建设,有超过一半的数据是冗余的,数据量超线性增长。 ![](http://yg9538.kmgy.top/202211221618534.png) 在这种情况下,我们分析了原因,为什么数据研发的速度会慢?查询的效率会低?我们做了一些数据的分析,结果发现有超过 50% 的任务,是在直接读取原始数据, 也就是 ODS 层的数据,并且有 30% 的 Ad-hoc 查询命中原始数据,原始数据加明细数据的查询比例高达 60%,另外超过 40% 的表都没有分层,这些其实都是烟囱式建设带来的问题。各个业务线都是从 ODS 层开始拉数据来建设,没有形成很好的数据公共层,数据复用程度不足。结果导致需求响应非常慢,查询效率特别低下,规范也特别不好,整体就是数据不好用。 ![](http://yg9538.kmgy.top/202211221618479.png) **我们提出的解决方案是先设计后开发,其实就是建中台**。主要分为指标定义、模型定义、数据开发三个步骤。 指标代表的是数据中台的需求层面,所以要从指标开始抓起,就是从源头开始抓起,只有源头的需求明确,设计才能清晰,产出的数据才能好用。所以我们引入了数据中台指标定义的方法论,建设了指标系统产品,系统地梳理了我们的指标,包括原子指标、派生指标,并且给这些指标划分了数据域和业务过程。完成指标梳理之后,当年考拉电商的指标数目下降了一半左右。这里原子指标与派生指标的区别在于,原子指标是带口径的,派生指标不带口径。所以数据团队的核心,就是要管控好原子指标,这样就会避免指标口径不一致的问题。 有了指标定义之后,就进入到模型设计的层面。我们引入了维度建模的方法。并且打造了自己的一个模型设计中心的产品, 把维度建模的理论落地进去。当时为了推进模型的规范化、标准化,我们甚至把 ODS 层的数据都给收回了, 这样强制大家要去用公共数据,发现公共数据不足的时候给我们提需求,以这样的方式来推动数据建设。 ![](http://yg9538.kmgy.top/202211221618483.png) 建好指标、建好模型之后,就是数据开发过程。在建设数据中台或者说在重构我们的数仓之前,我们首先要思考,如何衡量模型建得好不好?数据中台建设得完不完善?我**们提出了模型设计的度量标准,主要从三个方面来考虑:** * 第一是完善度,可以分为两类,首先是查询的覆盖度,就是 ADS 层的表能满足多少比例的查询,这个比例越高说明建设得越完善,越能满足客户的需求;另外就是跨层的引用率,DWS 层直接引用 ODS 层,就叫跨层引用,跨层引用率越低越好,我们希望一层层往上叠加,不要产生跨层引用的情况。 * 第二是复用度,一个模型被下游模型引用的次数越多越好。 * 第三是规范度,是否存在不规范的表,没有分层的表,没有主题域的表等等。 ![](http://yg9538.kmgy.top/202211221618261.png) 通过模型的重构,数据中台的建设,取得了显著成果,跨层引用率从 30% 下降到了 10% 以下,模型的复用度从 2.4% 提升到了 9.6%,在这个过程中下线了 3.4 万个模型。通过这样的中台建设,我们的模型更加优化,使得我们的交付速度和查询的性能也得到了显著提升。这就是第一阶段,建设了数据中台,先设计后开发,把模型的问题解决了。但是并没有解决所有的问题,后面又出现了各种各样其他的问题,下一阶段我们主要是针对出现的问题见招拆招。 **03** **见招拆招:运动式治理** **1. 成本问题** ![](http://yg9538.kmgy.top/202211221618800.png) 在见招拆招的过程中,首先是成本问题,表现在三个方面: * 投入产出低:每个业务部门都有很着急的需求,一方面是需求做不完,另一方面是做出来的很多数据没有人用,我们有时发现有超过一半的表都是 30 天内没有人访问过,不得不怀疑这样的需求是否正确; * 资源使用不合理:数据开发天天抱怨数据分析师的 SQL 写得太烂太占资源,分析师天天埋怨 SQL 跑得太慢,每周都有因为资源使用不当导致造成的事故; * 成本指数增长:不停地加机器,已经非线性增长,老板也要问,这些机器到底用在了哪些业务?产生了什么价值?哪些可以做哪些可以省略不做? 针对这些问题,我们需要更精细的成本管理。 ![](http://yg9538.kmgy.top/202211221618746.png) **我们的解决方案是建设一个数据资产中心。** * 首先,核算每个查询任务和表存储资源,然后折算到钱。网易是做内部结算的,所以我们能够把所有的任务折算到钱,而且可以把这些钱分摊到每个数据表、报表, 分摊到每个数据的应用,这样就特别清楚了。 * 第二,采用 “剥洋葱” 式数据下线。从下游不再被使用的数据应用开始,逐层向上游任务和上游数据去下线。这里的下线不是马上下线,而是把它先暂存起来,让其不可访问,如果需要可以马上恢复。 * 第三,预估任务和查询成本,对高消耗的任务和查询进行审批和管控。 整体效果比较理想,当年累计下线数据达到 69P,云音乐、严选分别优化了 47.6% 和 61.0% 的表,也节省了 38% 的计算资源。 **2. 质量问题** ![](http://yg9538.kmgy.top/202211221618510.png) 第二个严重的问题是质量问题,平均每周会有 10 个数据质量问题在群里被反馈,更糟糕的是其中 90% 的问题是由业务方发现的。还有一些非常严重的缺陷甚至会导致资损,比如曾有一次事故就是因为某个任务节点配置的问题,导致把老客户当成了新客户,造成了 30W 的营销资源损失,造成了 P1 的事故。 ![](http://yg9538.kmgy.top/202211221618493.png) 我们对于数据质量问题的解决方案是早发现、早恢复。 * 首先,建全链路的数据质量跟踪体系,从数据源到数据中台模型再到数据应用建立全链路监控。那半年里做了 1000 多个任务的监控,基本覆盖了所有重要数据源,特别是涉及资损的重要数据,保证数据正确性。 * 第二,构建智能基线运维体系,最早我们是基于单个任务去管,报警特别多特别繁琐难以管控,所以我们做了基于基线的运维体系,把任务划分了一些基线,把任务都挂到基线上去。为基线规定了产出时间,并且做了一个特别有用的功能——基线预警,可以提前预知到基线的问题,使得问题可以早发现早挽救,避免事故。 * 第三,任务影响分析,在真正出现了事故和延迟的时候,就需要做任务的影响分析,根据全面的血缘精准评估数据影响了哪些下游的 API、报表、应用,根据应用反推应该如何去修复高优先级的数据。 ![](http://yg9538.kmgy.top/202211221618330.png) 一个典型的案例,有个数据研发收到了报警说基线要破线了,在群里问是不是有人改了依赖?另外一个人就去看,确认问题,马上就把问题解决了,避免了事故。这就是基线预警的效果。 **3. 安全问题** ![](http://yg9538.kmgy.top/202211221618971.png) 我们也曾经踩了很多安全方面的坑。比如曾经某数据开发建一个数据库,把数据库的根目录指定在了整个数仓的根目录上,然后他把整个数仓都给干掉了,更糟糕的是 HDFS 的回收站是有缺陷的,删除文件过多的话,就不会进到回收站。即使调用 HDFS delete API 直接删除,系统也会绕开回收站,这就导致了当年一次很大的删库事故,幸好我们当时马上把 NameNode 上面的镜像 Download 下来,把 NameNode 给停掉,把数据恢复出来。 其他的安全问题,还有权限粒度不够精细、权限审批不方便等,有时不知道如何给予授权,不知道由谁来审批,不知道是否应该授权。 ![](http://yg9538.kmgy.top/202211221618561.png) 针对以上问题我们也做了各种的应对能力,比如设置了公共的回收站,改造 HDFS 回收站,使得删掉数据一定能进回收站;实现了目录冻结,比如数仓的根目录不能删除;备份恢复,数据备份到其他集群,即使整个集群出问题,也不会造成数据丢失;实现了行级的权限、队列的权限,实现了标签的权限控制,也实现了自定义的审批流程, 比如每个部门每种级别的数据可以制定自定义的审批流程。 **以上就是我们在成本、质量、安全方面的工作,遇到问题解决问题。**虽然我们总能见招拆招,但是总觉得有填不完的坑,那怎么办呢?为什么会这样?我们也一直在思考这个问题。 **04** **治理体系:现代数据治理** ![](http://yg9538.kmgy.top/202211221618258.png) 传统的大数据治理分为三个过程,首先是开发,产生数据资产;然后消费数据资产,产生价值;治理在中间,想方设法让我们的数据资产质量更好、更安全,更容易被使用。这是数据治理的目标,但是这样的模式存在一些问题: * 第一,先污染再治理,开发环节无法保证数据的出厂质量,出来的数据就不是很合格,过多依赖事后去治理数据,效率不高。 * 第二,运动式治理,缺少统一的数据治理的衡量标准,不确定效果,也缺乏持续优化的机制,这是存在于治理环节的问题。 * 第三,存在于数据消费的环节的问题是,消费者找不到、看不懂也信不过这些数据,导致数据很难被利用起来产生价值。 * 第四,只能治理大数据平台内的数据,无法管理其他系统的数据。通常互联网公司都把数据集中在大数据平台,但是我们在服务客户的过程中也发现了在很多行业不可能如此,因为他们有建设了不同系统来满足不同的场景需求, 所以我们的治理平台能不能治理大数据平台以外的数据也是一个问题。 ![](http://yg9538.kmgy.top/202211221618595.png) 从根本上来讲,数据治理之所以会产生源源不断的问题,是由于我们的数据治理是个旁路的系统,在开发和消费的边上,它既不深入到上游数据开发的环节,和下游数据消费的环节也是脱节的。所以我认为数据治理应该拓展它的范围,要与数据开发和消费很好地衔接在一起,**这就是现代数据治理,特点总结如下:** * 第一,开发治理一体化,从源头开始控制,实现新产出的数据都能得到治理,未来产生的数据也得到保障。 * 第二,形成治理的闭环,这点主要是针对存量的数据。 * 第三,仓内仓外统一治理,不仅仅是针对大数据平台内的数据,还可以治理数据库、MPP 等现存的一些非平台内的数据,非中台内的数据。 * 第四,建立数据资产门户,我们通过数据资产门户或者数据目录这样的方式,能够让数据更好地被消费。 要符合这四个特点才能把数据治理真正落地,下面展开介绍。 ![](http://yg9538.kmgy.top/202211221618967.png) 数据开发治理一体化,核心是在事前解决质量和安全的问题,将数据治理融入到数据开发的体系中,**整个开发的过程就会变成:** * 第一是要先定义数据标准,数据标准的核心是数据元,比如身份证就是一个数据元类型, 数据元就会规定它是一个字符串的类型,它的取值范围是什么样的,长度是多少,校验质量、校验规则是什么样的,还有设定身份证的隐私条件,比如是保密的,所有的质量安全规则都会绑定在身份证这个数据元上。 * 有了这样的数据元之后,第二步,是定义指标口径,明确指标的业务含义。 * 然后有了标准和指标规范之后,才是建设模型。指标规定了模型业务方面的需求,而标准规定了模型上的质量、安全规则,规定了类型和命名。 * 定义好模型之后,再进入到数据研发环节。 ![](http://yg9538.kmgy.top/202211221618261.png) **如何真正的使得开发治理一体化落地呢?**我们建设了数据标准产品,并与其他子产品做联动、关联,才能确保数据治理能落在数据研发的全生命周期里面,能够紧密结合起来。比如数据标准要和数据质量结合,数据质量就会自动的去开启关于某个字段或者关于某个表的稽核规则;标准要与数据传输去做很好的联动,从数据源到目的地会做自动的表的映射、字段的映射、表数据字典、枚举值的映射。然后数据标准也需要跟模型设计去做关联,这样字段和表的命名就能标准,并且数据目录分类也会标准。标准还要跟数据安全中心去关联,安全中心就会自动得到安全等级是什么,其加密和脱敏的规则是什么,安全审批的流程是什么样,更高等级的数据通常需要更高、更复杂的审批流程。数据标准还可以跟离线开发结合,利用一些 SQL 模板自动做一些 ETL 任务的生成。通过这样一个紧密的关联才能实现研发和治理的一体化。 ![](http://yg9538.kmgy.top/202211221618467.png) **第二是治理要形成闭环**。形成闭环主要包含三个方面的内容,首先是发现问题,也就是我们希望通过多维度健康度的评估,去发现数据中的问题。第二是有了问题之后还得有解决方案,我们通常配了一些专题的优化工具,比如推荐下线、生命周期管理、任务优化等。有了解决方案之后,还得有运营的手段, 比如我们有治理的红黑榜,甚至跟考核或是资源申请挂钩。 ![](http://yg9538.kmgy.top/202211221618526.png) 量化衡量数据资产的分数,我们通常从安全、成本、价值、质量、标准等维度去给资产评分,用户登录到我们的系统,就可以看到某个资产的评分、自己的评分、组织的评分。我们会给评分打一些排行榜,如果用户发现评分有点低,可以具体点进去看到哪里做得不好,比如可能发现自己有一张表,30 天内都没有人访问,那这个时候他可以使用我们产品提供的自助灰度下线的功能,去做一个优化。由此我们能够对数据资产进行全局的衡量。 ![](http://yg9538.kmgy.top/202211221618604.png) 持续运营还需要有流程,很多公司里面有数据治理的部门,治理部门会给每个数据设上正确的 Owner,一旦数据消费者发现数据有问题,就会依据这个在我们的产品里发起一个数据治理申请的工单,数据治理部门收到工单之后就会在一定的时间内响应,当然他不一定要亲自动手来干这个事情,他会依据公司的相关政策,把工单派给各个业务部门数据治理的专员,让他们去解决问题。通过这样的流程能保证我们的数据质量一直在提升,不会一直腐化下去,数据有问题能得到很好的修正,让用户拥有比较好的体验。 ![](http://yg9538.kmgy.top/202211221618708.png) 持续运营还包括文化的建设,我们在网易内部每年都要组织数据分析大赛、数据治理大赛。数据治理大赛看起来比较抽象,但每年都有超过 20 个团队来参加,我们选择其中比较优秀的评奖,并在公司发全员邮件进行表彰,也会做可视化的大赛等等。我们也提供了一些培训,数据开发工程师、数据分析工程师的资格认证培训。我们有些业务部门要求我们给他的员工先出个证,要是没有这个证是不允许去线上操作的。在组织方面也可以建设数据治理部门,也可以在业务部门配置数据治理专员,这样才能更好地把数据治理落地。 ![](http://yg9538.kmgy.top/202211221618705.png) 在仓里仓外数据统一治理方面,我们自己实现了一个逻辑数据湖统一治理的方案,通过元数据注册、扫描、采集、元数据发布,把一些仓外的表,比如 Oracle 的表,MySQL 的表能够映射为我们平台内的一个模型,然后把这个模型关联到不同数据源的物理表。在此之上我们建立了统一开发和统一治理的流程,使得仓里仓外能够统一治理。 ![](http://yg9538.kmgy.top/202211221618018.png) 在数据资产消费方面我们提供了一站式的数据消费平台。通过这样的消费平台,业务人员可以在数据资产门户上看到企业到底有哪些数据、哪些报表、哪些资产,很方便地去申请权限,无缝的在上面跳转到 BI、自助取数,或是其它各种消费数据的地方。管理员也可以根据资产的访问情况进行运营。管理数据就像管理商品一样,如果是不好的数据就应该给予下线,好的则应该给予更好的展示位。 ![](http://yg9538.kmgy.top/202211221618499.png) 最后总结一下,我理解中的**现代数据治理的主要思想:** 首先是研发治理一体化, 防患于未然,保证数据出厂质量。 第二点是成果可以衡量,形成治理改进的闭环。 第三是关注数据的消费,毕竟数据治理的目标是为了数据的消费,发挥数据的价值,所以必须关注数据的消费。 **05** **问答环节** **Q1:在网易内部是什么团队统一制定数据标准、指标标准是业务还是数据治理团队?** A1:网易是事业部制,内部每个业务之间相对比较独立,事业部各自负责各自的标准制定,通常事业部也会有自己的数据部门和他内部的业务部门。我们的外部客户里面,比如说我们接触到很多金融行业的客户,是有专门的数据治理部门,数据治理部门的来制定、牵头制定相关的标准、数据发布审核,需要每个业务部门出数据治理的专员负责治理的落地, 数据团队则负责提供数据,修复数据和元数据问题。 **Q2:治理基线可以大致介绍一下吗?是通过试运行实现治理任务基础基准的吗?** A2:基线可以理解为一组相互依赖的,需要统一管理的任务,这组任务有一定的 SLA。基线可以方便管理, 我们可以为基线设定一个预期产出时间,并配置一个值班表, 每天预测基线预期产出时间, 一旦预测要破线风险,可及时告警到当天的值班人员。基线是很多任务组成,任务相互依赖形成一个复杂的图状结构,那根据任务的运行历史以及当次的运行情况,是可以预测到基线未来的产出时间是不是破线, 如果是破线的话就可以提前来进行告警,使得我们能够有充足的时间能够处理,避免事故发生。 **Q3:目前可以实现落标对标的功能吗?** A3:我不知道是不是指一些行业的标准或者企业的标准如何去落地,传统上我们做数据标准其实是一件很难的事情,比如证券行业,我们理解原来就有很多数据标准了,但是些标准通常是落在纸面上, 就是说有规定这个标准是什么样子的。我觉得落标的核心,还是把标准以产品化的形式来承载,把这个标准贯穿到我们事前事后的整个过程,在数据研发过程中确保产出的数据就是符合标准的,事后我们也可以拿到这个标准, 拿原数据扫描的结果去比对,看看是不是符合标准,然后根据治理的闭环再去治理。所以我认为第一个是落在产品上,第二个是跟其他研发环节做关联,跟治理环节全链路做关联,这样才能很好地落地。 **今天的分享就到这里,谢谢大家。**
yg9538
2022年11月22日 16:34
599
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码