项目空间操作

创建MaxCompute项目空间后,您需要进入项目空间才可以执行后续开发、分析、运维等一系列操作。本文为您介绍如何进入或查看项目空间,以及设置或查看项目空间Project级的属性。

项目空间操作的常用命令如下。

类型

功能

角色

操作入口

进入项目空间

进入具备访问权限的项目空间。

具备项目空间访问权限的用户

本文中的命令您需要在MaxCompute客户端执行。

查看项目空间属性

查看项目空间配置的属性信息。

项目空间Owner

设置项目空间属性

设置项目空间的属性信息。

项目空间Owner

查看项目空间账号体系

显示当前项目空间支持的账号体系信息。

项目空间Owner

增加RAM账号体系

为当前项目空间增加RAM账号体系。

项目空间Owner

删除RAM账号体系

删除当前项目空间的RAM账号体系。

项目空间Owner

注意事项

  • 项目空间非工作空间。项目空间名称获取方式:登录MaxCompute控制台,选择地域后,在项目管理页面获取MaxCompute项目名

  • MaxCompute没有提供创建和删除项目空间的命令。创建项目空间操作详情请参见创建MaxCompute项目

进入项目空间

进入指定的、具有访问权限的项目空间。进入项目空间后,可以直接在该项目空间下操作对象。

  • 命令格式

    --进入项目空间。
    USE <project_name>;
  • 参数说明

    project_name:待访问项目空间的名称。如果项目空间不存在或您未被添加至该项目空间时,返回报错。

  • 使用示例

    • 示例1:进入指定项目空间并访问项目空间下的对象。

      --当前项目空间为my_project,待访问项目空间为my_project_test。my_project_test是用户有权限访问的一个项目空间。
      odps@ my_project>USE my_project_test;
      --进入项目空间后,即可执行其他操作。例如查询my_project_test项目空间下的表test_src。
      odps@ my_project_test>SELECT * FROM test_src;

      MaxCompute自动在项目空间my_project_test中搜索表。如果表存在,返回表中的数据;如果表不存在,返回报错。

    • 示例2:跨项目访问另一项目空间下的对象,需要具备目标项目空间对象的相应操作权限,并指定项目空间名称。

      • 若您的MaxCompute未开启Schema功能,示例如下:

        --在my_project_test项目空间下访问另一项目空间my_project2的表test_src。
        odps@ my_project_test>SELECT * FROM my_project2.test_src;
      • 若您的MaxCompute已开启Schema功能,示例如下:

        --在my_project_test项目空间下访问另一项目空间my_project2下test_src,my_project2的Schema默认为Default
        odps@ my_project_test>SELECT * FROM my_project2.default.test_src;
        说明
        • 目标项目空间对象的授权操作,请参见配置项目

        • 关于Schema功能的详情,请参见Schema操作

查看项目空间属性

显示当前项目空间Project级的属性配置信息。MaxCompute也支持查看Session级的属性,详情请参见show flags

  • 命令格式

    SETPROJECT;
  • 属性说明

    项目空间的常用属性如下。

    属性名称(KEY)

    描述

    取值范围(VALUE)

    odps.sql.allow.fullscan

    设置项目空间是否允许全表扫描。全表扫描会占用大量资源,为提升处理效率,不建议开启该功能。

    • true:允许全表扫描。

    • false:禁止全表扫描。

    odps.table.lifecycle

    设置项目空间下的表是否需要配置生命周期。

    • optional:创建表时,Lifecycle子句为可选设置,如果不设置表的生命周期,则该表永久有效。

    • mandatory:Lifecycle子句为必选设置,用户必须设置表的生命周期。

    • inherit:创建表时,如果不设置表的生命周期,则该表的生命周期为odps.table.lifecycle.value的值。

    odps.table.lifecycle.value

    设置表的生命周期。单位为:天。

    1~37231,默认值为37231。

    odps.security.ip.whitelist

    设置云产品互联网络场景下可以访问项目空间的IP白名单。详情请参见管理IP白名单

    IP列表,以英文逗号(,)分隔。

    odps.security.vpc.whitelist

    指定VPC网络场景下可以访问项目空间的IP白名单。详情请参见管理IP白名单

    RegionID_VPCID[IP Address]。

    READ_TABLE_MAX_ROW

    设置SELECT语句返回的数据条数。

    1~10000,默认值为10000。

    odps.sql.type.system.odps2

    2.0新数据类型开关。2.0数据类型详情请参见2.0数据类型版本

    • true:打开

    • false:关闭

    odps.sql.hive.compatible

    Hive兼容模式开关。打开Hive兼容模式后,MaxCompute才支持Hive指定的各种语法,例如inputRecordReaderoutputRecordReaderSerde。Hive兼容数据类型详情请参见Hive兼容数据类型版本

    • true:打开

    • false:关闭

    odps.sql.decimal.odps2

    DECIMAL 2.0数据类型DECIMAL(precision,scale)开关。详情请参见2.0数据类型版本

    • true:打开

    • false:关闭

    odps.timemachine.retention.days

    设置备份数据的保留天数。详情请参见备份与恢复

    0~30,默认值为1。

    odps.instance.priority.enable

    使用包年包月计算资源项目空间的作业优先级功能开关。详情请参见作业优先级

    0~9,默认值为9。数值越小,优先级越高。

    odps.output.field.formatter

    设置SQL查询结果的动态脱敏规则。详情请参见MaxCompute数据动态脱敏

    自定义的动态脱敏规则。

    odps.sql.metering.value.max

    设置单SQL消费限制值。详情请参见消费监控告警

    无。

    odps.sql.acid.table.enable

    设置是否开启ACID机制。更多ACID信息,请参见ACID语义

    • true:打开

    • false:关闭

    odps.sql.timezone

    设置MaxCompute项目的时区。更多时区信息,请参见时区配置操作

    无。

    odps.sql.unstructured.oss.commit.mode

    设置是否开启通过OSS的分片上传功能向OSS外部表写入数据。详情请参见将数据写入OSS

    • true:打开

    • false:关闭

    odps.sql.groupby.orderby.position.alias

    设置是否开启将group byorder by中的整型常量做为SELECT的列序号处理。

    说明

    对于存量项目,如果在项目级别开启该参数,可能会对您已有的任务解析和执行操作造成影响,请确认并务必保证存量任务在此参数设置下仍可以按照原有逻辑正确执行后,再修改该参数。否则,请在Session级别设置。

    • true:打开

    • false:关闭

    odps.forbid.fetch.result.by.bearertoken

    设置是否禁止Logview的Result页签显示作业运行结果。该参数主要用于保护数据安全。

    • true:禁止显示作业运行结果

    • false:允许显示作业运行结果

    odps.cupidhistory.inprogress.remain.days

    设置运行中的Spark on MaxCompute作业运行历史记录日志的保留时间。单位为:天。

    1~7,默认值为7。

    odps.cupidhistory.remain.days

    设置Spark on MaxCompute作业运行历史记录日志的保留时间。单位为:天。

    1~3,默认值为3。

    odps.ext.oss.orc.native

    设置项目空间作业在读外部表解析ORC数据文件时,是否将原有基于Java的开源社区实现升级为基于C++的Native实现。新的实现支持处理更高版本的ORC文件,能数倍提升开源数据解析性能。

    • true:读外部表解析ORC数据文件时使用新的基于C++的Native实现。

    • false:读外部表解析ORC数据文件时使用原有基于Java的开源社区实现。

    odps.ext.parquet.native

    设置项目空间作业在读外部表解析PARQUET数据文件时,是否将原有基于Java的开源社区实现升级为基于C++的Native实现,新的实现能数倍提升开源数据解析性能。升级为新的实现后,当PARQUET小文件很多且数据列数很多时可能会导致数据源访问次数增加,创建表时可以配合with serdeproperties属性parquet.file.cache.sizeparquet.io.buffer.size参数来增加每次访问数据源缓存的数据量。

    • true:读外部表解析PARQUET数据文件时使用新的基于C++的Native实现。

    • false:读外部表解析PARQUET数据文件时使用原有基于Java的开源社区实现。

    odps.security.enabledownloadprivilege

    设置项目是否开启Download权限控制方案,开启后能够对角色或用户使用Tunnel下载表和实例的行为进行管控,提升项目数据安全性,避免出现数据泄露情况。详情请参见Download权限控制

    • true:开启Download权限控制。

    • false:关闭Download权限控制。

    odps.security.ip.whitelist.services

    设置云服务白名单。用于避免用户使用DataHub/SLS等云服务访问MaxCompute项目时需要设置IP白名单。

    格式为:service1,service2

    Service名称需提前在MaxCompute注册。

    目前常用于日志投递服务,其Service取值为AliyunLogSLRService,AliyunLogDefaultService

设置项目空间属性

设置项目空间的Project级属性。设置项目空间属性命令会存在0~5分钟的时延。命令执行成功后,请您等待5分钟后验证执行结果。MaxCompute也支持设置Session级的属性,详情请参见set

  • 命令格式

    SETPROJECT <KEY>=<VALUE>;
  • 参数说明

  • 使用示例

    设置允许在项目空间执行全表扫描操作。

    SETPROJECT odps.sql.allow.fullscan=true;

查看项目空间账号体系

显示当前项目空间支持的账号体系信息。账号体系包括ALIYUN、RAM两种。命令格式如下:

LIST accountproviders;
说明

MaxCompute项目空间默认仅能识别阿里云账号体系,无法识别RAM账号体系。

增加RAM账号体系

为当前项目空间增加RAM账号体系。命令格式如下:

ADD accountprovider ram;

删除RAM账号体系

删除当前项目空间的RAM账号体系。命令格式如下:

REMOVE accountprovider ram;