数据抽取+dataworks的使用+ADB的应用

news2025/1/22 16:46:28

一,大数据处理之数据抽取

1,什么是数据抽取

在大数据领域中,数据抽取是指从原始数据源中提取所需的数据子集或特定数据项的过程,
数据抽取是数据预处理的重要步骤,它为后续的数据分析和建模提供了基础。

2,为什么要进行数据抽取

1,大数据量中,频繁的大批量查询需要很大的计算资源和时间,会影响数据库的性能,从而影响应用业务逻辑的执行
2,业务与数据分离,可以在不影响业务的前提下,更好的实现数据处理、数据分析,进而产出数据报表

二,阿里大数据平台dataworks实现数据抽取

1,数据抽取方式

1,抽取方式-全量抽取:在数据量不大时可以选中按照类似创建时间字段进行每次全量抽取,实现简单
2,抽取方式-增量抽取:大数据量中全量抽取效率过低,应选择按照类似修改时间字段进行每次增量抽取
2,数据抽取工具阿里dataworks

1,dataworks简单介绍

阿里云产品文档地址:https://help.aliyun.com/zh/dataworks/product-overview/
DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大数据引擎,为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

2,dataworks使用流程图

dataworks使用总体流程
在这里插入图片描述

数据开发流程
在这里插入图片描述

数据集成流程
在这里插入图片描述

3,数据地图

搜索需要使用的源数据表——>申请表权限
在这里插入图片描述

4,数据开发(DataStudio)

新建一个数据处理的业务流程
在这里插入图片描述

新建数据处理sql文件编写数据处理sql:业务流程下MaxCompute——>数据开发——>新建节点——>ODPS SQL——>编写数据处理汇集的查询sql并调试通过
在这里插入图片描述

新建数据处理后的中间层表:业务流程下MaxCompute——>表——>新建表
在这里插入图片描述

配置往数据处理后的中间层表同步的ODPS SQL的调度配置:重点为调度时间配置+调度依赖配置
注意:若所依赖的数据源表和数据处理后的中间层表不在同一工作空间下,则无法绑定依赖关系,则需观察数据源表的数据生成时间,手动设置ODPS SQL的调度时间延后
在这里插入图片描述

新建数据集成任务:数据集成——>新建节点——>离线同步——>选择数据来源(数据处理建立的ads层临时表)
——>选择数据去向——>调度配置配置时间属性等参数
在这里插入图片描述

4,ODPS SQL的开发规范+常用sql函数

1,sql语句全部大写,格式化操作
2,sql参考:https://help.aliyun.com/zh/maxcompute/user-guide/sql-3/
日期与时间函数:https://help.aliyun.com/zh/maxcompute/user-guide/date-functions
字符串函数:https://help.aliyun.com/zh/maxcompute/user-guide/string-functions
聚合函数:https://help.aliyun.com/zh/maxcompute/user-guide/aggregate-functions

三,ADB数据库的应用——数据抽取后的应用

1,ADB数据库注意点

1,adb表可以插入,可以带条件删除,不支持修改命令,不支持清空表表命令,不支持delete全量删除
2,adb表支持主键冲突——即主键冲突时不会多次插入数据
3,AnalyticDB MySQL版集群默认编码格式为utf-8,相当于MySQL中的utf8mb4编码,暂不支持其他编码格式。
4,AnalyticDB MySQL版不支持unsigned约束(指定当前列的数值为非负数)。

2,建表注意事项

1,AnalyticDB MySQL版的表分为分区表和维度表。

分区表:又称普通表,用于存储业务数据的度量值。AnalyticDB MySQL版根据分布键将数据打散在各个数据节点上。每个节点再根据分区键将数据文件拆分为不同的文件。
如果业务明确有增量数据导入需求,创建分区表时可以同时指定分布键和分区键,来实现数据的增量同步

维度表:维度表是业务特性描述的集合,每个节点冗余一份。通常数据量小,变化频率低。

2,主键中必须包含分布键和分区键,建议将分区键和分布键放在组合主键的前部

3,在普通表中定义表的分布键:DISTRIBUTED BY HASH(column_name,…),按照column_name的HASH值进行分片。
AnalyticDB MySQL版支持将多个字段作为分布键。
AnalyticDB MySQL版不支持修改分布键。

4,PARTITION BY VALUE(column_name)表示使用column_name的值来做分区

5,updateType:表数据更新方式:
realtime:实时更新,只支持实时写入数据。
batch:批量更新,只支持批量离线导入数据。不带此参数时,默认为批量更新。

3,常规聚合函数

在这里插入图片描述

4,窗口函数

窗口函数是基于查询结果的行数据进行计算的函数,运行在 HAVING 子句之后 ORDER BY 子句之前。触发一个窗口函数需要特殊的关键字 OVER子句来指定窗口。

一个窗口包含三个组成部分:

分区规范:用于将输入行分裂到不同的分区中,与 GROUP BY 子句的分裂过程相似。
排序规范:用于决定输入数据行在窗口函数中执行的顺序。
窗口框架:用于指定一个滑动窗口的数据,以给窗口函数指定需要处理的行数据。如果这个框架没有指定,则默认是 RANGE UNBOUNDED PRECEDING (与 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 相同),默认框架包含当前分区中所有从开始到目前行所有数据。
cume_dist() → bigint
返回一组数值中每个值的累计分布。结果返回的是按照窗口分区下窗口排序后的数据集下,
当前行前面包括当前行数据的行数。因此,排序中任何关联值均会计算成相同的分布值。

dense_rank() → bigint
返回一组数值中每个数值的排名。这个函数与 rank() 相似,但该函数关联值不会产生顺序上的空隙。

ntile(n) → bigint
将每个窗口分区的数据分裂到 n 个桶中(桶号从 1 到最大 n ,桶号值最多间隔是 1)。 
如果窗口分区中的数据行数不能均匀的分到每一个桶中,则剩余值将每一个桶分一个,从第一个桶开始。

percent_rank() → bigint
返回数据集中每个数据的排名百分比。结果是根据 (r - 1) / (n - 1) 计算的,
其中 r 是由 rank() 计算 的当前行排名, n 是当前窗口分区内总的行数。

rank() → bigint
返回数据集中每个值的排名。排名值是根据当前行之前的行数加1,不包含当前行,
因此排序的关联值可能产生顺序上的空隙。 rank() 排名会对每个窗口分区进行计算。

row_number() → bigint
根据行在窗口分区内的顺序,为每行数据返回一个唯一的顺序的行号,从1开始。

值函数
first_value(x)[与输入类型相同]
返回窗口内的第一个值。

last_value(x)[与输入类型相同]
返回窗口内的最后一个值。

nth_value(x, offset)[与输入类型相同]
返回窗口内指定偏移的值。偏移量从 1 开始。如果偏移量是null或者大于窗口内值的个数,返回null。 
如果偏移量为0或者负数,则会报错。

lead(x[, offset[, default_value]])[与输入类型相同]
返回窗口内当前行往后偏移 offset 的值。偏移量可以是标量表达式,起始值是0(即当前数据行),默认是1 。
如果偏移量的值是 null 或者大于窗口长度,则返回 default_value;如果没有指定偏移量,则会返回 null 。

lag(x[, offset[, default_value]])[与输入类型相同]
返回窗口内当前行往前偏移 offset 的值。偏移量可以是标量表达式,起始值是0(即当前数据行),默认是1 。
如果偏移量的值是null或者大于窗口长度,则返回 default_value;如果没有指定偏移量,则返回 null 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10强制卸载更新补丁的三种方法

在Win10电脑中用户发现更新补丁出现问题了,想通过卸载补丁来解决问题。但是,许多新手用户对于强制卸载Win10系统的更新补丁的方法不是很了解,那么下面小编就给大家介绍关于Win10电脑内强制卸载更新补丁的简单方法吧。 方法一:通过…

MongoDB系例全教程

一、系列文章目录 一、MongoDB安装教程—官方原版 二、MongoDB 使用教程(配置、管理、监控)_linux mongodb 监控 三、MongoDB 基于角色的访问控制 四、MongoDB用户管理 五、MongoDB基础知识详解 六、MongoDB—Indexs 七、MongoDB事务详解 八、MongoDB分片教程 九、Mo…

Docker的安装、基础命令与项目部署

文章目录 前言一、docker安装与MySQL部署1.Linux环境下docker的安装(1)基于CentOS7(2)基于Ubuntu 二、docker基础1.常见命令(1)快速创建一个mysql容器(MySQL得一键安装)。&#xff0…

【ubuntu】搭建lamp架构

一、准备工作 1、更新源 apt-get updateapt #就是一个管理包的工具,理解为centos中的yum update #表示让apt执行更新的操作,更新的内容为软件列表。#为什么要更新软件列表? 就时本地会隔断时间进行同步镜像站的资源包,但是我…

如何滴水不漏的学完C语言?

如何滴水不漏的学完C语言? 学习C语言需要掌握的知识点确实非常广泛。如果你觉得学校教学中所涉及的内容有所欠缺,可以有很多其他方式进行补充学习。最近很多小伙伴找我,说想要一些C语言资料,然后我根据自己从业十年经验&#xff…

GPT引发智能AI时代潮流

最近GPT概念爆火,许多行业开始竞相发展AI ,工作就业也将面临跳转,目前测试就业形势就分为了两大类,一类是测试行业如功能、性能、自动化综合性人才就业技能需求,另一类便是AI测试行业的需求普遍增长,原本由…

使用IO完成端口实现简单回显服务器

说明 使用IO完成端口实现简单回显服务器,因为是测试用的,所以代码很粗糙。 提醒 使用的是ReadFile、WriteFile来实现Overlapped IO,正式场合应该用WSARecv、WSASend,原因:来自《Windows网络编程技术》 8.2.5节 在这里…

葡萄酒中的酒精含量是多少?

当你喝完一杯加利福尼亚赤霞珠和你的朋友在一个周五的晚上出游,你不禁会注意到,这只玻璃杯能让你感觉有点不同于你前几个周末喝的意大利灰皮诺葡萄酒。出于好奇,你查看了一下ABV,发现这个数字高达14.5%!难怪&#xff0…

requires SDK version >=3.0.1 <4.0.0, version solving failed

这个很明显是FLUTTER SDK不匹配的问题,需要更新flutter SDK,最简单的办法,在flutter官网的页面直接下载最新的,然后替换之前旧版本的flutter 官网: 在 Windows 操作系统上安装和配置 Flutter 开发环境 - Flutter 中文…

C++并发编程实战——07.设计无锁的并发数据结构

文章目录 设计无锁的并发数据结构定义及意义无阻塞数据结构无锁数据结构无等待数据结构无锁结构的利弊 无锁数据结构的例子无锁线程安全栈使用风险指针检测不可回收的节点使用引用计数无锁栈上的内存模型实现一个无锁的线程安全队列 设计无锁数据结构的指导建议 设计无锁的并发…

windwos10搭建我的世界服务器,并通过内网穿透实现联机游戏Minecraft

文章目录 1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址 9. 使用固定公网地址远程联机 …

mysql双主搭建

https://www.bilibili.com/video/BV1BK4y1t7MY/?spm_id_from333.880.my_history.page.click&vd_source297c866c71fa77b161812ad631ea2c25 要到用双主,或多主,主要是考虑到这么一个场景: 如果一个应用,全球用户都要用&#x…

API接口安全设计

简介 HTTP接口是互联网各系统之间对接的重要方式之一,使用HTTP接口开发和调用都很方便,也是被大量采用的方式,它可以让不同系统之间实现数据的交换和共享。 由于HTTP接口开放在互联网上,所以我们就需要有一定的安全措施来保证接口…

LuaHttp库写的一个简单的爬虫

LuaHttp库是一个基于Lua语言的HTTP客户端库,可以用于爬取网站数据。与Python的Scrapy框架类似,LuaHttp库也可以实现网站数据的抓取,并且可以将抓取到的数据保存到数据库中。不过需要注意的是,LuaHttp库并不像Scrapy框架那样具有完…

限制LitstBox控件显示指定行数的最新数据(3/3)

实例需求:由于数据行数累加增加,控件加载的数据越来越多,每次用户都需要使用右侧滚动条拖动才能查看最新数据。 因此希望ListBox只加载最后10行数据(不含标题行),这样用户可以非常方便地选择数据&#xff…

基于python+django开发的电影链接搜索网站 - 毕业设计 - 课程设计

文章目录 源码下载地址项目介绍界面预览项目备注毕设定制,咨询 源码下载地址 点击这里下载代码 项目介绍 该项目是基于python的web类库django开发的一套web网站,给同学做的课程作业。 本人的研究方向是一项关于搜索的研究项目。在该项目中&#xff0c…

WoShop跨境电商源码:解放你的双手,批量发货轻松搞定

随着跨境电商的快速发展,越来越多的企业开始涉足这一领域。在这个过程中,如何高效地处理批量发货成为了亟待解决的问题。本文将探讨跨境电商源码支持批量发货的优势、需求分析、实现方案、技术实现、测试与维护以及总结与建议。 一、引言 在跨境电商领域…

Linux进程概念(2)

Linux进程概念(2) 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容讲解了进程的概念,PCB&am…

Python用RoboBrowser库写一个通用爬虫模版

以下是一个使下载lianjia内容的Python程序,爬虫IP服务器为duoip的8000端口。 from robobrowser import RoboBrowser# 创建一个RoboBrowser对象 browser RoboBrowser(user_agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) …

人工智能与无人驾驶:未来驾驶体验的革命性变革

人工智能与无人驾驶:未来驾驶体验的革命性变革 人工智能(AI)和无人驾驶技术的迅速发展正在改变我们的交通方式和出行体验。它们结合了先进的感知技术、智能算法和高性能计算能力,为实现自动驾驶提供了可能性。本文将探讨人工智能和…