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

进入项目空间

命令格式如下:
use <project_name>;
行为说明如下:
  • 进入指定的项目空间。进入该空间后可以直接操作该项目空间下的所有对象。
  • 项目空间不存在或当前用户不在此项目空间中,则异常返回。
示例如下:
odps@ my_project>use my_project;   --my_project是用户有权限访问的一个project
说明 以上示例在客户端中运行。所有的 MaxCompute 命令关键字、项目空间名、表名、列名大小写不敏感。
成功运行命令后,您即可直接访问该项目空间下的对象。假设my_project项目空间下有表test_src,您运行如下命令:
odps @ my_project>select * from test_src;
MaxCompute便会自动搜索项目空间my_project下的表。如果存在此表,返回表中的数据,如果此表不存在,则报异常退出。如果您在my_project下想要访问另一项目空间my_project2下的表test_src,则需要指定项目空间名,如下所示:
odps @ my_project>select * from my_project2.test_src;

此时返回my_project2项目空间下的数据结果,而不是my_project下的test_src表数据。

MaxCompute没有提供创建及删除项目空间的命令。您可以通过管理控制台对各自的项目空间完成更多的配置及操作,详情请参见项目管理

SetProject

命令格式如下:
setproject <KEY>=<VALUE>;

行为说明如下:

  • 您可以使用setproject命令设置Project属性。
    例如,以下示例是设置允许全表扫描的方法。
    setproject odps.sql.allow.fullscan = true;
  • 当不指定<KEY>=<VALUE>时,显示当前Project的属性配置。命令格式如下:
    setproject; --显示setproject设置的参数
Project属性的详细说明如下:
属性名称 设置权限 属性描述 取值范围
odps.sql.allow.fullscan ProjectOwner 项目是否允许全表扫描 true(允许)/false(禁止)
odps.table.drop.ignorenonexistent 所有用户 当删除不存在的表时,是否报错。true时不报错 true(不报错)/false
odps.security.ip.whitelist ProjectOwner 指定访问Project的IP白名单 ip列表,逗号分隔
odps.instance.remain.days ProjectOwner Instance信息保留时间 3 ~ 30
READ_TABLE_MAX_ROW ProjectOwner Select语句返回给客户端的数据条数 1~10000
odps.sql.type.system.odps2 ProjectOwner 打开2.0新类型 true(允许)/false(禁止)
odps.sql.hive.compatible ProjectOwner 打开 hive兼容模式 true(允许)/false(禁止)
说明 打开新类型的主要影响:
  • 某些隐式类型转换会被禁用, 包括string -> bigint,  string - > datetime, double->bigint,  decimal -> double, decimal -> bigint都是有精度损失或者报错的风险。 当然依旧可以用cast来做强制转换。
  • 常量类型会变化。单独一个整形常量,如123,在旧类型下是bigint类型,在新类型下是int类型。
  • udf resolve结果可能变化,比如udf包含bigint和int两个重载。旧类型下一定走bigint的重载,而新类型下可能会被解析到int的重载。

odps.security.ip.whitelist示例

MaxCompute支持Project级别的IP白名单。
说明
  • 设置IP白名单后,只有白名单列表中的IP(console或者SDK所在的出口IP)能够访问这个Project。
  • 设置IP白名单后,您需要等待五分钟后才会生效。
  • VPC环境下当前仅支持针对SLB整段地址进行放通。
  • 如果您误操作,将自己屏蔽,请通过提工单向阿里云技术支持寻求帮助。
白名单中IP列表的表示格式有三种。
  • 单纯IP:例如101.132.236.134。
  • 子网掩码:100.116.0.0/16。
  • 网段:101.132.236.134-101.132.236.144。

这三种格式可以写在同一个命令中,用逗号分割。

例如,以下为命令行工具设置IP白名单的方法:
setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;
IP白名单清空后,MaxCompute就认为Project关闭了白名单功能。
setproject odps.security.ip.whitelist=;