文档

读MaxCompute表

更新时间:

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

前提条件

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

  • 已开通MaxCompute,详情请参见开通MaxCompute

  • 可选:已创建支持登录PAI控制台的RAM角色,详情请参见RAM角色登录并使用PAI

  • 可选:已为RAM角色授权MaxCompute项目操作权限,详情请参见通过控制台(新版)管理用户权限

  • 安装PyODPS环境前,您可先查看下Python的版本,建议Python版本为3.6及以上版本,不建议使用2.7及以下版本。

  • 已完成身份验证配置。您可以使用环境变量、本地文件等方式进行配置,具体操作请参见身份验证配置

PyODPS

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

  1. 安装PyODPS。

    DSW的Terminal中,执行如下命令。

    pip install pyodps
  2. 执行如下命令检查安装是否成功。若无返回值和报错信息表示安装成功。

    python -c "from odps import ODPS"
  3. 如果您使用的Python不是系统默认的Python版本,安装完PIP后,您可以执行如下命令进行Python版本切换。

    /home/tops/bin/python3.7 -m pip install setuptools>=3.0
    #/home/tops/bin/python3.7为安装的python路径
  4. 通过SQL读取MaxCompute数据。

    import numpy as np
    import pandas as pd
    import os
    
    from odps import ODPS
    from odps.df import DataFrame
    # 建立链接。
    o = ODPS(
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        project='your-default-project',
        endpoint='your-end-point',
    )
    
    # 读取数据。
    sql = '''
    SELECT  
        *
    FROM
        your-default-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时可以开启多线程加速。

    其中:

    • ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET:需将该环境变量设置为您的阿里云账号的AccessKey ID和 AccessKey Secret。

      说明

      不建议直接使用AccessKey ID和 AccessKey Secret字符串。

    • your-default-projectyour-end-point:需替换为您设置的默认项目名称与Endpoint信息,各地域的Endpoint请参见Endpoint

    关于如何使用PyODPS对MaxCompute表进行其他操作(例如写入数据),详情请参见

SQL File

DSW提供了SQL File功能,支持您通过SQL语句的方式对有查询权限的MaxCompute数据源进行快速的数据查询,具体操作步骤如下。

说明

使用SQL语句进行数据查询时,DSW暂时不收取额外费用,仅收取MaxCompute的计算和存储费用。

  1. 进入DSW开发环境。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在页面左上方,选择使用服务的地域。

    4. 在左侧导航栏,选择模型开发与训练 > 交互式建模(DSW)

    5. 可选:交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。

    6. 单击需要打开的实例操作列下的打开

  2. Launcher页面,单击Text and terminal区域的SQL File,创建SQL查询文件。

    SQL File
  3. 配置MaxCompute数据源。

    1. 单击主工作区域右上角的数据源按钮。

    2. 数据源设置配置面板,配置各项参数,并单击选择

      参数

      描述

      MaxCompute Endpoint

      项目所在地域的Endpoint,详情请参见Endpoint。例如华东1(杭州)的Endpoint为http://service.cn-hangzhou.maxcompute.aliyun.com/api

      Tunnel Endpoint

      项目所在地域的Tunnel Endpoint,详情请参见Endpoint。例如华东1(杭州)的Endpoint为http://dt.cn-hangzhou.maxcompute.aliyun.com

      MaxCompute项目空间

      MaxCompute项目名称。

  4. 执行查询语句。

    在SQL编辑框内编辑MaxCompute数据源的查询代码,完成后执行对应命令即可获取查询结果。

    • 运行代码:支持通过单击SQL语句左侧的快捷运行按钮直接运行代码,或选中部分代码后单击运行,运行完成后可查看对应代码的运行结果。

    • 格式化:您也可以通过格式化将自行排版的代码一键规范化排版。

  5. 查看查询结果。

    SQL语句执行成功后,您可以对查询结果进行如下操作:

    功能

    图示

    操作说明

    查看运行结果中表格数据

    表格

    为您展示SQL语句的查询结果。

    查询结果可视化图表展示

    可视化图表展示

    支持您使用折线图、柱状图、条形图、饼图、交叉表对查询结果进行可视化展现。您可以拖拽字段到维度、指标等区域创建图表。同时,支持您单击字段,修改字段类型、设置字段别名等。

    查看查询结果对应的SQL语句

    SQL

    为您展示当前查询结果对应的SQL内容,支持对该查询结果对应的SQL语句进行快速复制和快速插入代码编辑区的操作。

    查看查询过程对应的操作日志

    操作日志

    为您展示执行当前查询语句的操作日志。如果SQL语句执行失败,您可以单击日志中的Logview链接,做进一步的排查。

  • 本页导读 (1)
文档反馈