宇宙湾

厚积薄发


  • 首页

  • 关于

  • 标签83

  • 分类30

  • 归档34

  • 搜索

Apache Druid:一款高效的 OLAP 引擎

发表于 2017-04-02 | 更新于 2019-02-13 | 分类于 Apache Druid

基本概念

概述

 Apache Druid™ 是目前比较流行的高性能的,分布式列存储的 OLAP 框架(准确来说是 MOLAP)。它是一款可以快速(实时)访问大量的、很少变化的数据的系统。并被设计为,在面对代码部署、机器故障和生产系统的其他可能性问题时,依旧能 100% 地正常提供服务

特性

亚秒级查询

 Druid 提供了快速的聚合能力以及亚秒级的 OLAP 查询能力,多租户的设计,是面向用户分析应用的理想方式

实时数据注入

 Druid 支持 流数据的注入,并提供了 数据的事件驱动,保证在 实时和离线环境下事件的 时效性 和 统一性

可扩展的 PB 级存储

 Druid 集群可以很方便地 扩容到 PB 的数据量,每秒百万级别的数据注入

 即便在超大数据规模的情况下,也能保证时其高效性

多环境部署

 Druid 既可以运行在商业的硬件上,也可以运行在云上

 它可以将很多种数据系统作为数据源,进行数据注入,包括 Hadoop、Spark、Storm、Kafka 和 Samza 等

多版本控制

 多版本控制(MVCC,Multi-Version Concurrent Control),主要是为了解决多用户操作同一行记录时的并发问题。MVCC 设计思路是,在多用户访问数据库时,不使用粗暴的行锁,而是在事务操作更新数据的时候,生成一个新版本的数据。如此,可以保证读写分离,从而避免读写操作互相阻塞,提高了并发性能。另外约束,同一时刻只有最新版本的记录是有效的,即保证了数据的一致性

 而 Druid 中是使用数据更新时间来区分版本,历史节点只加载最新版本的数据。同时,实时数据索引与离线数据批量覆盖同时进行的 lambda 架构设计,既满足了实时响应的需求,又确保了数据的准确性

阅读全文 »

如何成为 ASF 的 Committer

发表于 2017-04-03 | 更新于 2019-02-13 | 分类于 开源社区

关于本文

 本文主要是为了,记录给 Apache Druid / Apache Eagle / Apache Flink / Apache HBase / Apache Kafka / Apache Superset / Apache Zookeeper / TensorFlow 开源社区贡献代码,尽自己一点绵薄之力的过程

 文章最后一节,是一些经验之谈,期冀能帮助到 同样热爱开源、也想成为 Committer 的小伙伴们

开源贡献纪实

Apache / Druid

Pull Request

TitleStatusCreate DateMerge Date
Some code refactor for better performance of Avro-Extension #4092Merged2017-03-222017-04-25
Explain Avro´s unnecessary EOFException (#4098) #4100Merged2017-03-232017-03-24
Improve collection related things that reusing a immutable object instead of creating a new object #4135Merged2017-03-302017-05-17
Increment the resource of JVM and the number of threads in Travis instead of default #4139Closed2017-03-31
Update outdated RLE paper and improve some code refactoring #4286Merged2017-05-172017-05-19
Fix bug in SegmentAnalyzer.analyzeComplexColumn() #5939 #5954Merged2018-07-072018-07-10
Remove redundant type parameters and enforce some other style and inspection rules #5980Merged2018-07-092018-07-28
Add IRC#druid-dev shields.io into README #6002Merged2018-07-132018-07-22
Add the ‘—fail-at-end’ option to maven command for ‘strictly compiled’ part #6078Merged2018-07-312018-08-01
Fix missing exception handling as part of io.druid.java.util.http.client.netty.HttpClientPipelineFactory #6090Merged2018-08-022018-08-11
Make time-related variables more readable #6158Merged2018-08-122018-08-22
Add maven.exec.xxx.skip option for exec-maven-plugin #6162Merged2018-08-132018-09-25
Fix assertionError at testCheckpointForInactiveTaskGroup in KafkaSupervisorTest #6192Merged2018-08-192018-08-22
Fix wrong counter getFailedSendingTimeCounter method #6793Merged2019-01-022019-01-02
In addition to special cases such as avoiding deadlock, make sure that the current thread has got the connectionLock object lock when accessing the statements object #6903Merged2019-01-232019-01-28
For performance reasons, use java.util.Base64 instead of Base64 in Apache Commons Codec and Guava #6913Merged2019-01-252019-01-26
阅读全文 »

Git 高级玩法

发表于 2017-04-11 | 更新于 2019-02-12 | 分类于 Git

Git Blame

1
2
3
# 查看文件中,每一行的修改人和最后改动时间
$ git blame pom.xml
^e81ccde3 (BenedictJin 2018-06-04 11:16:19 +0800 1) <?xml version="1.0" encoding="UTF-8"?>

Git Branch

1
2
3
4
5
6
7
8
9
10
11
12
# 克隆当前分支,以此创建新的 branch,并切换
$ git checkout -b <branch>

# 重命名 branch 名称
$ git branch -m <old_name> <new_name>
$ git branch -m <new_name>

# 恢复删除掉的 branch
# 查看你上一次 commit SHA1 值
$ git reflog
# 恢复
$ git branch <branch_name> <sha1>

Git Cache

1
2
3
4
5
6
7
# 添加 .gitignore 文件之后,可能有些文件报错 `ignored tracked with git`
# 需要用 `git rm --cached` 进行删除
$ git rm --cached <file>

# 部分动态文件可能报错文件内容不一致 `the following files have staged content different from both the file and the HEAD`
# 需要增加 `-f` 参数进行强制删除
$ git rm --cached -f .idea/workspace.xml
阅读全文 »
12…12
Benedict Jin

Benedict Jin

Benedict Jin's Blog

34 日志
30 分类
83 标签
RSS
GitHub E-Mail
近期文章
  • 程序员的 Mac 高效手册
  • Scala 实战
  • Stephen William Hawking
  • 有趣的数学
  • Redis 实战
Links
  • Grace
  • Ehlxr
  • Format
  • CrossoverJie
  • Oatiz
  • daya0576
  • ichen
  • 技术世界
  • 小撸
  • 泫
  • 五斤
0%
© 2014 — 2019 yuzhouwan.com
备案 : 苏 ICP 备 17032505号

Hosted by Coding Pages