Todos os produtos
Search
Central de documentação

MaxCompute:Integrar SQLAlchemy

Última atualização: Jul 17, 2026

O PyODPS integra-se ao SQLAlchemy e permite consultar dados do MaxCompute com a sintaxe padrão do SQLAlchemy. Crie uma conexão e chame a API do SQLAlchemy para criar tabelas, inserir dados e executar consultas.

Criar uma conexão

Crie uma conexão conforme o exemplo a seguir.

import os
from sqlalchemy import create_engine

# Ensure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set to your AccessKey ID,
# and the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set to your AccessKey secret.
# For security, avoid hardcoding your AccessKey ID and AccessKey secret in the connection string.
conn_string = 'odps://%s:%s@<project>/?endpoint=<endpoint>' % (
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
)
engine = create_engine(conn_string)
conn = engine.connect()
  • ALIBABA_CLOUD_ACCESS_KEY_ID: AccessKey ID com permissão para acessar o projeto MaxCompute de destino. Defina-o como variável de ambiente.

    Obtenha o AccessKey ID na página AccessKey Pair.

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET: AccessKey secret correspondente ao AccessKey ID. Defina-o como variável de ambiente.

    Obtenha o AccessKey secret na página AccessKey Pair.

  • project: Nome do projeto MaxCompute de destino.

    Este é o nome do projeto MaxCompute, não o nome do workspace. Para localizar o nome do projeto, faça login no MaxCompute console e acesse Workspace > Projects no painel de navegação à esquerda.

  • endpoint: Endpoint da região do projeto MaxCompute de destino.

    Para obter a lista de endpoints por região, consulte Endpoints.

Se você já tiver um objeto ODPS o definido como global por meio de o.to_global(), omita os parâmetros anteriores na string de conexão. Exemplo:

from sqlalchemy import create_engine
o.to_global()  # Make the ODPS object global
engine = create_engine('odps://')

Usar a API do SQLAlchemy

Os exemplos a seguir mostram como criar tabela, inserir dados e consultar dados:

  • Criar tabela

    from sqlalchemy import Table, Column, Integer, String, MetaData
    metadata = MetaData()
    
    users = Table('users', metadata,
        Column('id', Integer),
        Column('name', String),
        Column('fullname', String),
    )
    
    metadata.create_all(engine)
  • Inserir dados

    ins = users.insert().values(id=1, name='jack', fullname='Jack Jones')
    conn.execute(ins)
  • Consultar dados

    from sqlalchemy.sql import select
    s = select([users])
    result = conn.execute(s)
    for row in result:
        print(row)

    Saída esperada:

    (1, 'jack', 'Jack Jones')