Topik ini menjelaskan cara menghubungkan MaxCompute dan Tablestore dalam akun Alibaba Cloud yang sama.
Latar Belakang
MaxCompute adalah layanan komputasi data besar yang menyediakan solusi gudang data cepat dan sepenuhnya terkelola untuk data skala petabyte. Layanan ini memungkinkan Anda memproses dan menganalisis kumpulan data masif secara hemat biaya dan efisien. Dengan menggunakan pernyataan Data Definition Language (DDL) yang sederhana, Anda dapat membuat tabel eksternal di MaxCompute untuk terhubung ke sumber data eksternal, sehingga memungkinkan impor dan ekspor berbagai jenis data. Tabel MaxCompute menyimpan data terstruktur, sedangkan tabel eksternal tidak terbatas pada data terstruktur.
Tablestore dan MaxCompute masing-masing memiliki sistem tipe data sendiri. Tabel berikut menunjukkan pemetaan tipe data di antara keduanya.
Tablestore | MaxCompute |
STRING | STRING |
INTEGER | BIGINT |
DOUBLE | DOUBLE |
BOOLEAN | BOOLEAN |
BINARY | BINARY |
Prasyarat
Sebelum mengakses Tablestore dari MaxCompute, lengkapi prasyarat berikut:
Buat Pasangan Kunci Akses.
Di Konsol RAM, berikan akses MaxCompute ke Tablestore. Untuk informasi selengkapnya, lihat Otorisasi lintas akun.
Di Konsol Tablestore, buat instans dan buat tabel data.
Pada contoh ini, instans Tablestore dan tabel data memiliki detail berikut:
Nama instans: cap1
Nama tabel data: vehicle_track
Kunci primer: vid(integer), gt(integer)
Titik akhir:
https://cap1.cn-hangzhou.ots-internal.aliyuncs.comCatatanSaat mengakses Tablestore dari MaxCompute, kami menyarankan agar Anda menggunakan titik akhir pribadi instans Tablestore.
Konfigurasikan kontrol akses jaringan untuk instans tersebut. Secara default, Tablestore mengizinkan akses dari jaringan mana pun. Anda dapat mempertahankan konfigurasi default sebagai berikut:

Langkah 1: Instal dan konfigurasikan client
Unduh dan ekstrak client MaxCompute.
CatatanPastikan Java Runtime Environment (JRE) versi 1.7 atau lebih baru telah diinstal di mesin Anda.
Edit file
conf/odps_config.iniuntuk mengonfigurasi client sebagai berikut.# Pasangan AccessKey akun Alibaba Cloud Anda, yang terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk melihat pasangan AccessKey, login ke Konsol Manajemen Alibaba Cloud, arahkan kursor ke gambar profil di pojok kanan atas, lalu klik Manajemen AccessKey. access_id=******************* access_key=********************* # Proyek yang ingin Anda akses. project_name=my_project # Titik akhir untuk layanan MaxCompute. end_point=https://service.odps.aliyun.com/api # Titik akhir untuk layanan MaxCompute Tunnel. tunnel_endpoint=https://dt.odps.aliyun.com # URL Logview yang dikembalikan client setelah pekerjaan dijalankan. Anda dapat membuka URL ini untuk melihat informasi eksekusi pekerjaan secara detail. log_view_host=http://logview.odps.aliyun.com # Menentukan apakah akses melalui HTTPS diaktifkan. https_check=trueCatatanDalam file
odps_config.ini, tanda pagar (#) menunjukkan komentar, sedangkan di client MaxCompute, dua tanda hubung (--) menunjukkan komentar.Jalankan
bin/odpscmd.batdan masukkanshow tables;.Jika tabel dalam proyek MaxCompute saat ini ditampilkan, konfigurasi sudah benar.

Langkah 2: Buat tabel eksternal
Buat tabel eksternal MaxCompute bernama ots_vehicle_track dan kaitkan dengan tabel data vehicle_track di Tablestore.
Informasi tabel data yang dikaitkan adalah sebagai berikut.
Nama instans: cap1
Nama tabel data: vehicle_track
Kunci primer: vid(integer), gt(integer)
Titik akhir:
https://cap1.cn-hangzhou.ots-internal.aliyuncs.com
CREATE EXTERNAL TABLE IF NOT EXISTS ots_vehicle_track
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double ,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler' -- (1)
WITH SERDEPROPERTIES ( -- (2)
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption', -- (3)
'tablestore.table.name'='vehicle_track' -- (4)
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'; -- (5)Tabel berikut menjelaskan parameter-parameter tersebut.
Nomor | Parameter | Deskripsi |
(1) | com.aliyun.odps.TableStoreStorageHandler | Penangan penyimpanan bawaan MaxCompute untuk data Tablestore. Ini mendefinisikan cara MaxCompute berinteraksi dengan Tablestore. |
(2) | SERDEPROPERITES | Menentukan properti untuk penangan penyimpanan. Anda harus mendefinisikan parameter |
(3) | tablestore.columns.mapping | Wajib diisi. Kolom tabel Tablestore yang akan diakses oleh MaxCompute, termasuk kolom kunci primer dan kolom atribut. Nama kolom yang diawali dengan tanda titik dua ( |
(4) | tablestore.table.name | Nama tabel Tablestore yang akan diakses. MaxCompute akan mengembalikan error jika tabel yang ditentukan tidak ada. MaxCompute tidak membuat tabel Tablestore secara otomatis. |
(5) | LOCATION | Menentukan informasi tentang instans Tablestore yang akan diakses, termasuk nama instans dan titik akhir. |
Langkah 3: Gunakan tabel eksternal untuk mengakses data
Konkurensi tinggi dapat meningkatkan beban pada instans Tablestore, sehingga menyebabkan latensi layanan online yang lebih tinggi bahkan kegagalan permintaan. Anda dapat menyesuaikan tingkat paralelisme dengan mengatur set odps.sql.mapper.split.size=256. Nilai yang lebih besar mengurangi konkurensi, sedangkan nilai yang lebih kecil meningkatkannya. Untuk informasi selengkapnya, lihat SQL Tuning.
Setelah tabel eksternal dibuat, data Tablestore tersedia dalam ekosistem MaxCompute. Anda dapat menggunakan perintah SQL MaxCompute untuk mengakses data tersebut.
-- Hitung kecepatan rata-rata dan konsumsi bahan bakar kendaraan dengan VID kurang dari 4 sebelum timestamp 1469171387.
select vid,count(*),avg(speed),avg(oil_consumption) from ots_vehicle_track where vid <4 and gt<1469171387 group by vid;Contoh hasil:
