掘友等级
获得徽章 0
【golang的重新声明】
在满足下列条件时,已被声明的变量 v 可出现在:= 声明中:
1. 本次声明与已声明的 v 处于同一作用域中;
2. 类型不变;
3. 在此次声明中至少另有一个变量是新声明的。
shell快捷键ctrl+a将光标移动到行首
ctrl+e将光标移动到行尾
Banker's rounding(银行家舍入)算法,即四舍六入五取偶。
采用这种算法的目的为了避免四舍五入规则造成的结果偏高,误差偏大的现象出现。准确而言,四舍六入五留双应称作“四舍六入,逢五无后则留双”,如此就可以完全覆盖此规则的详情。
OLTP联机事务处理,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关系操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。
OLAP联机分析处理,一般针对某些主题的历史数据进行分析,支持管理决策。
数据库设计是尽量避免冗余,一般针对某一业务应用进行设计。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标而设计。
数据库是为了捕获数据而设计,数据仓库是为了分析数据而设计。
宽表
所谓的宽表就是字段比较多的表,包含的维度层次比较多,造成冗余也比较多,毁范式设计,但是利于取数统计,而窄表往往对于OLTP比较合适,符合范式设计原则。
DruidApache Druid是一种新型数据库,可为事件驱动数据的实时分析工作负载提供支持,而不是传统的数据仓库。尽管Druid结合了数据仓库的架构思想,例如面向列的存储,但Druid也结合列存储系统和时间序列数据库的设计。Druid的架构旨在处理传统数据仓库无法处理的许多用例。
与传统数据数据仓库相比,Druid具有以下优势:
- OLAP样式查询的延迟要低得多
- 数据摄取(流和批处理)的延迟要低得多
- 与Apache Kafka、AWS Kinesis、HDFS、AWS S3、Aliyun OSS等开箱即用的集成
- 基于时间的分区,支持基于时间的高性能查询
- 快速搜索和过滤,用于快速切片和切换
- 对半结构化和嵌套数据的最小架构设计和本机支持
Druid是TSDB,且比一般的TSDB更优秀。Druid针对存在时间戳的数据进行了优化。Druid按时间对数据进行分区,包含时间过滤器的查询将比不包含时间过滤器的查询快得多。当存在时间过滤器时,聚合指标和过滤维度(大致相当于TSDB的标签)也非常快。
但是,由于Druid结合了来自分析数据库和存储系统的许多架构设计,因此在对非时间标签进行分组、搜索和过滤时,或者在计算直方图和分位数等复杂指标时,它的性能可以显著优于TSDB。
Druid将存储和计算分开。Druid创建原始数据的索引副本,该副本针对分析查询进行了高度优化。Druid对该索引数据运行查询,在Druid中称为Segment,并且不会根据查询需要从外部存储系统中提取原始数据。
Druid通常连接到原始数据源,例如消息总线(例如Apache Kafka)或文件系统(例如HDFS)。Druid摄取优化的、面向列的、索引的数据副本,并在其上提供分析工作负载。
下一页