架构-大数据架构-阿里

2023-11-16

大数据架构

大数据框架从0到1整个过程的实现,根据本博客内容,可以实现整个大数据基本搭建,只是大概步骤,供学习参考。

本博客从下面5个方面介绍:
技术框架+技术选型+系统架构设计+业务流程+生态实现步骤


以阿里为例的大数据架构,通过学习视频,然后自己记录起来,可以时刻阅读。如有侵权,可以联系我,我随时删除。

大数据其实就是在海量数据的情况下的研究。假如数据量很少,其实用Excel就完全可以了。


1、阿里云的技术框架

这里将其和其他框架进行对比

阿里云产品 简介 其他产品
ECS 弹性服务器 Linux服务器
RDS 关系型数据库 Mysql
DataHub 数据总线 Kafka+各种服务器接口
实时计算 可以实时计算 Spark、Flink
Dataworks 可视化StreamCompute的开发管理平台 暂无
AnalyticDB for Mysql 分析型数据库 Mysql集群
DataV、QuickBI 可视化数据展示工具 Tableau、Echarts、Kibana、Unity3D、Matplot

2、技术选型

这里根据上面的技术框架,对数据采集、数据存储、数据计算和数据可视化工具进行选型。

功能 阿里云框架 其他开源框架
数据采集(传输) DataHub、DTS Flume、Kafka、Canal、MaxWell
数据存储 RDS、AnalyticDB Mysql、Hadoop、Hbase
数据计算 实时计算 Spark、Flink
数据可视化 DataV、QuickBI Tableau、Echarts、Kibana

3、系统架构设计

ECS :用户行为数据–文件形式
RDS:业务数据–mysql数据
同步事实表—一般数据庞大,这个一般确定后,尽量少修改。数据到Datahub
同步维表—数据量小,列数多,这个方便修改。直接到维度表RDS(这个RDS和上面的RDS不同,这个RDS形成过程是解耦过程)

系统架构


4、业务流程

这里3个事实表、7个维表,这里有数仓分层思想。
这里数仓分为:ODS层、DWD层、DWS层和ADS层。
数据从事实表和维表–>AnalyticDB过程:

 1. 事实表不做处理,作为ODS层,直接存储Datahub(万一实时计算出错,之后还可以调用该事实表数据)。
 2. 之后实时计算直接读取事实表,生成DWD层,存储在Datahub。
 3. 之后根据DWD层和聚合的维度层进行实时计算生成ADS层,存储到AnalysitcDB里。

这里可能没有涉及到DWS层。
在这里插入图片描述


5、整个生态实现步骤

在这里插入图片描述
根据上面的图进行生态建模步骤:

1.购买**RDS**,创建数据集合,用RDS
2.创建Datahub项目
3.直接用DTS把RDS事实表数据同步到创建的Datahub
4.用第二个DTS把RDS维表数据同步到RDS新库(维表库)
	这两个DTS需要分别创建
5.聚合维度表-视图表,方便之后管理和使用
6.分层—**实时服务器购买**,创建实时计算集群和项目环境
7.创建dataworks环境,把项目和集群绑定起来,用于开发
8.ODS层到DWD层—直接在Dataworks里面实现(Datahu--实时处理--到Datahub)
	直接使用sql创建数据源表-创建数据结果表
	还需要在Datahub中创建结果表,之后才可以使用sql导入
9.**AnalyticDB购买**

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

架构-大数据架构-阿里 的相关文章

  • 当与“<”或“>”运算符一起使用时,MySQL 不使用 DATE 上的索引吗?

    我正在使用解释来测试这些查询 col 类型是 DATE 这使用索引 explain SELECT events FROM events WHERE events date 2010 06 11 这不 explain SELECT event
  • Magento --“SQLSTATE[23000]:违反完整性约束..”客户更新

    迁移服务器后 每次尝试更新客户信息时都会出现错误 我正在使用一个客户激活插件 http www magentocommerce com magento connect vinai extension 489 customer activat
  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • MySQL - 选择一行 - 然后相对于所选行的下一个和上一个

    我会尽力澄清这一点 我需要在不使用 id 的情况下选择特定行和该选定行的前一个相对行以及该选定行的下一个相对行 这可能吗 简而言之 上一篇和下一篇 我不能 也许我只是不知道如何 使用 id 的原因是因为它们不是按顺序排列的 正如您从这个相当
  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 从 Grib 天气模型中提取数据

    我已经下载了grib1模型数据来自GFS http en wikipedia org wiki Global Forecast System 我使用的是 Mac OS X 并且能够构建wgrib2文件来自NOAA http en wikip
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • 日期时间与时间戳字段

    我是 MySQL 数据库的新手 您是否建议在表创建中使用日期时间或时间戳字段以及原因 我正在使用 MySQL 5 7 和 innodb 引擎 Thanks 我会用TIMESTAMP对于任何需要自动管理的事情 因为它支持诸如ON UPDATE
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • MVCC 如何与 MySql 中的 Lock 配合使用?

    我知道Mysql中使用锁或者MVCC可以实现并发控制 比如可重复读 但我不知道MVCC如何避免幻读 在其他地方了解到一般是通过MVCC和Gap Lock来实现的 但是目前我理解的是MVCC不需要锁 即更新和删除都是使用undo log来实现
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI

随机推荐

  • 点云旋转平移(二)—python open3d点云平移

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 点云旋转平移介绍 请
  • 算法训练Day7

    目录 LeetCode454 四数相加 1 思路 2 代码实现 3 复杂度分析 4 思考 Leetcode383 赎金信 1 思路 2 代码实现 3 复杂度分析 4 思考 Leetcode15 三数之和 方法一 双指针法 1 思路 2 代码
  • c++ libuv工作队列

    1 说明 libuv 提供了一个线程池 可用于运行用户代码 libuv 中的工作队列中的任务会在线程池中执行 libuv 中的线程池在内部用于运行所有文件系统操作以及 getaddrinfo 和 getnameinfo 请求 libuv 中
  • Linux中Grep命令(在文本中搜索指定文本)

    Grep Global regular expression print 全局正则表达式输出 的缩写 他是Linux中最强的的命令之一 grep在一个或多个输入文本中搜索与给定模式匹配的行 并将每条匹配的行写入标准的输出 如果未至定文件 则
  • 马踏棋盘全部解

    include stdio h int a 12 12 0 棋盘 int cut 0 缓存马所走的步数 long count 0 计算有多少种踏法 void horse int x int y bool walk int index int
  • 大数据--pyspark远程连接hive

    上一篇文章介绍了python连接hive的过程 通过地址 端口号访问到hive并对hive中的数据进行操作 这一篇文章介绍一下怎么通过windows本地pyspark 本地部署好的spark 远程虚拟机的hive 完成本地pyspark对h
  • netcore 判断是否ajax,ASP.NET Core 判断请求是否为Ajax请求

    原文 ASP NET Core 判断请求是否为Ajax请求 我们可以通过HTTP请求头来判断是否为Ajax请求 Ajax请求的request headers里都会有一个key为x requested with 值为XMLHttpReques
  • SQL实战(4)——2021年11月每天新用户的次日留存率

    现有表 用户行为日志表tb user log 问题 统计2021年11月每天新用户的次日留存率 保留2位小数 注 次日留存率为当天新增的用户数中第二天又活跃了的用户数占比 如果in time 进入时间和out time 离开时间跨天了 在两
  • git系列之-如何把项目发布到github

    111111111111111111111111111111111111111111111111111111
  • 华为AR系列路由器密码重置

    1 设备重加电启动 按Ctrl B进入bootrom菜单 密码是huawei 2 修改启动配置文件名称 Main Menu 1 Default Startup 2 Serial Menu 3 Network Menu 4 Startup S
  • Ubuntu16.04安装JDK1.8详细步骤

    检测是否安装JDK root instance cqxyyrb2 java The program java can be found in the following packages default jre gcj 5 jre head
  • WebView加载h5页面弹窗无法显示问题和申请摄像头权限问题做个记录

    参考文章 WebView 加载H5页面空白问题 WebView使用getUserMedia 首先需要设置webview支持js 在Android 9 0后 访问地址如果是http开头的 还需要在配置文件里设置允许http访问 android
  • mybatis入门到熟练(一)

    一 创建一个空的maven项目 使用idea创建一个空的maven项目 引入依赖
  • 0x0000000000指令引用的0x00000000内存。该内存不能为read

    1 不知道是某个软件导致 进入CMD命令提示符 输入for 1 in windir system32 ocx do regsvr32 s 1再输入 for 1 in windir system32 dll do regsvr32 s 1 2
  • 华为OD机试真题 Java 实现【文件目录大小】【2023 B卷 100分】,附详细解题思路

    目录 专栏导读 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 3 说明 4 再输入 5 再输出 6 说明 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 专栏导读 本专
  • python竖线_python对齐竖线

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 大多数编辑器都会自动对齐后续参数列表行 使其缩进程度与你给第一个参数列表行指定的缩进程度相同 def function na
  • Java web 学习笔记

    Java Web 1 web基础 1 1 基本概念 web开发 网页开发 分为 静态web 和 动态web 静态web 由 html css JavaScript 共同组成 提供给所有人看 数据永远不变 动态web 提供给所有人看的数组 在
  • Spring Security Oauth2系列(一)

    前言 关于oauth2 其实是一个规范 本文重点讲解spring对他进行的实现 如果你还不清楚授权服务器 资源服务器 认证授权等基础概念 可以移步理解OAuth 2 0 阮一峰 这是一篇对于oauth2很好的科普文章 需要对spring s
  • MySQL之常见的CRUD面试题【上】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于MySQL数据库的相关操作吧 目录 Welcome Huihui s Code World 导读 一 数据库的连表查询是什么 二 连表查询有几种常见类型 1
  • 架构-大数据架构-阿里

    大数据架构 大数据框架从0到1整个过程的实现 根据本博客内容 可以实现整个大数据基本搭建 只是大概步骤 供学习参考 本博客从下面5个方面介绍 技术框架 技术选型 系统架构设计 业务流程 生态实现步骤 以阿里为例的大数据架构 通过学习视频 然