IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> day63 阿里云 datawork -> 正文阅读

[大数据]day63 阿里云 datawork


I know, i know
地球另一端有你陪我




一、数据开发 – DataWorks

1、创建表

1 从其他数据源中同步

在这里插入图片描述
MySQL 的话,本地因为没有那样的外网地址,所以需要额外购买阿里云的云数据库

2 手动创建表

在这里插入图片描述请添加图片描述
一级主题、二级主题
类似数据仓库中的命名规范,不同表拥有类似父子关系

主键
此处查询的时候并不会考虑主键,只是做一个标记,不会做约束
只会检查是否存在重复

接着右键表导入数据,记得注意首行是否是数据,对应勾选

3、业务流程

1、手拖或者右键新建能够建立新的独立节点,
节点内部可以处理不同的任务例如数据的同步,或者表或视图的建立在这里插入图片描述
2、倘若有参数,例如业务日期(当前时间 - 1)需要在参数栏中手动定义
在这里插入图片描述
3、每一个节点都可以有依赖(即上下游的箭头指向)和输出(被其他节点依赖)
在这里插入图片描述
建议手动添加依赖,有时自动添加会出错
输出的时候也可能错,会导致其他节点无法依赖到这个节点,也需要检查
头部的 root 节点,应为本质没有依赖关系,可以选择工作根节点作为上游
在这里插入图片描述

4、此处是设置定时任务
在这里插入图片描述
如果要设置的话,重跑属性是默认为空的,需要手动添加


二、运维中心

被提交的周期任务会被传至运维中心
在这里插入图片描述
1、补数据
倘若数据是按照日期进行分区,此处可以按照往期的日期,进行数据的重跑
前提条件是所有的基本数据是按照天来分区,并且数据都完整存在
本质可能就是将 bizdate 按照指定日期进行业务的再加载
在这里插入图片描述在这里插入图片描述


三、数据服务

在这里插入图片描述
配置 API 接口,需要先创建
在这里插入图片描述
在这里插入图片描述
BasePath 即 URL,用于通过路径来定位
(此处会要求开通网关服务,同一一下协议即可)

1 向导模式生成 API
在这里插入图片描述
创建 API,此处无法选择 MaxCompute,因为从速度考虑,MaxCompute 并不适用这一场景,因此需要选择其他数据源
选择参数即依据怎样的条件进行查询
在这里插入图片描述
默认是等于,可以在右侧进行修改
也可以不选择请求参数,但是为了防止一次获取过多数据
需要在下面的返回参数中打开结果的分页显示,并加上三个页面相关的参数
(总页数,一页的数量,返回页)

2 脚本模式生成 API
也允许开发之使用 sql 语句来作为返回
请求参数需要写为 ${xxx}
系统会自动识别


四、连接 MaxCompute 的另两种方法

1、odpscmd 客户端

和 cmd 控制台类似
需要在下载对应的客户端
在这里插入图片描述
解压后再 conf 文件夹中配置对应参数,帮助文档中很清楚
接着可以在 bin 中打开脚本文件,打开控制台
本质是连接 MaxCompute
特点是在查询时。,会稍稍变快,尤其是在查询元数据时

2、MaxCompute Studio

需要在 IDEA 中下载对应插件,名称即为 MaxCompute Studio
接着就可以建立新的 MaxCompute Studio 项目(project)
首先依然需要连接
在这里插入图片描述
此处可以直接读取 cmd 客户端中的配置文件
连接好后,此处可以看到一些表的元数据等等
并且可以创建 MaxCompute SQL 脚本
在这里插入图片描述
内部功能和网页版的相同,可以写各种 SQL 语句


3、MaxCompute Java

创建项目时会发现还要另一个项目,MaxCompute Java
建立后,会发现内部一样有一个 pom 的插件配置文件,src 等等,类似 maven
在这里插入图片描述
之后可以向下选择不同的文件,可以满足绝大部分需求了
在这里插入图片描述
比如这里创建一个 UDF(自定义函数,一对一)
创建后会发现大框架已经被建立好,只需要按需修改对应的输入输入即可
在这里插入图片描述
写完后不需要手动打包上传,加载注册,只需要右键一键上传,写个函数名
在这里插入图片描述


五、行列转换(部分)

建表

CREATE TABLE IF NOT EXISTS test1
(
    id   STRING,
    col1 STRING,
    col2 STRING,
    col3 STRING,
    col4 STRING,
    col5 STRING,
    col6 STRING
) ;

数据

a,1,2,3,4,5,6
b,11,12,13,14,15,16
c,21,22,23,24,25,26
d,31,32,33,34,35,36

1 explode

能够将 array map struct 结构进行展开
但是只能存在展开的这一列,不能添加其他列

select 
    explode(ARRAY(col1,col2,col3,col4,col5,col6))
from test1

在这里插入图片描述

2 posexplode

能够在原本 explode 的基础上再添加一列索引,可以修改
但是依然只能存在展开的这一列,不能添加其他列

select  concat(t1.indx * 2,'点') as (hour)
        ,t1.value 
from(
 select 
     posexplode(ARRAY(col1,col2,col3,col4,col5,col6)) as(indx,value) 
 from test1
) t1;

在这里插入图片描述

3 lateral view

侧视图,类似一种 join,一个匹配一组,可以在原表的基础上匹配一个 explode

select  id
        ,concat(t1.indx * 2,'点') as (hour)
        ,value
from test1 
lateral view 
   posexplode(ARRAY(col1,col2,col3,col4,col5,col6)) t1 as indx,value;

在这里插入图片描述

4 MaxCompute 自定义函数

新建项目
在这里插入图片描述
框架已经完全写好,只需要编写:
1)注解中的输入输出类型
2)process 中的方法体

import com.aliyun.odps.udf.ExecutionContext;
import com.aliyun.odps.udf.UDFException;
import com.aliyun.odps.udf.UDTF;
import com.aliyun.odps.udf.annotation.Resolve;

// TODO define input and output types, e.g. 
// "string,string->string,bigint".
// 输入和输出的类型,左边是输入,右边是输出,*指任意个参数
@Resolve({"*->string,bigint"})
public class hangliechange extends UDTF {

    @Override
    public void setup(ExecutionContext ctx) throws UDFException {

    }
	
	// 1,2,3,4,5,6
    @Override
    public void process(Object[] args) throws UDFException {
        // TODO
        int i = 0;
        for (Object arg : args) {

            String hour = i + "时";
            long value = Long.parseLong(arg.toString());
            i += 2;

            // 不同于 hive,此处的forward可以返回多个参数
            forward(hour,value);
        }

    }

    @Override
    public void close() throws UDFException {

    }

}

一键提交
在这里插入图片描述
—— 亦可打包上传
在这里插入图片描述在这里插入图片描述
提交
在这里插入图片描述
新建函数,类似注册,依然要保存和提交
在这里插入图片描述
正常使用

select  id
        -- 注意此处不再需要concat了,函数知己返回了
        ,indx as hour
        ,value
from test1 
lateral view 
    HANGLIECHANGE(col1,col2,col3,col4,col5,col6) t1 as indx,value;

5 Function Stutio 自定义函数

类似 MaxCompute Java,先打开菜单
在这里插入图片描述
新建代码工程
在这里插入图片描述
新建项目
在这里插入图片描述
内部和 Java 完全相同,粘贴一下

再提交,就可以直接使用
在这里插入图片描述


零碎

hive 中,选择表中字段的类型,并不会将数据进行格式化
,而是怎么来怎么进去(表存储和结构无关)

带参数 ${} 的记得选择高级运行,否则参数不会被识别

运维中心中,需要点选上游节点 root,才能往下展开

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:49:12  更:2021-12-23 15:51:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:01:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码