数据开发的基础

数据开发的数据源

  • 数据系统,一定要保存好数据源。最好有一个在线文档,把系统内各个功能用到的数据源记录下来。
    否则人员变更,数据源丢失就非常麻烦了。

OLAP

OLAP系统,(on-Line Analytic Processing)。在线分析处理 , 就是用于数据分析处理的系统。

离线数据

数据产生之后,不会立即进行清洗,而是在固定的时间进行处理,比如,在当天的凌晨统计昨天的数据。
常见的有 T-1,T-2。

定时任务

定时任务,在固定的时间周期执行任务。可以定时执行 java类代码,ETL,Hive,Shell等。

ClickHouse

ClickHouse是 OLAP系统常用的数据库。

优点:

  • 列式存储,非常适合聚合计算。
    比如统计多个地区在各个时点的数量总和,
    按行存储的聚合计算,一般是设计hour、count等字段,统计时,查询条件为hour=9,对count求和。
    而列式存储,可以设计sum9,sum10等字段,需要统计时直接取 sum9字段的总和即可。

  • 支持千万级别的数据存储、查询。

  • 写入速度非常快

  • 数据压缩空间大,减少io传输,但数据的解压缩需要消耗cpu。

  • 索引是类似跳表结构,并不是mysql的b树结构,不需要满足最左原则。

缺点:

  • 不支持事务
  • 不支持更新。需要更新时可以添加版本号或日期字段,读最新的数据。
  • 不支持高并发,官方建议qps为100
  • 占用较多的CPU资源。采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以不能支持高并发场景,默认单查询也会使用CPU核数为服务器核数的一半。

Hive

数据仓库。
优点:可以存储千万级别的数据。
支持分区,比如常见的一天一个分区,查询数据时,只查对应的分区即可。
缺点:不支持数据更新。查询较慢。

详情见: hive和mysql(传统数据库)的区别_hive sql和mysql区别_leson-xu的博客-CSDN博客

ETL

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
比如,将数据从mysql转换成 es。
实际运用,比如,定时任务执行ETL,从其他部门的Hive表查数据,通过ETL抽取自己需要的字段,进行转换,最后插入到自己项目的表。

数据同步

  • 全量同步、增量同步。
  • 数据同步时的主键冲突处理:替换原有数据、保留原有数据

实时数据

常用技术:Flink、Kafka、Es

可以用 Flink 从 Kafka拉数据,再插入到 Es (或者 ClickHouse)。

数据系统对接

数据系统之间对接字段时,切记,不要盲目从中间系统接数据。
下游的系统,最好从生成字段的最上游系统去接数据,不要从中间系统去拿这些字段。
中间系统往往会对字段进行加工,如果下游系统出现问题要排查非常困难,难以弄清到底是上游系统出问题,还是中间系统出问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值