全部產品
Search
文件中心

E-MapReduce:使用Python Client提交Presto作業

更新時間:Mar 26, 2025

本文為您介紹如何使用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的連結,然後修改連結中的trinotrino-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的連結,然後修改連結中的trinotrino-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()