数据仓库和管道构建指南
所属分类 DW
浏览量 684
数据仓库(data warehouse)
数据管道(data pipelines)
数据仓库和管道的基本架构可以分为四个部分
数据源(data sources)、数据湖(data lake)、数据仓库(data warehouse)和数据集市(data marts)
数据源:商业运营产生的数据,一般来自于数据库、CRM、API等。
数据湖:数据湖是一个存储库,存储多个原始数据集,在这个阶段数据通常是非结构化的,并且有点凌乱。
数据仓库:通常被称为单一真实来源,是一种干净、有序、单一的数据表示。
数据集市:数据仓库中经过加工(如过滤和聚合)的一个子部分,目标是令特定数据更容易查询
批处理和流处理
批处理(batch processing)
批量加载数据,例如每天、每小时加载一次
流处理(stream processing)
数据到来时处理,通常要借助发布/订阅(Pub/Sub)系统完成,这种方式保证了将数据实时地加载到数据仓库
ETL vs ELT
批处理意味着将数据从A点移动到B点,执行这些任务的进程称为ETL(提取、加载和转换)
这个过程从数据源提取数据、转换,然后加载到数据湖或数据仓库
近年来又引入了一种新方法:ELT。
两种方法的区别
ETL是一种传统的方法,从数据源提取数据后转换并加载到数据湖。
ELT是一种现代的方法,先从数据源提取数据加载到数据湖,然后转换数据,再移动到数据仓库。
ETL在数据湖出现之前就已经存在,转换的过程一般会创建一个“虚拟”的数据湖来缓存数据,
由于现代的存储和计算资源非常便宜,可以用一个实际的数据湖存储原始数据。
ELT是首选方法,因为它简化了构建数据管道的流程。
数据管道实施五个流程
策划(Orchestration)、监控(Monitor)、版本控制(Version Control)、CI/CD和配置管理(Configuration)
基于DataOps理念定义
DataOps是技术实践、工作流、文化规范和架构模式的集合,能够减少数据管道中的技术细节
1. 策划
Cron组织数据处理任务
随着管道的增长,流程的复杂性也会增加,CRON作业不适合组织整个数据管道
使用工作流管理系统(WMS),它们以一种稳定和高效的方式来组合并管理数据处理任务,包括重试策略、流程泛化、自动化、管理任务依赖等。
常用的WMS包括
APache Airflow
Apache Luigi
Azkaban
2. 监控
监控数据管道,确保数据质量
常用的工具
grafana
Datadog
prometheus
3. CI/CD
CI/CD代表持续集成和持续部署
CI的目标是建立一种一致的、自动化的方式来构建、打包和测试应用程序
CD自动将应用程序部署到生产环境
CI/CD 以自动化的方式将更改推送到数据管道中,减少手动和容易出错的工作
常用的工具
jenkins
GitlabCI
Codeship
travis
4. 配置管理
假设数据管道突然崩溃,需要重新部署整个系统怎么办?
使用配置管理,它可以在任何时间处理任何基础设施或软件系统的状态,
充分践行“基础结构即代码”的原则
它还能处理基础架构的整个配置
常用工具
Ansible
Puppet
terraform
5. 版本控制
版本控制用于管理系统代码,实现了跟踪代码变更、迭代开发和团队协作的过程。
常用工具
github
GitLab
Docker Hubdvc
上一篇
下一篇
play scala slick example
scala简易指南
ETL工具简介
scala break continue
Scala implicit 隐式转换
scala implicit 隐式参数