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**")