本文介绍如何使用PyODPS和SQL File读MaxCompute表数据。

前提条件

在开始执行操作前,请确认您已经完成以下准备工作:

PyODPS

您可以使用PyODPS与MaxCompute或PAI-Designer中的数据进行通信。PyODPS是阿里云提供的Python SDK,详情请参见PyODPS开发文档

  1. 安装PyODPS。
    在PAI-DSW的Terminal中,执行如下命令。
    pip install pyodps
  2. 执行如下命令,检查是否安装完成。
    python -c "from odps import ODPS"
  3. 通过SQL读取MaxCompute数据。
    import numpy as np
    import pandas as pd
    
    from odps import ODPS
    from odps.df import DataFrame
    # 建立链接。
    o = ODPS(
        '<your_AccessKey_ID>', 
        '<your_AccessKey_Secret>', 
        '<your_MaxCompute_project>',
        endpoint='<your_Project_Endpoint>')
        
    # 读取数据。
    sql = '''
    SELECT  
        *
    FROM
        <your_MaxCompute_project>.<table>
    LIMIT 100
    ;
    '''
    query_job = o.execute_sql(sql)
    result = query_job.open_reader(tunnel=True) 
    df = result.to_pandas(n_process=1) #n_process配置可参考机器配置,取值大于1时可以开启多线程加速。
    需要根据实际情况替换以下参数值。
    参数描述
    <your_AccessKey_ID>阿里云的AccessKey ID。
    <your_AccessKey_Secret>阿里云的AccessKey Secret。
    <your_MaxCompute_project>MaxCompute项目名称。
    <your_Project_Endpoint>项目所在地域的Endpoint,详情请参见Endpoint。例如华东1(杭州)的Endpoint为http://service.cn-hangzhou.maxcompute.aliyun.com/api
    <table>MaxCompute项目中的表名称。
    关于如何使用PyODPS对MaxCompute表进行其他操作(例如写入数据),详情请参见

SQL File

PAI-DSW提供了SQL File功能,支持您通过SQL语句的方式对有查询权限的MaxCompute数据源进行快速的数据查询,具体操作步骤如下。
说明 使用SQL语句进行数据查询时,PAI-DSW暂时不收取额外费用,仅收取MaxCompute的计算和存储费用。
  1. 进入PAI-DSW开发环境。
    1. 登录PAI控制台
    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
    3. 在页面左上方,选择使用服务的地域。
    4. 在左侧导航栏,选择模型开发和训练 > 交互式建模(DSW)
    5. 可选:交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。
    6. 单击需要打开的实例操作列下的打开
  2. Launcher页面,单击Text and terminal区域的SQL File,创建SQL查询文件。
    SQL File
  3. 配置MaxCompute数据源。
    1. 单击主工作区域右上角的图示位置。
      配置数据源
    2. 数据源设置配置面板,配置各项参数,并单击选择
      参数描述
      使用当前角色当使用RAM角色登录PAI控制台时,支持选择该设置方式。
      自定义输入自定义配置数据源登录信息。
      AccessKey ID仅当选择自定义输入时,支持配置该参数。

      访问密钥中的AccessKey ID,您可以进入用户信息管理页面进行复制。

      AccessKey Secret仅当选择自定义输入时,支持配置该参数。

      访问密钥中的AccessKey Secret,相当于登录密码。

      MaxCompute Endpoint项目所在地域的Endpoint,详情请参见Endpoint。例如华东1(杭州)的Endpoint为http://service.cn-hangzhou.maxcompute.aliyun.com/api
      MaxCompute项目空间MaxCompute项目名称。
  4. 执行查询语句。
    在SQL编辑框内编辑MaxCompute数据源的查询代码,完成后执行对应命令即可获取查询结果。SQL查询
    • 运行代码:支持通过单击SQL语句左侧的快捷运行按钮直接运行代码,或选中部分代码后单击运行,运行完成后可查看对应代码的运行结果。
    • 格式化:您也可以通过格式化将自行排版的代码一键规范化排版。
  5. 查看查询结果。
    SQL语句执行成功后,您可以对查询结果进行如下操作:
    功能图示操作说明
    查看运行结果中表格数据表格为您展示SQL语句的查询结果。
    查询结果可视化图表展示可视化图表展示支持您使用折线图、柱状图、条形图、饼图、交叉表对查询结果进行可视化展现。您可以拖拽字段到维度、指标等区域创建图表。同时,支持您单击字段,修改字段类型、设置字段别名等。
    查看查询结果对应的SQL语句SQL为您展示当前查询结果对应的SQL内容,支持对该查询结果对应的SQL语句进行快速复制和快速插入代码编辑区的操作。
    查看查询过程对应的操作日志操作日志为您展示执行当前查询语句的操作日志。如果SQL语句执行失败,您可以单击日志中的Logview链接,做进一步的排查。