Topik ini menjelaskan cara membangun koneksi mulus antara Tablestore dan MaxCompute dalam akun Alibaba Cloud yang sama.
Informasi latar belakang
MaxCompute adalah platform hemat biaya dan sepenuhnya dikelola untuk penyimpanan data dalam skala petabyte. Anda dapat menggunakan MaxCompute untuk memproses dan menganalisis sejumlah besar data dengan cara yang cepat dan efisien. Anda dapat mengeksekusi pernyataan Data Definition Language (DDL) sederhana untuk membuat tabel eksternal di MaxCompute guna menghubungkan tabel tersebut dengan sumber data eksternal. Hal ini memungkinkan Anda mengakses dan mengekspor data dalam berbagai format. Tabel MaxCompute hanya dapat berisi data terstruktur, sedangkan tabel eksternal dapat digunakan untuk memproses data terstruktur maupun tidak terstruktur.
Tablestore dan MaxCompute mendukung berbagai jenis data. Tabel berikut menjelaskan pemetaan antara tipe data yang didukung di Tablestore dan MaxCompute.
Tablestore | MaxCompute |
STRING | STRING |
INTEGER | BIGINT |
DOUBLE | DOUBLE |
BOOLEAN | BOOLEAN |
BINARY | BINARY |
Persiapan
Sebelum menggunakan MaxCompute untuk mengakses Tablestore, pastikan langkah-langkah persiapan berikut telah diselesaikan:
MaxCompute telah diaktifkan.
Pasangan AccessKey telah dibuat.
MaxCompute diberi otorisasi untuk mengakses Tablestore di Konsol Resource Access Management (RAM). Untuk informasi lebih lanjut, lihat Otorisasi Lintas Akun.
Instans dan tabel telah dibuat di konsol Tablestore. Untuk informasi lebih lanjut, lihat Buat Instans Tablestore dan Buat Tabel Data.
Berikut adalah informasi tentang instans dan tabel yang dibuat dalam contoh ini:
Nama instans: cap1
Nama tabel data: vehicle_track
Informasi kunci utama: vid(integer) dan gt(integer)
Titik akhir:
https://cap1.cn-hangzhou.ots-internal.aliyuncs.comnullSaat menggunakan MaxCompute untuk mengakses Tablestore, disarankan untuk menggunakan titik akhir privat Tablestore.
Pengaturan kontrol akses jaringan untuk instans. Secara default, Anda dapat mengakses instans Tablestore dari konsol Tablestore dan melalui VPC, jaringan klasik, serta Internet. Dalam contoh ini, pengaturan default di bagian Network Access Control digunakan. Gambar berikut menunjukkan pengaturan default di bagian Network Access Control.

Langkah 1: Instal dan konfigurasikan klien
Unduh dan ekstrak paket instalasi klien MaxCompute.
nullPastikan JRE 1.7 atau versi lebih baru telah terinstal di mesin Anda.
Ubah file conf/odps_config.ini untuk mengonfigurasi klien. Contoh kode berikut memberikan contoh cara mengonfigurasi klien:
# Tentukan pasangan AccessKey dari akun Alibaba Cloud Anda. Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk mendapatkan pasangan AccessKey dari akun Alibaba Cloud Anda, masuk ke situs resmi Alibaba Cloud, buka Konsol Manajemen Alibaba Cloud, arahkan pointer ke foto profil di pojok kanan atas, lalu klik Pengelolaan AccessKey. access_id=******************* access_key=********************* # Tentukan nama proyek yang ingin Anda akses. project_name=my_project # Tentukan titik akhir MaxCompute. end_point=https://service.odps.aliyun.com/api # Tentukan tautan untuk mengakses layanan Tunnel MaxCompute. tunnel_endpoint=https://dt.odps.aliyun.com # Tentukan URL LogView yang dikembalikan oleh klien setelah pekerjaan dijalankan. Setelah Anda mengakses URL LogView, Anda dapat melihat informasi rinci tentang pekerjaan tersebut. log_view_host=http://logview.odps.aliyun.com # Tentukan apakah akan mengaktifkan akses melalui HTTPS. https_check=truenullDalam file odps_config.ini, tanda pagar (
#) digunakan untuk menambahkan komentar. Klien MaxCompute menggunakan--untuk menambahkan komentar.Jalankan bin/odpscmd.bat. Masukkan
show tables;.Jika tabel dalam proyek MaxCompute saat ini ditampilkan, konfigurasi sebelumnya valid.

Langkah 2: Buat tabel eksternal
Buat tabel data MaxCompute bernama ots_vehicle_track untuk mengaitkan tabel tersebut dengan tabel Tablestore bernama vehicle_track.
Berikut adalah informasi tentang tabel Tablestore yang terkait:
Nama instans: cap1
Nama tabel data: vehicle_track
Informasi kunci utama: vid(int) dan gt(int)
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 urutan | Parameter | Deskripsi |
(1) | com.aliyun.odps.TableStoreStorageHandler | Penanganan penyimpanan bawaan MaxCompute yang memproses data Tablestore dan mendefinisikan interaksi antara MaxCompute dan Tablestore. MaxCompute mengimplementasikan logika terkait. |
(2) | SERDEPROPERITES | Operasi yang menyediakan opsi parameter. Saat menggunakan penanganan penyimpanan yang memproses data Tablestore, Anda harus mengonfigurasi parameter tablestore.columns.mapping dan tablestore.table.name. |
(3) | tablestore.columns.mapping | Wajib. Kolom tabel Tablestore yang ingin diakses oleh MaxCompute. Kolom-kolom tersebut mencakup kolom kunci utama dan kolom atribut. Jika tanda titik dua |
(4) | tablestore.table.name | Nama tabel Tablestore yang ingin diakses oleh MaxCompute. Jika nama tabel Tablestore yang ditentukan tidak ada, kesalahan akan terjadi. Dalam hal ini, MaxCompute tidak akan membuat tabel Tablestore. |
(5) | LOCATION | Informasi tentang instans Tablestore tempat tabel Tablestore tersebut berada. Informasi tersebut mencakup nama instans dan titik akhir. |
Langkah 3: Gunakan tabel eksternal untuk mengakses data Tablestore
Setelah membuat tabel eksternal, data Tablestore diimpor ke MaxCompute. Kemudian, Anda dapat menggunakan perintah SQL MaxCompute untuk mengakses data Tablestore.
-- Kumpulkan statistik tentang kecepatan rata-rata dan konsumsi bahan bakar kendaraan yang memiliki 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 keluaran perintah:
