MaxCompute-批量导出项目空间的建表语句(DDL)

MaxCompute-批量导出项目空间的建表语句(DDL)

项目背景

最近需要做项目空间的数据备份,包括表结构(建表语句),以便在系统出现问题时,或者数据丢失时进行恢复。

所遇问题

前面我介绍过MaxCompute的备份和恢复方案,但是关于导出建表语句,咨询了很多人都不知道如何批量导出。大部分人给我的答复是,通过desc tablename可以查看建表语句,这个我当然知道。在dataworks的“数据地图”中查看某个表时,进入“明细信息”>“字段信息”>“字段信息”页面,点击“生成DDL”可以看到建表语句。咨询了阿里的人,他们反馈这里是根据元仓表m_table、m_column等表临时生成的DDL。后来自己查询资料,终于发现了批量导出项目空间的建表语句的方法。下面分享给大家。

export批量导出建表语句

1、下载MaxCompute客户端安装包。

odpscmd_public.zip

2、将MaxCompute客户端安装包上传到ECS服务器上。

3、解压服务器上的安装包odpscmd_public.zip。

unzip   odpscmd_public.zip 

4、进入conf文件夹,配置odps_config.ini文件。

编辑如下相关信息。

project_name=my_project 
access_id=******************* 
access_key=********************* 
end_point= <MaxCompute服务地址>

说明:
(1)access_id和access_key是用户的云账号信息。其中,access_id对应AccessKey ID,access_key对应AccessKey Secret。
(2)project_name=my_project的作用是指定您想进入的项目空间。一旦配置此项,每次登录客户端,将会默认进入到该项目空间。如果不配置, 登录客户端后,必须使用 use project_name 命令进入项目空间。
(3)end_point需要配置成MaxCompute提供给用户的服务地址。针对不同的用户,服务地址也不同。

5、运行MaxCompute客户端

在系统的命令行执行窗口,进入MaxCompute客户端安装路径下的bin目录,执行sh odpscmd,即可启动MaxCompute客户端。

返回如下信息,表明已成功连接MaxCompute项目。

MaxCompute-批量导出项目空间的建表语句(DDL)_第1张图片

6、通过export命令导出项目空间的建表语句

export table  <tablename> ;
export <projectname>  <local_path>  [-rftpd] ;

说明:-r   #表示resource,项目空间中的资源,比如Jar包。
     -f   #表示function,项目空间中的函数DDL
     -t   #表示table, 项目空间中表的DDL
     -p   #表示partition,项目空间中添加删除分区的DDL
     -d   #表示drop,项目空间中删除表的DDL

执行下图的命令后会在当前路径生成”smoke”文件夹,里边会有下载下来的数据字典,resource等.

MaxCompute-批量导出项目空间的建表语句(DDL)_第2张图片

导出完成后,可以看到当前目录中新生成了一个“smoke”的文件夹。

进去查看下,project_odps_sqls.dump中包含项目空间的所有建表语句。

MaxCompute-批量导出项目空间的建表语句(DDL)_第3张图片

你可能感兴趣的:(dataworks,odps,服务器,linux)