odps创建周期任务及字符串与日期函数用法

news2025/4/8 18:45:42

odps简介

PB/EB级数据的离线存储(存储资源)及逻辑处理(计算资源),集群可用性全托管。

MaxCompute(odps)是适用于数据分析场景的企业级SaaS(Software as a Service)模式云数据仓库,以Serverless架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您可以经济并高效地分析处理海量数据。

随着数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(TB、PB、EB)级别。MaxCompute提供离线和流式数据的接入,支持大规模数据计算及查询加速能力,为您提供面向多种计算场景的数据仓库解决方案及分析建模服务。MaxCompute还为您提供完善的数据导入方案以及多种经典的分布式计算模型,您可以不必关心分布式计算和维护细节,便可轻松完成大数据分析。

MaxCompute适用于100 GB以上规模的存储及计算需求,最大可达EB级别,并且MaxCompute已经在阿里巴巴集团内部得到大规模应用。MaxCompute适用于大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。

  • odps 架构如下,更多详情,参见官网
  • https://help.aliyun.com/document_detail/27800.html
    在这里插入图片描述
    在这里插入图片描述

创建周期任务(分区表)

周期任务,每天或每小时运行任务,将数据存储到天级或小时分区内。

CREATE TABLE IF NOT EXISTS student_bill_1d
(
	student_id    STRING COMMIT 'student_id '
   ,product_code STRING COMMIT '消费产品code'
   ,bill_date    STRING COMMIT '结算日期(yyyy-mm-dd)'
   ,period       STRING COMMIT '周期月份'  
   ,cost         STRING COMMIT '结算金额'
)
COMMIT '学生消费产品账单天级'
PARTITIONED BY
(
	ds 		    STRING  COMMIT '按天分区(yyyymmdd)'
)

LIFECYCLE  3650     
;

ALTER TABLE student_bill_1d DROP iF EXISTS PARTITION (ds = '${bizdate}')
;

INSERT OVERWRITE TABLE student_bill_1d PARTITION (ds = '${bizdate}')

SELECT 
	student_id
	,product_code
	,SPLIT_PART(bill_date, ' ', 1, 1) as bill_date     -- 原 bill_date 字段精度到秒 2222-02-02 02:02:02
	,period
	,SUM(cost) as cost
FROM student.student_bill_base
WHERE ds=MAX_PT("student.student_bill_base")
GROUP BY
	student_id
	,product_code
	,bill_date
	,period
;

函数用法

1、查询的结果作为输入查询

odps将已查询的结果作为参数查询,只需将 查询语句 字符化,即可。

SELECT TO_CHAR('2222-02-22', 'yyyy-mm-dd');      -- 2222-02-22
SELECT TO_CHAR(TO_DATE('2222-02-22','yyyy-mm-dd'), 'yyyymm');   -- 222202
SELECT TO_CHAR ( TO_DATE (( 
				SELECT DISTINCT period 
				FROM db_test.student 
				WHERE ds = MAX_PT ( "db_test.student" )
				ORDER BY period DESC
				limit 1
				), 'yyyymm'), 'yyyymm');   
-- 222202

2、日期函数

1)获取当前时间

select GETDATE();    -- 2202-12-12 12:12:12

2)日期转字符串

select TO_CHAR(GETDATE(), "yyyymmdd");       -- 22021212

3)计算 指定日期段内的天数

select DATEDIFF("2023-01-01", "2022-01-01");      -- 365

4)获取日期的下一天

set odps.sql.type.system.odps2=true;
select date_add(date '2022-12-12', 1);     --  2022-12-13 

5)获取日期的前一天

set odps.sql.type.system.odps2=true;
select date_add(date '2022-12-12', -1);     --  2022-12-11

3、字符串函数

1)字符串切片

select SPLIT_PART('2222-12-12 12:12:12', ' ', 1, 1);     -- '2222-12-12'

2)字符串拼接

select CONCAT('2222-12-12', ' '.'00:00:00');      -- 2222-12-12 00:00:00

3)字符串替换

select REPLACE('2222-12-12', '-', '');            -- 20221212

4)keyvalue取值

-- 拿到 指定 key 的 val值
select KEYVALUE("k1:v1;k2:v2;k3:v3", ";", ":", "k1");     -- v1

5)字符串转日期

select TO_DATE('2022-12-12', 'yyyy-mm-dd');    -- 2022-12-12 

6)字符串大小写

-- 转小写
select TOLOWER('QWER');      -- qwer 

-- 转大写
select TOUPPER('qwer');      -- QWER

更多函数:https://help.aliyun.com/document_detail/48973.html

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

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

相关文章

[附源码]Python计算机毕业设计SSM基于的民宿租赁系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

STS安装反编译插操作

第一步:下载net.sf.jadclipse_3.3.0.ja离线插件 首先​​​​​​下载离线插件 JadClipse - Eclipse plugin download | SourceForge.netDownload JadClipse - Eclipse plugin for free. Jad Java decompiler plugin for Eclipse IDE.https://sourceforge.net/proj…

Java自定义注解实现

一、注解的定义和作用 1、定义   注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&…

51的原理图和pcb的注意事项及出现的问题与解决办法

本次总结基于立创eda的注意事项总结,如有疑问,欢迎交流。 1.焊盘设成地网络!!!! 2.pcb的基本步骤是布局---布线---泪滴---铺铜---缝合孔,记得泪滴和缝合孔!! 3.元器件的封装要选择贴片的 这样…

认识阻塞队列

认识阻塞队列一、相关概念1.1 阻塞队列是什么1.2 生产者消费者模型二、标准库中的阻塞队列2.1 使用2.2 生产者消费者模型实现三、实现阻塞队列3.1 循环队列3.2 实现的细节3.3 代码一、相关概念 1.1 阻塞队列是什么 阻塞队列是一种特殊的队列,也遵守 “先进先出” …

CENTOS上的网络安全工具(十六)容器特色的Linux操作

这一篇,我们继续在Docker上折腾。之前我们已经展示了如何在容器上搭建安全产品的部署环境,这里我们需要更进一步,讨论如何在容器上搭建开发与调试环境。这是学习安全产品并且自己构建安全产品的基础步骤。 〇、精简系统上的操作技巧 使用Dock…

【LeetCode】直线上最多的点数 [H](几何)

149. 直线上最多的点数 - 力扣(LeetCode) 一、题目 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points [[1,1],[2,2],[3,3]] 输出&a…

【数据结构与算法分析】0基础带你学数据结构与算法分析11--AVL树

目录 二分查找 AVL 树 AVL 的平衡因子 AVL 的插入操作 单旋转 双旋转 对 AVL 树插入的总结 AVL 的移除操作 如果给定一个序列,你将如何在这个序列中查找一个给定元素 target,当找到时返回该元素的迭代器,否则返回末尾迭代器。首先排除…

python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库

一、技术点 利用flask 搭建简易的http服务,实现服务端文件上传;利用Blueprint将不同业务拆分至不同文件;利用bootstrap-fileinput组件构建页面;利用flask_cors配置允许跨域请求;利用sqlalchemy实现数据库连接;利用pandas实现Excel读取、清洗、入库;二、具体实现 2.1 目…

基于intel i3/i5/i7 视觉控制器 4个POE GigE

XM-5143 是针对机器视觉行业GigE相机应用场景的一款高性能工业计算机,可使用Intel 6/7代 65W 高性能CPU应对快速检测。4路独立Intel网络芯片,并支持POE供电,可减少布线。并配有快速隔离可编程DI/O芯片. XM-5143的规格产品类型机器视觉控制器防…

分布式事务都有哪些,到底有什么用,在项目当中该用哪个?

分布式的CAP理论应该是人尽皆知了,它描述了一致性(C)、可用性(A)、分区容错性(P)的一系列权衡。很多时候,我们要在一致性和可用性之间权衡,而分布式事务,就是…

20.EC实战 笔记本电脑的休眠唤醒是如何实现的

文章目录 1. EC什么时候(收到什么命令)之后来执行S0-->S3下电时序?2. S3(休眠)状态应该保留哪些电源?3. 控制笔记本进入休眠状态的三种方式总结:前言: 最近很多朋友在咨询休眠唤醒的问题,在笔记本中,休眠唤醒是一个基本功能,如果连休眠唤醒都没有,就失去了笔记本…

Volatile内存语义以及如何正确使用

目录 语义描述 重排序规则 JMM如何实现volatile语义 如何正确使用volatile变量 语义描述 写语义:当写一个volatile变量时候,JMM会把该线程对应的本地内存的共享变量直接刷新到主内存中。 读语义:当读一个volatile变量的时候。JMM会把该线…

分布式锁主动续期的入门级实现-自省 | 简约而不简单

一、背景 如果某个客户端获得锁之后处理时间超过最大约定时间,或者持锁期间内发生了故障导致无法主动释放锁,其持有的锁也能够被其他机制正确释放,并保证后续其它客户端也能加锁,整个处理流程继续正常执行。 简单解释一下&#xf…

LLeetCode题目笔记——6258. 数组中最长的方波

文章目录题目描述题目难度——中等方法一:一次遍历哈希代码Python暴力代码Python一次遍历总结题目描述 这是这周周赛的第二题,本来想是不是双指针的解法,但想半天没想出来咋用双指针,就想到了哈希。 给你一个整数数组 nums 。如果…

PostgreSQL数据库TPCC测试,Banchmarksql 5.0部署详解

1 BenchmarkSQL安装部署 1.1 部署Java环境 首先使用java - version查看是否已有 Java环境(下图是有的情况) 需要注意的是,虚拟机中默认的JDK貌似是不行的哦,请参考下面链接中的博文,教你怎么卸载重装 1.1.1 若没有J…

Python学习基础笔记四十四——模块1

1、看一个例子: 创建一个demo.py文件: print(in demo.py)def hello():print(in hello function) 然后我们在另外一个文件中import这个demo文件: import demo# 调用demo.py文件中的hello()函数 demo.hello() 注意,demo后面没有…

软件安全测试-BurpSuite使用详解

1.BurpSuite简介 Burp Suite 是用于攻击web 应用程序的集成平台,它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。 它主要用来做安全性渗透测…

我将 9 个 ChatGPT 账号接入微信,我现在整个人都麻了...

大家好,我是米开朗基杨。最近大家都被 ChatGPT 刷屏了,这家伙真是上天入地无所不能,不管什么问题都能解答,而且答案的质量非常高,完全不像机器人。于是乎我冒出个想法:如果把 ChatGPT 接入微信是什么感觉&a…

二维码介绍

二维码介绍 二维码(2-dimensional bar code、二维条码)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1…