大数据开发项目流程

ops/2024/11/20 22:23:35/

今天分享下在工作中的项目开发流程


1) Mysql hadoop  hive oracle

hadoop: 实现海量数据的存储和计算

数据库: mysql  Oracle

数据仓库: hive

2) 数据库和数据仓库都是将书库转为结构化数据处理(表数据)

联机事务处理 OLTP 数据库 面向事务进行数据处理 , 数据的增删改查

联机分析处理 OLAP 数据仓库 面向分析进行数据处理, 数据的存储和查询 一次写入多次读取

日常使用中,经常操作的是非结构化数据

       文件(更多的是) 视频 音频 图片


文件数据转化为结构化数据

Kettle 读取文件数据存储到数据库,也可以将文件数据导入存储到数仓中

编程代码 Python 

结构化数据的操作:使用 SQL   structure query language  结构化查询语音

DDL  创建库表

DML  表数据的增删改

DQL  表数据的查询

DCL  权限管理


hive 在进行表数据操作时,是将表的数据拆成两部分操作

表数据包含 

表的元数据 :表名 字段 字段类型 约束等   元数据就是对数据本身的描述

表行数据  hdfs 存储管理

MySQL 和 Oracle 是将表数据自己存储管理


 3) 项目流程:

3-1 介绍

数仓形式: 离线数仓开发


线下到线上:

公司有线下的连锁商店,为了满足线上购物需求,开发了网站APP,小程序

在三方平台开设店铺

线下商店可以根据规模不同 进行商品批发或企业团购

线上到线下(京东,淘宝):

先有线上网站,引入新零售场景,开始发展线下,开设线下的实体商店以及自己的物流体系


3-4 开发需求介绍

销售需求

会员需求

供应链需求

商品需求

不同需求就是一个开发主题

需求开发完成后就会有新的需求产生


3-5 项目架构介绍

3-5-1

数仓分层架构

 -- *** 数据是自上而下进行开发,上是尚有数据

 -- 再导入数据时,直接将所有数据导入数仓,在根据需求从数仓中筛选数据进行计算

 -- 该架构模式会造成数仓中存储大量无用数据


 1. 用户数据

 2. 订单数据

 3. 商品数据

 4. 业务需求

      4-1. 计算用户总量

      4-2 计算每天新增用户

      4-3 计算每天存留用户量

      4-4 月增用户

      4-5 月留存用户量 

 5. 传统数仓架构,需求变化快


5-1 - 离线数仓架构

     --  ***自下而上   先确认下游的计算需求,根据计算需求向上要计算的数据,将需要计算的数据导入数仓

     -- 维度表      分组数据 (例如月 日 时间维度表 )

     -- 事实表      计算内容作为事实表 (例如用户量 事实表)


           1)   用户主题分析    用到时间维度表

           2)  商品主题分析   用到时间维度表

每一个主题可能都用到时间维度表,但可能单位不同 有的是年月日 有的是时分秒  所以容易造成时间维度表的混乱 (命名很接

近)  所以采用 cif架构  将数仓架构划分为不同的层次以满足不同场景的需求, 比如 : ods dw dm 等 分层处理


5-2  技术架构

数仓架构描述的是数据处理流程

技术架构描述的是实现数仓用的技术组成

1) 数据源存储  
     
        1-1  MySQL 
        
        1-2  SQL Server
  
2) 数据导入 ETL
 
        2-1  sqoop
 
        2-2  datax

        2-3  flume

        2-4  kettle

3) 数据仓库

        3-1 分布式存储  hdfs

        3-2 分布式计算 mapreduce  +  hive

        3-3  资源调度  yarn

4)数仓数据导出 

        4-2 datax 

        4-3 sqoop

        4-4 kettle

5) 存储结果的数据库

       5-1  mysql

       5-2  sql server

       5-3 oracle

6) 数据展示

       6-1  fineBI

       6-2  finereport

       6-3  superset
 
       6-4   powerBI
 


http://www.ppmy.cn/ops/17171.html

相关文章

AI道路交通违章智能抓拍系统解决方案

项目概述 背景 目前,XX市市全市民用汽车保有量94.62万辆,比上年末增长15.9%,其中私人汽车保有量35.48万辆,减少0.01%。轿车保有量39.45万辆,增长82.1%,其中私人轿车38.65万辆,增长82.1%。电动自…

基于51单片机电子钟闹钟12/24小时制LCD显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机电子钟闹钟12/24小时制LCD显示 1. 主要功能:2. 讲解视频:3. 仿真设计4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机电子钟闹钟12/24小时制LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteu…

HCIP-Datacom-ARST必选题库_IPsec【3道题】

1.在IPsec中,能够用哪一个协议来实现数据的完整性? AES 3DES MD5 DES 2.以下关于IPsec密钥交换的描述,正确的是哪一项? IKE主模式支持NAT转换 IKE协商使用Bellham-Ford算法分发密钥 使用IKE协议主模式需要经历三个阶段:SA交换、密钥交换和ID交…

Kafka 监控之分层存储监控和 KRaft 监控指标

目录 一. 前言 二. 分层存储监控(Tiered Storage Monitoring) 三. KRaft 监控指标(KRaft Monitoring Metrics) 3.1. KRaft 投票人数监控指标(KRaft Quorum Monitoring Metrics) 3.2. KRaft 控制器监控…

统计单词数量(文件)(*)

请编写函数&#xff0c;统计英文文章的单词数量。 函数原型 int CountWord(FILE *f); 说明&#xff1a;参数 f 为文件指针。函数值为该文件的单词数量。 裁判程序 #include <stdio.h> #include <stdlib.h> #include <ctype.h>int CountWord(FILE *f);in…

[C++][算法基础]分组背包问题(动态规划)

有 &#x1d441; 组物品和一个容量是 &#x1d449; 的背包。 每组物品有若干个&#xff0c;同一组内的物品最多只能选一个。 每件物品的体积是 &#xff0c;价值是 &#xff0c;其中 &#x1d456; 是组号&#xff0c;&#x1d457; 是组内编号。 求解将哪些物品装入背包&a…

4月25日 C++day4

#include <iostream> using namespace std;class Person {const string name;int age;char sex; public:Person():name("lisi"){cout << "Person无参构造" << endl;}Person(string name,int age,char sex):name(name),age(age),sex(sex)…

nvm安装及使用(mac)

安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash# orwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash这步会自动在你的文件中添加nvm配置文件. 如果你用的是zsh, 那就是 ~/.zshrc. 如果你用的 bas…