本文向您介绍进入项目空间、设置空间属性(权限和白名单功能等)的命令操作。

进入项目空间

命令格式
use <project_name>;
功能说明
  • 进入指定的项目空间。进入该空间后可以直接操作该项目空间下的所有对象。用户需要有访问该项目空间的权限。
  • 项目空间不存在或当前用户不属于此项目空间,则返回异常。
示例
  • 进入指定项目空间。
    --进入项目空间my_project_test。my_project_test是用户有权限访问的一个Project。
    odps @ my_project>use my_project_test;  
  • 访问该项目空间下的对象。
    --查询my_project_test项目空间下的表test_src。
    odps @ my_project_test>SELECT * FROM test_src;
    MaxCompute会自动搜索项目空间my_project_test下的表。如果此表存在,则返回表中的数据;如果此表不存在,则报异常退出。
  • 访问另一项目空间下的对象,需要指定项目空间名。
    --在my_project_test空间下访问另一项目空间my_project2下的表test_src。
    odps @ my_project_test>select * from my_project2.test_src;
说明
  • 以上示例在客户端中运行。所有的MaxCompute命令关键字、项目空间名、表名、列名大小写不敏感。
  • 创建项目空间即创建MaxCompute项目。
  • MaxCompute没有提供创建及删除项目空间的命令。您可以通过管理控制台对各自的项目空间完成更多的操作,详情请参见项目空间列表

查询项目空间

命令格式
list projects;
说明 odpscmd 0.30.2版本开始支持该命令。

功能说明

用于主账号查看其创建的项目列表。

设置项目空间属性

命令格式
setproject <KEY>=<VALUE>;
功能说明
  • 指定<KEY>=<VALUE>时,设置Project属性。 例如,如下命令设置允许全表扫描的方法。
    setproject odps.sql.allow.fullscan=true;
    说明 设置Project属性命令会有0-5分钟的延迟,因此命令执行成功后,请等待5分钟后验证效果。
  • 当不指定<KEY>=<VALUE>时,显示当前Project的属性配置。
    --显示setproject设置的参数。
    setproject; 
Project属性的详细说明如下。
属性名称 设置权限 属性描述 取值范围
odps.sql.allow.fullscan Project Owner 项目空间是否允许全表扫描。 true(允许)/false(禁止)
odps.table.drop.ignorenonexistent 所有用户 当删除不存在的表时,是否报错。 true(不报错)/false(报错)
odps.table.lifecycle Project Owner
  • optional:创建表时,Lifecycle子句为可选设置,如果用户不设置生命周期,则该表永久有效。
  • mandatory:Lifecycle子句为必选设置,用户必须设置生命周期。
  • inherit:如果用户不设置生命周期,则该表的生命周期为odps.table.lifecycle.value的值。
optional/mandatory/inherit
odps.table.lifecycle.value Project Owner 默认的生命周期值。单位为:天。 1~37231(默认)
odps.security.ip.whitelist Project Owner 公网下指定访问Project的IP白名单。 IP列表,逗号分隔。
odps.security.vpc.whitelist Project Owner VPC网络下指定访问Project的IP白名单。 Region_ID、VPC_ID、IP列表,逗号分隔。
odps.instance.remain.days Project Owner Instance信息保留天数。 3~30
READ_TABLE_MAX_ROW Project Owner SELECT语句返回给客户端的数据条数。 1~10000
odps.sql.type.system.odps2 Project Owner 打开2.0新类型。 true(允许)/false(禁止)
odps.sql.hive.compatible Project Owner 打开Hive兼容模式后,MaxCompute才可以支持Hive指定的各种语法,例如inputRecordReader、outputRecordReader、Serde等。 true(允许)/false(禁止)
说明 打开新数据类型的主要影响:
  • 某些隐式类型转换会被禁用, 包括STRING->BIGINT、STRING->DATETIME、 DOUBLE->BIGNIT、DECIMAL->DOUBLE、DECIMAL->BIGINT都是有精度损失或者报错的风险。 但是可以用cast来做强制转换。
  • 常量类型会变化。单独一个整型常量,例如123,在旧数据类型下是BIGINT类型,在新数据类型下是INT类型。
  • UDF解析结果可能变化。例如,UDF包含BIGINT和INT两个重载,旧数据类型下为BIGINT的重载,而新数据类型下可能为INT的重载。

设置IP白名单

MaxCompute支持公网和VPC网络下Project级别的IP白名单。odps.security.ip.whitelist为公网下IP白名单参数,odps.security.vpc.whitelist为VPC网络下白名单参数。

命令格式
  • 设置公网下IP白名单
    setproject odps.security.ip.whitelist= IP Address
  • 设置VPC网络下IP白名单
    setproject odps.security.vpc.whitelist= RegionID_VPCID[IP address]
功能说明
  • 设置IP白名单后,只有白名单列表中的IP(客户端或者SDK所在的出口IP)能够访问这个Project。
  • 设置IP白名单后,您需要等待五分钟后才会生效。
说明 如果您误操作,将自己屏蔽,请通过提工单向阿里云技术支持寻求帮助。
参数说明
  • IP Address:IP地址。VPC网络下指VPC网络内网地址。
    白名单中IP列表的表示形式有以下三种,目前已支持IPV6格式。
    • 单纯IP:例如101.132.236.134、FE80:0202:B3FF:FE1E:8329。
    • 子网掩码:例如100.116.0.0/16、FE80:0101:4567:F456:0202:B3FF:1111:1111/126。
    • 网段:例如101.132.236.134-101.132.236.144、FE80:0101:4567:F456:0202:B3FF:FE1E:8330-FE80:0101:4567:F456:0202:B3FF:FE1E:8331。
    以上三种形式可以写在同一个命令中,用逗号分割。
  • ReigonID:VPC网络所在的区域ID号,详细请参见下表。
    Region Region ID
    张北 cn-zhangjiakou
    北京 cn-beijing
    深圳 cn-shenzhen
    成都 cn-chengdu
    上海 cn-shanghai
    杭州 cn-hangzhou
    上海中心 cn
  • VPCID:VPC网络ID号。

    VPCID的查看以及完整示例,请参见设置IP白名单

示例
  • 使用命令行工具设置公网下IP白名单。
    setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;
  • 使用命令行工具设置VPC网络下IP白名单。此例中RegionID分别为cn-beijing和cn-chengdu,对应的VPCID分别为154286和461230。
    setproject odps.security.vpc.whitelist=cn-beijing_154286[192.168.10.102,192.168.0.10],cn-chengdu_461230[172.16.1.100,172.16.30.200];
  • IP白名单清空后,MaxCompute会认为Project关闭了白名单功能。
    --关闭公网下IP白名单。
    setproject odps.security.ip.whitelist=;
    --关闭VPC网络下IP白名单。
    setproject odps.security.vpc.whitelist=;