使用Python Client提交Presto作业

使用Python Client提交Presto作业

更新时间:
复制为 MD 格式

本文为您介绍如何使用 Python Client 编程的方式访问 Trino On ACK 服务并执行查询操作。

背景信息

Trino JDBC 使用和相关参数的更多信息,请参见 trino-python-client 。

前提条件

  • 已在 E-MapReduce on ACK 控制台创建 Presto 集群,详情请参见 快速入门 。

  • 已添加 AliyunOSSFullAccess 和 AliyunDLFFullAccess 权限,详情请参见 角色授权 。

  • 开发环境已安装 Python、PIP、Trino DBAPI 或 SQLAlchemy,详情请参见 环境要求 。

  • 已配置 Presto 集群 admin 用户的密码,详情请参见 配置集群管理密码 。

Trino DBAPI 访问

说明
  • url :您可以在 访问链接与端口 页面,获取到 Trino UI 的链接,然后修改链接中的 trino 为 trino-cli 。

  • 用户名和密码:默认用户 admin ,以及提前配置的密码。

DBAPI.python 示例信息如下。

from trino.dbapi import connect
from trino.auth import BasicAuthentication
conn = connect(
    port=443,
    # 访问地址
    host="trino-cli.c-xxx.xxx.cn-hangzhou.alicontainer.com",
    # 用户名和密码
    auth=BasicAuthentication("xxx", "xxx"),
    http_scheme="https",
    verify=False
cur = conn.cursor()
cur.execute("show catalogs")
rows = cur.fetchall()

SQLAlchemy 访问

说明
  • url :您可以在 访问链接与端口 页面,获取到 Trino UI 的链接,然后修改链接中的 trino 为 trino-cli 。

  • 用户名和密码:默认用户 admin ,以及提前配置的密码。

SQLAlchemy.python 示例信息如下。

from sqlalchemy import create_engine
from sqlalchemy.sql.expression import text
from trino.auth import BasicAuthentication
engine = create_engine(
    # 访问地址
    "trino://trino-cli.c-xxx.xxx.cn-hangzhou.alicontainer.com:443",
    connect_args={
        # 用户名和密码
        "auth": BasicAuthentication("xxx", "xxx"),
        "http_scheme": "https",
        "verify": False,
connection = engine.connect()
rows = connection.execute(text("show catalogs")).fetchall()