Fitur tabel eksternal MaxCompute memungkinkan Anda menjalankan kueri SQL langsung terhadap file CSV yang disimpan di Object Storage Service (OSS) tanpa perlu migrasi data. MaxCompute dapat menganalisis volume besar data OSS dalam hitungan beberapa menit, sehingga menjadi opsi berbiaya rendah untuk analisis terstruktur pada log IoT dan dataset teks besar lainnya.
Dalam tutorial ini:
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Bucket OSS. Lihat Buat bucket
Otorisasi MaxCompute untuk mengakses OSS. Masuk ke Konsol RAM dengan Akun Alibaba Cloud Anda, lalu buka halaman Cloud Resource Access Authorization untuk memberikan peran
AliyunODPSDefaultRole.Proyek MaxCompute. Lihat Buat Proyek MaxCompute
Klien MaxCompute yang telah diinstal dan dikonfigurasi. Lihat Instal dan konfigurasi klien MaxCompute
Cara kerja
Unggah data sumber (file CSV) ke bucket OSS.
Buat tabel eksternal di MaxCompute yang memetakan ke direktori OSS tempat file-file tersebut berada. Klausul
LOCATIONmengarah ke direktori di OSS — MaxCompute melakukan pemindaian terhadap semua file dalam direktori tersebut saat tabel dikueri.Jalankan kueri SQL terhadap tabel eksternal tersebut. MaxCompute membaca data dari OSS pada saat kueri dijalankan.
Kueri data OSS dengan tabel eksternal
Langkah-langkah berikut menggunakan contoh dataset kendaraan IoT untuk memandu Anda melalui proses end-to-end.
Langkah 1: Unggah data ke OSS
Buat file bernama
vehicle.csvdi komputer lokal Anda dengan konten berikut:1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S 1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W 1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S 1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S 1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N 1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW 1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE 1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,NSetiap baris berisi delapan bidang yang dipisahkan koma:
vehicleId,recordId,patientId,calls,locationLatitute,locationLongtitue,recordTime, dandirection.Unggah
vehicle.csvke direktoridemo/dari bucketexamplebucketdi wilayah China (Hangzhou). Lihat Unggah objek.
Langkah 2: Jalankan klien MaxCompute
Jalankan klien MaxCompute. Lihat Jalankan klien MaxCompute.
Langkah 3: Buat tabel eksternal
Buat tabel eksternal non-partisi bernama data_csv_external yang memetakan ke direktori demo/ di OSS:
CREATE EXTERNAL TABLE IF NOT EXISTS data_csv_external
(
vehicleId int,
recordId int,
patientId int,
calls int,
locationLatitute double,
locationLongtitue double,
recordTime string,
direction string
)
STORED BY 'com.aliyun.odps.CsvStorageHandler'
LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/examplebucket/demo/';Langkah 4: Kueri tabel eksternal
Jalankan pernyataan SQL berikut untuk mengambil catatan di mana patientId lebih besar dari 25:
select recordId, patientId, direction from data_csv_external where patientId > 25;Output yang diharapkan:
+------------+------------+-----------+
| recordId | patientId | direction |
+------------+------------+-----------+
| 1 | 51 | S |
| 3 | 48 | NE |
| 4 | 30 | W |
| 5 | 47 | S |
| 7 | 53 | N |
| 8 | 63 | SW |
| 10 | 31 | N |
+------------+------------+-----------+FAQ
Saya mendapatkan pesan "You don't exist in project <projectname>" saat menghubungkan
Akun Alibaba Cloud atau RAM user yang menggunakan Pasangan Kunci Akses belum ditambahkan ke Proyek MaxCompute. Hubungi Pemilik proyek untuk menambahkan akun tersebut. Lihat Tambahkan Akun Alibaba Cloud (tingkat proyek) dan Tambahkan RAM user (tingkat proyek).
Kode kesalahan lengkapnya adalah: ODPS-0420095: Access Denied - Authorization Failed [4002].
Langkah selanjutnya
Jelajahi lebih banyak format file dan jenis tabel: Buat tabel eksternal OSS yang memetakan ke format lain seperti ORC. Lihat Buat tabel eksternal OSS.
Ekspor hasil kueri: Unduh hasil kueri dari MaxCompute ke komputer lokal Anda. Lihat Jalankan pernyataan SQL dan ekspor data hasilnya.
Bersihkan resource: Hapus tabel eksternal atau Proyek MaxCompute jika tidak lagi diperlukan untuk menghindari biaya yang tidak perlu. Lihat Hapus tabel atau Proyek MaxCompute.