Schema是MaxCompute介于项目和表、资源、函数之间的概念,对表、资源、函数进行进一步归类。本文为您介绍Schema的基本操作。
前提条件:准备运行环境
PyODPS支持在DataWorks的PyODPS节点或本地PC环境中运行,运行前您需先选择运行工具并准备好运行环境。
使用DataWorks:创建好PyODPS 2节点或PyODPS 3节点,详情请参见通过DataWorks使用PyODPS。
使用本地PC环境:安装好PyODPS并初始化ODPS入口对象。
基本操作
当前MaxCompute Schema功能还在公测中,如果您需要使用的话,请提交新功能测试申请同时提供UID和Project名称,详情请参见新功能测试申请。
提交新功能测试申请后,MaxCompute将对Project进行升级,目前此升级流程日常只安排在每周一和每周四进行,提交申请后请耐心等待。升级后将在Project内新建名称为DEFAULT的Schema,以及会将UID对应租户的Schema语法开关打开,同时您可以自定义创建Schema并进行操作使用。
创建Schema。
schema = o.create_schema("**schema_name**") print(schema)
删除Schema。
schema = o.delete_schema("**schema_name**")
列举所有Schema。
for schema in o.list_schema(): print(schema)
在开启Schema后,MaxCompute入口对象默认操作的MaxCompute对象都位于名为
DEFAULT
的Schema下。为操作其他Schema下的对象,需要在创建入口对象时指定Schema。示例如下:# 确保 ALIBABA_CLOUD_ACCESS_KEY_ID 环境变量设置为用户 Access Key ID, # ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量设置为用户 Access Key Secret, # 不建议直接使用 Access Key ID / Access Key Secret 字符串 o = ODPS( os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='<your-default-project>', endpoint='<your-end-point>', schema='<your-schema-name>', )
参数说明:
参数名称
描述
your-default-project
项目名称。
your-end-point
MaxCompute服务的连接地址。您需要根据创建MaxCompute项目时选择的地域以及网络连接方式配置Endpoint。各地域及网络对应的Endpoint值,请参见Endpoint。
重要如果Endpoint配置有误,会出现无法访问错误,请务必仔细确认。
your-schema-name
Schema名称。
为不同对象的操作方法指定
schema
参数。示例如下:#列举test_schema下所有的表 for table in o.list_tables(schema='**schema_name**'): print(table)
在执行SQL时,指定默认Schema。示例如下:
o.execute_sql("SELECT * FROM dual", default_schema="**schema_name**")