Topik ini menjelaskan cara membuat tabel eksternal untuk mengaitkan Simple Log Service (SLS) dengan Object Storage Service (OSS).
Prasyarat
-
Anda telah mengumpulkan log. Untuk informasi selengkapnya, lihat Pengumpulan data.
-
Anda telah mengaktifkan dan mengonfigurasi indeks. Untuk informasi selengkapnya, lihat Buat indeks.
-
Anda telah membuat bucket OSS. Untuk informasi selengkapnya, lihat Buat bucket.
-
File CSV telah diunggah ke Bucket OSS. Untuk informasi selengkapnya, lihat Unggah file.
PentingAnda dapat mengaitkan beberapa file OSS. Ukuran maksimum satu file adalah 50 MB. Kompresi tidak didukung. Ekspresi reguler tidak didukung untuk parameter.
Manfaat
Query terfederasi pada data di Object Storage Service (OSS) memberikan manfaat berikut:
-
Penghematan biaya: Simpan data yang jarang diperbarui di OSS untuk meminimalkan biaya penyimpanan. Anda juga dapat membaca data melalui jaringan internal guna menghindari biaya transfer data.
-
Pengurangan beban operasional: Gunakan platform analitik terfederasi ringan tanpa perlu memigrasikan data ke sistem penyimpanan tunggal.
-
Hemat waktu: Analisis data menggunakan SQL dan dapatkan hasil dalam hitungan detik. Anda dapat menyimpan kueri yang sering digunakan sebagai laporan untuk mengakses hasil secara langsung.
Prosedur
Masuk ke Konsol Simple Log Service.
Di bagian Projects, klik project yang diinginkan.

Di tab , klik logstore yang diinginkan.

-
Masukkan pernyataan kueri dan klik Search & Analyze.
Gunakan pernyataan SQL untuk mendefinisikan tabel eksternal virtual yang memetakan ke file OSS.
* | create table <foreign table> (<Schema>) with (endpoint='oss-cn-${your_region_name}-internal.aliyuncs.com',accessid='yourAccessKeyID',accesskey ='yourAccessKeySecret',bucket='<your bucket name>',objects=ARRAY['my.csv'],type='oss')Dalam pernyataan kueri, definisikan nama tabel eksternal, skema tabel, dan parameter lainnya. Gunakan klausa WITH untuk menentukan informasi akses OSS dan informasi file. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Contoh
Foreign table name
Nama tabel eksternal virtual.
user_meta1
Table schema
Nama kolom dan tipe data tabel.
(userid bigint, nick varchar, gender varchar, province varchar, age bigint)
Endpoint
Titik akhir untuk mengakses OSS. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir.
PentingAnda harus menggunakan titik akhir jaringan internal. Titik akhir publik tidak didukung.
oss-cn-hangzhou-internal.aliyuncs.com
Accessid
ID AccessKey dan AccessKey Secret dari Akun Alibaba Cloud. Kami menyarankan Anda menggunakan Pasangan Kunci Akses milik Pengguna RAM yang memiliki izin untuk mengakses sumber data OSS. Untuk informasi tentang cara memberikan izin kepada Pengguna RAM, lihat Berikan izin kepada Pengguna RAM. Untuk informasi tentang cara mendapatkan Pasangan Kunci Akses, lihat Pasangan Kunci Akses.
LTAI****************
Accesskey
yourAccessKeySecret
Bucket
Nama bucket OSS tempat file CSV disimpan.
examplebucket
Objects
File CSV atau direktori OSS yang akan dikueri. Parameter objects merupakan array yang dapat berisi beberapa file atau direktori. Perhatikan hal berikut:
-
Saat Anda menentukan direktori, namanya harus diakhiri dengan garis miring (
/). Misalnya, jika Anda menentukantest_dir/, tabel eksternal akan dikaitkan dengan semua file CSV dalam direktori test_dir/ pada bucket yang ditentukan. -
Batasan: Jumlah total file tidak boleh melebihi 100.
-
'user.csv'
-
'test_dir/'
-
'user.csv','test_dir/','my_dir/'
Type
Jenis sumber data eksternal. Nilainya harus oss.
oss
Contoh perintah:
* | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou-internal.aliyuncs.com',accessid='yourAccessKeyID',accesskey='yourAccessKeySecret',bucket='examplebucket',objects=ARRAY['my.csv'],type='oss')Jika nilai bidang result pada output adalah true, pernyataan berhasil dieksekusi.
-
-
Verifikasi bahwa tabel eksternal telah dibuat.
Eksekusi pernyataan berikut, dengan External storage sebagai nama tabel eksternal yang Anda definisikan di Langkah 4. Jika perintah mengembalikan konten tabel yang sebelumnya Anda definisikan, tabel eksternal berhasil didefinisikan.
* | select * from <foreign table> -
Gunakan klausa JOIN untuk melakukan query terfederasi pada data dari SLS dan OSS.
Sebagai contoh, jalankan kueri berikut untuk menggabungkan userid dari log Anda dengan userid dalam file OSS guna memperkaya data log.
CatatanLog yang dikumpulkan harus mencakup field userid.
* | select * from <logstore> l join <foreign table> u on l.userid = u.useridParameter
Deskripsi
Contoh
Logstore
Nama Logstore yang ingin Anda kueri.
test_logstore
Foreign table name
Nama tabel eksternal yang Anda definisikan di Langkah 4.
user_meta1
Setelah menjalankan query terfederasi, hasilnya berisi field log (seperti
action,blood,magic,money,network,payment,status, danuseragent) serta field atribut pengguna dari tabel eksternal (sepertinick,gender,province, danage). Hal ini menunjukkan bahwa data log berhasil diperkaya dengan melakukan join berdasarkanuserid.
Untuk contoh praktik terbaik, lihat Kueri dan analisis data dengan mengaitkan Logstore dengan tabel eksternal OSS.