Superset连接MaxCompute

MaxCompute支持您将MaxCompute项目数据接入Superset,帮助您快速、轻量、直观地探索和可视化分析数据。本文为您介绍如何通过PyODPS连接Superset和MaxCompute项目,并进行可视化数据分析。

背景信息

Apache Superset是一个现代数据探索和可视化平台,具有丰富的从简单的折线图到高度详细的地理空间图表的图表形态。更多Superset信息,请参见Superset

前提条件

在执行操作前,请确认您已满足如下条件:

  • 已创建MaxCompute项目。

    更多创建MaxCompute项目操作,请参见创建MaxCompute项目

  • 已获取可访问MaxCompute项目的AccessKey ID和AccessKey Secret。

    您可以进入AccessKey管理页面获取AccessKey ID和AccessKey Secret。

  • 已安装Superset。

    您可以按照Superset官方资料安装,请参见Superset文档。您还可以通过Docker方式安装Superset并按照官方资料执行额外步骤,请参见添加驱动(Docker)

    本文中的Superset示例版本为v1.1.0。

  • 已安装或更新v0.10.7及以上版本的PyODPS

    建议使用Python 3安装PyODPS,更多安装操作,请参见安装PyODPS

    本文中的PyODPS示例版本为v0.10.7。

步骤一:连接Superset和MaxCompute

  1. 启动Superset,进入Superset界面。

    更多启动操作信息,请参见Superset文档

  2. 在顶部菜单栏,选择Data > Databases后,在右侧单击+DATABASE

    添加数据源

  3. 在数据源配置界面填写下表所列参数信息。

    配置连接参数

    参数

    说明

    DATABASE NAME

    新建数据连接的名称,用于在系统中区分不同数据库的连接。

    SQLALCHEMY URI

    连接MaxCompute项目的SQLAlchemy连接串。格式为odps://<accesskey_id>:<accesskey_secret>@<MaxCompute_project_name>/?endpoint=<MaxCompute_endpoint>。配置时删除<>符号。参数说明如下:

    • accesskey_id:必填。具备目标MaxCompute项目访问权限的AccessKey ID。

      您可以进入AccessKey管理页面获取AccessKey ID。

    • accesskey_secret:必填。AccessKey ID对应的AccessKey Secret。

      您可以进入AccessKey管理页面获取AccessKey Secret。

    • <MaxCompute_project_name>:必填。待连接的目标MaxCompute项目名称。

      此处为MaxCompute项目名称,非工作空间名称。您可以登录MaxCompute控制台,左上角切换地域后,即可在项目管理页面查看到具体的MaxCompute项目名称。

    • <MaxCompute_endpoint>:必填。MaxCompute项目所属区域的Endpoint。

      各地域的Endpoint信息,请参见Endpoint

    如果您需要启用查询加速功能,需要在SQLAlchemy连接串后增加如下参数。

    参数

    取值

    说明

    interactive_mode

    true

    查询加速功能总开关。

    reuse_odps

    true

    可选。启用强制复用连接模式,建议开启。Superset默认对每个SQL请求强制重新创建连接,启用此模式后可以更方便地创建连接。

    fallback_policy

    • unsupported

    • upgrading

    • noresource

    • timeout

    • generic

    • default

    • all

    可选。控制查询加速失败时的回退行为。格式为<policy1>,<policy2>...。支持的policy如下:

    • unsupported:不支持查询加速功能时,回退到离线模式。

    • upgrading:升级过程中回退到离线模式。

    • noresource:资源不足时回退到离线模式。

    • timeout:连接超时回退到离线模式。

    • generic:发生未知错误时回退到离线模式。

    • default:等同于同时指定unsupported、upgrading、noresource和timeout。如果SQLAlchemy连接串中未指定fallback_policy,则此项为默认值。

    • all:将在所有情况下回退到离线模式。

    基于上述解释,打开查询加速功能、启用强制复用连接模式、在查询加速功能尚未支持、升级中和资源不足时回退到离线模式的SQLAlchemy连接串示例为:odps://<accesskey_id>:<accesskey_secret>@<MaxCompute_project_name>/?endpoint=<MaxCompute_endpoint>&interactive_mode=true&reuse_odps=true&fallback_policy=unsupported,upgrading,noresource

  4. 单击TEST CONNECTION,右下角出现提示 Connection looks good!时代表可以连接成功,单击ADD即可将MaxCompute项目添加至Superset。

    测试连接

步骤二:使用Superset查询及分析数据

完成数据源配置后,您可以通过添加数据集,对特定表进行查询和可视化分析。您可以执行如下操作,更多操作请参见Superset帮助

  • 查看所有表

    在Superset界面的顶部菜单栏,选择Data > Datasets后,在右侧单击+DATASET。在Add dataset对话框选择您创建的Database(数据连接)、Schema(MaxCompute项目名称)即可查看所有表信息。

    查看所有表

  • 查看表结构

    在Superset界面的顶部菜单栏,选择Data > Datasets后,在右侧单击+DATASET。在Add dataset对话框选择您创建的Database(数据连接)、Schema(MaxCompute项目名称)及Table(表)后,单击ADD即可查看表结构信息。

    查看表结构

  • 查看表数据

    您可以通过SQL编辑器输入并运行SQL脚本,即可查看表数据信息。

    查看表数据

  • 可视化分析数据

    Datasets界面,您可以单击目标表后,选择图表类型并配置属性,即可根据实际业务诉求开展数据分析。

    可视化分析数据