READ

漫谈数据质量监控

什么值得监控

数据质量分成三个部分: 监控,告警,多数据源

重点在于监控

数据监控思维导图

监控

监控比较大,整体来讲,分成:日常监控、数据对账、性能监控

日常监控

最重要的是数据落地检查。

比较常用的监控内容:

  • 数据落地监控
  • 数据掉0监控: 实际是数据量阈值监控,少于某个量警告
  • 重复数据监控: 很多表要监控重复数据,很重要
  • 关键指标监控:
  • 数据同比环比监控
数据对账

主要体现在实时数据上 特别是Kafka数据落地,必须要有一个监控机制来知道我们的数据落地情况

离线数据也需要数据对账,比如可以喝业务库来对比

性能监控

理解成数据可用性监控

  • 查询性能
  • 数据读写影响,机器故障影响
告警

手机,微信等直接的告警渠道 定期的汇总整理

多数据源

常用的: Hive(presto、spark sql)、Mysql、ES、Redis、Kylin

怎样监控

整体的构思

规则引擎

定义各种告警规则,可能是一条sql模板,也可能是具体的算法

比如:

  • 数据延迟到达
  • 数据同比环比
  • 数据趋势
  • 一些定制化算法
Sql模板

在大多数存储引擎中,通过使用Sql使用的数据可以考虑sql模板。 有一张表或者一些配置文件来定义规则。比如数据同比环比,可以写一个sql模板,来和历史数据进行对比,最简单也最快,能解决大部分问题

元数据

很多数据库有元数据管理的,如Hive,表的行数都是在 元数据库中有存放,所以可以直接通过Hive的元数据来抓取表的每天的数据量

节省大部分工作,而且比较稳定,但满足的功能比较少

自定义模板

主要工作量咋执行引擎上,但在规则引擎应该有设计到

执行引擎
sql执行

很多规则可以通过sql来执行

具体的执行引擎的话可以考虑presto或者spark sql,特别大的任务可以考虑hive

优点:

  • 简单,方便使用
  • 能满足大部分的需求

缺点:

  • 灵活度不够: 比如es,对sql支持太差
  • 速度慢:很多sql执行起来会比较慢,特别是使用hive引擎的时候,会巨慢
  • 不稳定

如何解决

  • 合理的任务调度,以班级群都是容纳很多任务的,合适地调度监控人物比较重要
  • 合理地替换执行引擎
  • 合理的任务依赖,对于重复数据监控,需要等数据达到后再执行才有意义
直接获取数据量

Hive有元数据管理,记录Hive的所有表的记录数,这些记录数可以直接用作数据量相关的监控,比如数据掉零、数据环比同比、数据量趋势等

算法执行引擎

可以通过投算法自定义实现,在实现起来会复杂一些

多数据源

在规则引擎里面需要加一些区分,毕竟和元数据系统关联 执行时需要稍微分开来实现

李狗蛋和二狗子因为HTTP or RPC打起来了No.135

HTTP和RPC的区别

HTTP - Hypertext Transfer Protocol, 超文本传输协议, 是一款网络传输协议 RPC - Remote Procedure Call, 远程方法调用,是一款服务调用方案。

一个是协议一个是方案,没有必然关联也没有可比性,但是为什么会比较: 现在有着SpringCloud为首的HTTP restful风格的调用经验,也有着grpc等这类私有协议的调用方式。自然而然,从这个层次上认为,是同类的东西,但是并非如此。

但是两者都是希望得到服务,而被创造出来的技术

HTTP是啥

是在互联网中用来传输大量信息(比如文本、声音、视频等)的一个协议 基于C/S模式 - 客户端用HTTP发起请求,服务端接受到请求后同样用HTTP的响应请求

一次HTTP请求 - 3次握手,4次挥手

3次握手

4次挥手

RPC是啥

在调用远程服务的时候,用本地调用的方式,本地的处理器屏蔽了所有网络、异常、重试等细节,服务调用方只关注输入值和返回的服务,相当于一个代理。 企业神奇中间件-RPC(总览) No.97

两者比较

  • 用HTTP可以实现RPC吗 - 能。不仅仅HTTP可以实现RPC, 任何网络协议都可以用来实现RPC。

  • 用RPC可以实现HTTP吗? 不能。 HTTP有国籍标准

  • HTTP可以抛弃TCP/IP吗 - 暂时不能。 HTTP/1.1甚至HTTP/2.0暂时都基于TCP/IP协议。HTTP/3.0可能可以解除TCP依赖

  • RPC可以抛弃TCP/IP吗 - 能。只要网络通的,TCP、UDP甚至小众的网络协议都可以实现RPC

  • HTTP可以跨平台跨语言吗 - 天然支持

  • RPC可以跨平台跨语言吗 - 需要一定的努力。一些协议会把自己的序列化和反序列化给定制化了,只能自己解析自己。比如JAVA的RMI。

  • 能自己实现一个HTTP吗 - 可能性不大

  • 能自己试下哪一个RPC吗 - 可以的, 见BigBanana-rpc

  • HTTP快吗 - 快

  • RPC快吗 - 快, 基于私有协议可以把网络传输冗余数据降到最低

SUMMARY

HTTP是网络协议,跨平台跨语言,结合restful开发应用写作,开发高效,但是协议头重 RPC是调用方案,一般都会有私有协议,没有多余信息,运行高效,但大多数rpc的迁移性并不是很好

HTTP就是英语,能处理非常多非常广泛的场景。RPC 就是方言,效率可能比英语高多了,但是可能有人听不懂。

【Python】SQL to Pandas 速查表(一)

“无代码”时代何时到来?

今天,任何拥有计算机并能够访问互联网的人都可以使用简易工具来构建一个网站。这些GUI工具不仅可以帮助你创造静态站点,还能够开发功能齐全的各类应用程序。在不到一个小时内你就能够:

使用Webflow搭建一个响应完美的CMS驱动网站 使用Shopify建立一个电商店铺 使用Octane AI搭建适用于您的商店的Facebook Messenger聊天机器人 使用Bubble开发网络应用程序 使用Thunkable开发移动应用程序 使用Voiceflow开发语音应用程序 结合Zapier和Airtable来创建一个复杂网络应用程序 使用Carrd搭建简单的单页网站 使用Substack创建付费报纸服务 使用Scapic在浏览器中创建AR / VR / 3D体验 使用Readymag创建在线杂志 使用Sheet2Site将Google表格转换为网站 使用Retool搭建内部交互式指示面板

还有一些专注于“无代码”的资源推荐:Zeroqode,NoCode和MakerPad。

Website

Python3 Tutorial

Extension

Website IP

Simple script which places the IP of the current website in the bottom right. This extension simply adds the IP of the current website you are viewing to the bottom right