MaxCompute 客户端 odpscmd 使用说明 | 学习笔记

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习 MaxCompute 客户端 odpscmd 使用说明

开发者学堂课程【SaaS  模式云数据仓库系列课程 —— 2021数仓必修课MaxCompute  客户端  odpscmd  使用说明】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/55/detail/1036


MaxCompute  客户端  odpscmd  使用说明


内容简介:

1.odpscmd  在  MaxCompute  生态中的定位

2.快速开始:一个完整简单的小例子

3.客户端提供的能力框架

4.客户端重点场景说明

5.容易碰到的问题

1.odpscmd  在  MaxCompute  生态中的定位

命令行工具在  MaxCompute  中的位置

image.png

odpscmd  是命令行工具的名称,在整个  MaxCompute  是处于最上端的,在MaxCompute  中是逐渐往上支撑的,真正暴露给用户的其实是有一套 API,API  是最核心的一些接口,不管是  JAVA  还是 SDK  也是调用 API  的,实际上命令行工具是对  MaxCompute  开发的 API  做的一些深度的包装,通过一个工具的形式在客户端以命令的方式提供作业,这些作业再通过接口的方式进行集群并进行相关的管理和开发使用。

在过程中可能会遇到的问题,在网站推的比较多的是  MaxCompute  以及DataWorks  的组合,因为在操作使用  MaxCompute  的需要再  DataWorks 做一个开通,而实际上  MaxCompute  有自身的生态工具包含了命令行工具,odpscmd 、以及基 于  Java idea  开发环境的插件  studio。

DataWorks  也是一个独立的产品,它实际上也是通过调用  MySQL  底层的  Restful API ,把在  B/S  端中所做的用户管理,用户开发提交,运维的集成过去,满足一站式仓库的解决方案,在这主要强调  MySQL  和  B/S  段的集成关系。

Odpscmd 实际上是作为命令行工具,很像 PostgreSQL  数据库,但是一个黑屏的操作管理。


2.快速开始:一个完整简单的小例子

模拟常见数据处理各种环节的例子:创建项目、瞎下载客户端、配置连接、创建用户并赋权、建表、上传数据、数据加工处理、作业查看、数据消费。

大数据加工处理的环节:数据的准备,数据接入,数据加工,数据消费。

image.png

1、下载与配置安装

image.png

先观看目录,odpscmd.public  是实际下载解压后的一个包,解压之后打开,在连接之前进入  cof  目录,找到  odps_config.ini  的配置文件。

启动客户端,在  eclipse 环境中,把 opdscmd  加入  path  环境中去,到决定路径去敲  cmd  ,这时会读取刚刚配置好的文件,项目以及所录入的  key  信息进行认证,这就可以连接到  project,能够敲击类似 show tables  的命令,可以看到数据仓库中已经提前进行了数据的建模,建的表。今天主要是对建立的表  WEBsite (是一张分区表)进行一个演示。

2、数据环境准备

image.png

快速开始的例子:

通过  DataX  这种开源工具来执行一个命令,将生成的业务表通过任务插入到旧的数据表。

数据同步完成后,可以简单的检索一下这张表,数据可以通过一些同步工具Dataworks  或是  DataX  进行数据同步,同步到环境当中,通过cmd去手工写一些作业,然后进行数据加工处理。若是在遇到的作业较长的时候,可能会想查看作业运行情况,而  cmd  也是提供作业监控的命令,show p可以检索出全量历史作业,作业会有 instance id  ,每个  instance  是作业提交的实例,可以查看作业的基本信息、状况,同时在事后也能检索到作业的  log view。

Logview  是一种基于  web  的一种监控诊断的一种工具,该工具在后期还会有专门的介绍,在这里主要是说  odpscmd  主要是提供一种作业的提交、作业事后的查看、对指定作业详情查看的能力。


3、数据加工处理示例

数据加工脚本

查看任务

数据下载消费

image.png

数据在被处理加工之后会有很多简单处理的场景,在这主要是以  odpscmd  中集成的数据下载工具—— tunnel,对结果进行数据下载,再通过 cl  或是  ask  工具进行分析。

执行  tunnel download  后它会自动下载到本地文件中,找到刚刚文件目录查看对应的文件是否成功,以上就是通过  web  的名称做分组聚合的一个结果。

它所能具备完成以下的能力:包括对项目空间的管理,表/视图/分区,数据库中的资源、函数,一些实例,提供数据通道进行数据的上传、下载,同时对用户的安全与权限提供相关命令以及其他的操作。

操作和管理对象

image.png

首先是对项目的空间管理,通过  use  可以在多个项目中快速切换项目空间。

项目空间相关操作

项目空间是  MaxCompute  的基本组织单元,是进行多用户隔离和访问控制的主要边界。

(1)自由切换进入具备访问权限的项目空间

(2)进入项目空间后可以直接操作项目空间下的对象,包括:

表、资源、函数等。

image.png

表操作管理

其中的命令可以在  odpscmd  中轻松找到,包括表的创建、删除、修改,例如想修改表的列名分区,可以用  alter;  非分区的可以选择  truncate  进行修改在这给出了跟表相关的命令以及帮助问答。

image.png

视图及分区操作, view  通过把一些复杂进行二次封装更容易对外去暴露,对view提供创建、 drop 、查看的操作;而 partition  可以查出表名的分区数量、名称,也可以对其修改、重命名。

image.png

资源与函数相关操作

很多深度用户会发现在处理自身业务时往往会使用  udf  去做复杂的运算,这时候需要用户自定义的去上传一个包,这些包对  于  udf 来说就叫  resource,resource  提供的命令就是上传一个自定义文件等等,也可以查看资源数量、删除资源。

image.png

实例相关操作

在客户端提交的作业,但记不住  id,可以通过一些时间的物理限制来进行作业列表的获取,在获取  instance  列表之后,可以用  wait  的来查询详情


image.pngTunnel  相关操作

Tunnel 能够进行数据的上传下载,很多开发者会在 Linux 环境中通过  Tunnel  进行数据的同步,在生产环境中,对数据重传的要求很高需要提供断点机制

image.png

安全及权限相关操作:


image.png角色相关权限管理

通过  role  在数据库中创建角色,为角色赋权把某一个角色加入到其中去操作管理,同时也能查看  listrole  有什么角色。

image.png

用户相关权限管理:将用户加入到项目中去,通过项目获取用户对应的权限,能够对用户进行添加、修改、删除、移除、对用户权限的管理。

项目空间的数据保护:可以设计权限对项目空间进行保护。

image.png

权限查看:通过命令行方式进行查看具体用户的权限配置

image.png

其他操作:  MaxComputer console  还提供一些其他丰富的命令。

image.png




4.客户端重点场景说明

场景:通过  shell  脚本调用  tunnel  命令进行文件上下传

基础上传方式

文本命令

使用分区表上传

Odps  下载数据

image.png

场景:调试  odpscmd  命令

在 Shell  脚本中,如何执行  MaxCompute  命令?

crontable  时执行  SQL。

A:  MaxCompute  命合支持-f参数,可在脚本或其它程序中直接以  odps-f<  文件路径>的方式支持  MaxCompute  命令。

odpscmd-fxx. sql>>path/to/odpscmd. log 2>&1

动态参数:目前不支持传入变量。有个变通的方式:在cmd. sh脚本文件中,动

态构造  MaxCompute  的执行语句。

B:可以用  -e  直接运行语句

任务执行的输出记录下来,后续出了问题可以到日志文件里获取   odpscmd-fxx. sql>>path/to/odpscmd. log 2>&1。

场景:运行数据查询/数据加工作业  UDF  

配置环境安装配置环境,开发并使用本地模式测试  UDF2.   打成 Jar  包 将开发好的UDF导出 成Jar  包

3. 注册  MaxCompue  资源数据开发上新建资源上传 jar  包,注册成 MaxCompute资源

4.创建函数数据开发上新建函数并关联已上传  MaxCompute  资源

5.  在  SQL  中试用数据开发上新建  SQL  脚本测试使用自定义 函数  Java  编程环境 。

1.准备测试的数据环境

create table udf _ demo(price bigint);

insert into udf-demo values(8958355);

insert into udf _ demo values(123566677);

2.通过  Intelli JIDEA  编写和上传  UDF  到  maxcompute  项目

add jar dataly resourceslmapeduce-examples. jar-f;

3.通过命合行创建   function create function Ten Thousand Number as com/allyun,odops. Ten Thousand Number Help using "TenThousandNumberHelp. jar;

4.测试验证  UDF  功能

Select TenThousandNumber(price) from udf demo:

image.png

场景:运行数据查询/

step0:编写并打包  MR  程序

step1:新建数据表

step2:上传数据

step3:上传本地MRJar包

step4:获取结果

数据加工作业 MR  :

1.写  MR  代码并打包

2.应用所需数据的准备

·创建测试输入输出表CREATETABLEwcjn(keySTRING,value STRING);CREATETABLE wc out(key STRING,cntBIGINT);

·插入测试数据insert into table wc _ in select'238',val 238' from(select count(*)

from wc. in)a;

3.添加  jar  到  project  资源

addjar/home/user/mr _ example,jar

4.运行wordCount

jar-resourcesmr _ example,jar-classpath

/home/quning/mr=example,jar com. aliyun,example. Word Count

wc _ in wc _ out;

5.查看结果

select*from wc _ out;

image.png


5.常见问题

问题:动态参数传入?

回答:通过  shell  方式变相实现

问题:手工抗行  odpscred  命令正常,通过  shell  脚本调用时报错?

回答:检查  shel  脚本下有没有设置  JAVA  的环境变量.   JAVA.HOME,PATH。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
6月前
|
SQL 分布式计算 大数据
Python+大数据学习笔记(一)
Python+大数据学习笔记(一)
73 0
|
6月前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
183 0
|
6月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之在使用odpscmd上传文件时遇到了最后一行列数不对导致上传失败的问题,如何解决
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之客户端如何设置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
MaxCompute产品使用合集之客户端如何设置
|
5月前
|
分布式计算 大数据 Java
MaxCompute产品使用合集之在datawoks的datastudio和odpscmd里执行时间没有问题,但是用jdbc连接大数据计算MaxCompute获取getdate()时间就不对,该怎么办
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之spark客户端执行时,报错,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如何使用MaxCompute SQL客户端删除分区数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之我需要在MaxCompute客户端添加Python第三方包,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
54 1
|
6月前
|
关系型数据库 MySQL 大数据
大数据开发工程师基本功修炼之Linux学习笔记(四)
大数据开发工程师基本功修炼之Linux学习笔记(四)
135 1