全部产品
Search
文档中心

MaxCompute:SQLAlchemy

更新时间:Jul 02, 2025

PyODPS terintegrasi dengan SQLAlchemy, memungkinkan Anda menanyakan data di MaxCompute. Topik ini menjelaskan cara menghubungkan SQLAlchemy ke Proyek MaxCompute dan memanggil antarmuka SQLAlchemy.

Menghubungkan SQLAlchemy ke Proyek MaxCompute

Sintaksis

import os
from sqlalchemy import create_engine

# Setel variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID ke ID AccessKey Anda.
# Setel variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke Rahasia AccessKey dari akun Alibaba Cloud.
# Kami menyarankan agar Anda tidak langsung menggunakan ID AccessKey atau Rahasia AccessKey Anda.
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 yang digunakan untuk mengakses Proyek MaxCompute. Disarankan untuk menetapkan parameter ini sebagai variabel lingkungan.

    Anda dapat memperoleh ID AccessKey dari halaman Pasangan AccessKey.

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET: Rahasia AccessKey yang sesuai dengan ID AccessKey. Disarankan untuk menetapkan parameter ini sebagai variabel lingkungan.

    Anda dapat memperoleh Rahasia AccessKey dari halaman Pasangan AccessKey.

  • project: Nama Proyek MaxCompute yang ingin Anda akses.

    Parameter ini menentukan nama Proyek MaxCompute, bukan ruang kerja DataWorks tempat Proyek tersebut berada. Anda dapat masuk ke konsol MaxCompute. Di bilah navigasi atas, pilih wilayah. Di panel navigasi sisi kiri, pilih Workspace > Projects untuk melihat nama Proyek MaxCompute.

  • endpoint: Titik akhir wilayah tempat Proyek MaxCompute Anda berada.

    Untuk informasi lebih lanjut tentang titik akhir MaxCompute di berbagai wilayah, lihat Titik Akhir.

Untuk objek ODPS yang ada o, jika Anda memanggil metode o.to_global() untuk mengonfigurasi objek sebagai objek global, Anda tidak perlu menentukan parameter sebelumnya dalam string koneksi. Contoh pernyataan:

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

Panggil Antarmuka SQLAlchemy

Setelah menghubungkan SQLAlchemy ke Proyek MaxCompute, Anda dapat memanggil antarmuka SQLAlchemy. Pernyataan berikut menunjukkan cara membuat tabel, menyisipkan data ke tabel, dan menanyakan data dari tabel.

  • 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)
  • Sisipkan data ke tabel

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

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

    Nilai pengembalian

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