All Products
Search
Document Center

MaxCompute:Integrasikan SQLAlchemy

Last Updated:Jul 18, 2026

PyODPS terintegrasi dengan SQLAlchemy, memungkinkan Anda mengkueri data MaxCompute menggunakan sintaksis standar SQLAlchemy. Anda dapat membuat koneksi serta memanggil API SQLAlchemy untuk membuat tabel, memasukkan data, dan menjalankan kueri.

Buat koneksi

Buat koneksi sebagai berikut.

import os
from sqlalchemy import create_engine

# Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID diatur ke ID AccessKey Anda,
# dan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur ke Rahasia AccessKey Anda.
# Untuk keamanan, hindari hardcoding ID AccessKey dan Rahasia AccessKey Anda dalam string koneksi.
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: ID AccessKey Anda yang memiliki izin untuk mengakses Proyek MaxCompute target. Disarankan untuk mengaturnya sebagai variabel lingkungan.

    Anda dapat memperoleh ID AccessKey dari halaman AccessKey Pair.

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET: Rahasia AccessKey yang sesuai dengan ID AccessKey Anda. Disarankan untuk mengaturnya sebagai variabel lingkungan.

    Anda dapat memperoleh Rahasia AccessKey dari halaman AccessKey Pair.

  • project: Nama Proyek MaxCompute target.

    Ini merujuk pada nama Proyek MaxCompute, bukan nama ruang kerja. Untuk menemukan nama proyek Anda, masuk ke Konsol MaxCompute, lalu buka Workspace > Projects di panel navigasi sebelah kiri.

  • endpoint: Titik akhir Wilayah tempat Proyek MaxCompute target berada.

    Untuk daftar titik akhir berdasarkan Wilayah, lihat Endpoints.

Jika Anda telah memiliki objek ODPS o dan telah mengaturnya sebagai objek ODPS global dengan memanggil o.to_global(), Anda dapat menghilangkan parameter tersebut dari string koneksi. Contohnya:

from sqlalchemy import create_engine
o.to_global()  # Jadikan objek ODPS sebagai global
engine = create_engine('odps://')

Gunakan API SQLAlchemy

Contoh berikut menunjukkan cara membuat tabel, memasukkan data, dan mengkueri data:

  • Buat tabel

    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)
  • Masukkan data

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

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

    Output yang diharapkan:

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