在之前的文章中,我们探讨了数据工程的入门知识和基础技能,接下来继续探讨高级技能。
数据工程指南系列:
- 《数据工程指南:初学者入门》
- 《数据工程指南:基础技能》
- 《数据工程指南高级技能:如何选择数据平台》
- 《数据工程指南高级技能:Hadoop平台》
- 《数据工程指南高级技能:连接和缓存》
- 《数据工程指南高级技能:处理框架》
原文来源于Github开源项目《The Data Engineering Cookback》
作者:Andreas Kretz
感兴趣可以查看:Data Engineering Cookbook
数据湖 vs 数据仓库
在这个播客中,我们将讨论数据仓库(data warehouse)和数据湖(data lake),什么时候用哪个?两者的利弊有哪些?完全迁移到数据湖有意义吗?
SQL数据库
PostgreSQL
NoSQL
键值存储(HBase)
SQL和NoSQL有什么区别?在这个播客中,我将展示HBase的一个示例,即键值存储是如何工作的。
文档存储HDFS
Hadoop分布式文件系统(HDFS)允许您在Hadoop中存储文件。HDFS与其他文件系统(如NTFSor EXT)的区别在于,它是分布式的。
这是什么意思?
典型的文件系统将数据存储在实际的硬盘上,它依赖于硬件。
如果您有两个磁盘,那么您需要用它自己的文件系统格式化每个磁盘,文件系统是完全分开的。
然后决定在哪个磁盘上实际存储数据。
HDFS的工作原理与典型的文件系统不同,HDFS独立于硬件。
它不仅跨越服务器中的多个磁盘,它还跨越了许多服务器。
HDFS会自动将文件放在Hadoop servercollective中的某个地方。
它不仅存储你的文件,Hadoop还将复制两到三次(可以自定义)。复制意味着文件的副本将分发到不同的服务器。
这为您提供了卓越的容错能力,如果一台服务器出现故障,那么您的数据将在另一台服务器上保持可用。
HDFS的另一个优点是,文件的大小没有限制。服务器日志文件的大小可以是TB。
文件怎么会这么大?HDFS允许您将数据附加到文件。因此,您可以连续地将数据转储到单个文件中。
HDFS物理上存储的文件与普通文件系统不同,它将文件分成块。
这些块然后在Hadoop上分布和复制群集,拆分是自动完成的。
在配置中,您可以定义块的大小,选择128MB还是1GB?都没问题。
这种将大文件分成块并将其分发到服务器上的机制非常适合大数据处理。
文档存储MongoDB
- 什么是MongoDB
- MongoDB官方文档
- 存储在BSON文件
- MongoDB入门示例
- 利用MongoDB和PowerBI做实时分析
- Spark和MongoDB
- MongoDB对比时序数据库
- 有趣的文章:为什么你不应该使用MongoDB
- MongoDB对比Cassandra
Elasticsearch搜索引擎和文档存储
Elasticsearch是一个非常流行的索引和搜索数据的工具。在这个播客中,我们将了解它的工作原理、体系结构以及使用它的目的,它如此受欢迎一定是有原因的。
- Elasticsearch、Logstash和Kibana的架构示例
- Elasticsearch入门
- 如何使用Json文档
- 如何使用json中的嵌套对象
- 索引基础
- 如何使用DSL语言查询数据
- 如何使用API进行搜索
- 使用Elasticsearch的通用建议
- JSON文档示例和Kibana简介
- 如何将Tableau连接到Elasticsearch
- 测试Elasticsearch的速度
- Elasticsearch对比MongoDB
- Elasticsearch的X-Pack安全性
- 谷歌趋势Grafana vs Kibana
InfluxDB时间序列数据库
- InfluxDB关键概念
- InfluxDB和Spark流
- 使用spark、grafana、chronogram和Influx构建流媒体应用
- Performance Dashboard Sprak和InfluxDB
Sprak和InfluxDB](https://db-blog.web.cern.ch/blog/luca-canali/2019-02-performance-dashboard-apache-spark)
著名的时序数据库有:DalmatinerDB、InfluxDB、Prometheus、Riak TS、OpenTSDB、KairosDB