Tüm Ürünler
Search
Belge Merkezi

MaxCompute:SQLAlchemy entegrasyonu

Son Güncelleme:Oct 04, 2026

PyODPS, SQLAlchemy ile entegre çalışır; bu sayede standart SQLAlchemy sözdizimini kullanarak MaxCompute verilerini sorgulayabilirsiniz. Bir bağlantı oluşturup SQLAlchemy API'sini çağırarak tablo oluşturabilir, veri ekleyebilir ve sorgu çalıştırabilirsiniz.

Bağlantı oluşturun

Aşağıdaki şekilde bir bağlantı oluşturun.

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: Hedef MaxCompute projesine erişim iznine sahip olan AccessKey ID'niz. Bu değeri ortam değişkeni olarak ayarlamanızı öneririz.

    AccessKey ID'nizi AccessKey Pair sayfasından alabilirsiniz.

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET: AccessKey ID'nize karşılık gelen AccessKey gizli anahtarı. Bu değeri ortam değişkeni olarak ayarlamanızı öneririz.

    AccessKey gizli anahtarınızı AccessKey Pair sayfasından alabilirsiniz.

  • project: Hedef MaxCompute projesinin adı.

    Bu, çalışma alanı adı değil, MaxCompute proje adını ifade eder. Proje adınızı bulmak için MaxCompute console adresinde oturum açın ve sol gezinme bölmesinden Workspace > Projects seçeneklerine gidin.

  • endpoint: Hedef MaxCompute projesinin bulunduğu bölgenin uç noktası.

    Bölgelere göre uç noktaların listesi için bkz. Uç Noktalar.

Mevcut bir ODPS nesneniz o varsa ve o.to_global() yöntemini çağırarak bunu genel bir ODPS nesnesi olarak ayarladıysanız, bağlantı dizesindeki önceki parametreleri atlayabilirsiniz. Örneğin:

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

SQLAlchemy API'sini kullanın

Aşağıdaki örneklerde tablo oluşturma, veri ekleme ve veri sorgulama işlemleri gösterilmektedir:

  • Tablo oluşturun

    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)
  • Veri ekleyin

    ins = users.insert().values(id=1, name='jack', fullname='Jack Jones')
    conn.execute(ins)
  • Veri sorgulayın

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

    Beklenen çıktı:

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