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')