PyODPS se integra con SQLAlchemy, lo que permite consultar datos de MaxCompute mediante la sintaxis estándar de SQLAlchemy. Es posible crear una conexión y llamar a la API de SQLAlchemy para crear tablas, insertar datos y ejecutar consultas.
Crear una conexión
Cree una conexión de la siguiente manera.
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: Su AccessKey ID con permisos para acceder al proyecto de MaxCompute de destino. Se recomienda establecerlo como variable de entorno.
Puede obtener su AccessKey ID en la página AccessKey Pair.
-
ALIBABA_CLOUD_ACCESS_KEY_SECRET: El AccessKey secret correspondiente a su AccessKey ID. Se recomienda establecerlo como variable de entorno.
Puede obtener su AccessKey secret en la página AccessKey Pair.
-
project: El nombre del proyecto de MaxCompute de destino.
Este valor corresponde al nombre del proyecto de MaxCompute, no al nombre del espacio de trabajo. Para encontrar el nombre de su proyecto, inicie sesión en la consola de MaxCompute y vaya a Workspace > Projects en el panel de navegación izquierdo.
-
endpoint: El endpoint de la región donde se encuentra el proyecto de MaxCompute de destino.
Para consultar la lista de endpoints por región, consulte Endpoints.
Si ya cuenta con un objeto ODPS o y lo ha configurado como objeto global mediante o.to_global(), puede omitir los parámetros anteriores en la cadena de conexión. Por ejemplo:
from sqlalchemy import create_engine
o.to_global() # Make the ODPS object global
engine = create_engine('odps://')
Uso de la API de SQLAlchemy
A continuación se presentan ejemplos que muestran cómo crear una tabla, insertar datos y consultar información:
-
Crear una tabla
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) -
Insertar datos
ins = users.insert().values(id=1, name='jack', fullname='Jack Jones') conn.execute(ins) -
Consultar datos
from sqlalchemy.sql import select s = select([users]) result = conn.execute(s) for row in result: print(row)Salida esperada:
(1, 'jack', 'Jack Jones')