All Products
Search
Document Center

Simple Log Service:Gabungkan logstore dengan tabel eksternal OSS

Last Updated:Jun 21, 2026

Saat melakukan kueri dan analisis data log, Anda sering perlu menggabungkannya dengan data dari tabel eksternal untuk memperkaya analisis. Topik ini menjelaskan cara menjalankan kueri JOIN pada data dari logstore Simple Log Service dan tabel eksternal di Object Storage Service (OSS).

Prasyarat

  • Data log dikumpulkan secara terus-menerus. Untuk informasi selengkapnya, lihat Pengumpulan data.

  • Indeks telah dibuat untuk data log. Untuk informasi selengkapnya, lihat Buat indeks.

  • Bucket OSS telah dibuat. Untuk informasi selengkapnya, lihat Buat bucket.

Latar Belakang

Sebagai contoh, sebuah perusahaan pembayaran ingin menganalisis bagaimana faktor-faktor seperti usia pengguna, wilayah, dan jenis kelamin memengaruhi kebiasaan pembayaran. Perusahaan tersebut menggunakan Simple Log Service untuk mengumpulkan log perilaku pembayaran secara real-time, yang mencakup metode pembayaran dan jumlahnya. Data atribut pengguna, seperti wilayah, usia, dan jenis kelamin, disimpan di OSS. Untuk mengatasi skenario ini, mesin kueri dan analisis Simple Log Service memungkinkan Anda menjalankan kueri JOIN pada data dari logstore dan sumber data eksternal, seperti database MySQL atau OSS. Anda dapat menggunakan sintaks SQL JOIN untuk menggabungkan data atribut pengguna dengan data perilaku guna menganalisis metrik yang terkait dengan atribut pengguna.

Menggabungkan data log dengan data di OSS memberikan manfaat berikut:

  • Mengurangi biaya: Anda dapat menyimpan data yang jarang diperbarui di OSS untuk mengurangi biaya penyimpanan. Anda juga dapat membaca data melalui jaringan internal untuk menghindari biaya lalu lintas outbound.

  • Mengurangi beban operasional: Anda tidak perlu memigrasikan data ke dalam satu sistem penyimpanan.

  • Menghemat waktu: Gunakan SQL untuk menganalisis data dan mendapatkan hasil dalam hitungan detik. Anda juga dapat menyimpan kueri yang sering digunakan sebagai grafik untuk akses cepat ke hasilnya.

Prosedur

  1. Buat file CSV dan unggah ke OSS.

    Penting

    Anda dapat mengaitkan beberapa file OSS. Ukuran maksimum satu file adalah 50 MB. File terkompresi tidak didukung. Ekspresi reguler tidak didukung dalam parameter.

    1. Buat file bernama user.csv dan tempel konten berikut ke dalamnya.

      userid,nick,gender,province,age
      1,User A,male,Shanghai,18
      2,User B,female,Zhejiang,19
      3,User C,male,Guangdong,18
    2. Unggah file user.csv ke OSS. Untuk informasi selengkapnya, lihat Unggah objek.

  2. Masuk ke Konsol Simple Log Service.

  3. Pada bagian Projects, klik proyek yang diinginkan.

    image

  4. Pada tab Log Storage > Logstores, klik logstore yang diinginkan.

    image

  5. Masukkan pernyataan kueri dan analisis, lalu pilih rentang waktu.

    Gunakan pernyataan SQL untuk mendefinisikan tabel eksternal virtual yang dipetakan ke objek OSS. Dalam contoh ini, tabel eksternal diberi nama user_meta1.

    * | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou-internal.aliyuncs.com',accessid='<your AccessKey ID>',accesskey='<your AccessKey secret>',bucket='testoss',objects=ARRAY['user.csv'],type='oss')

    Jika kueri mengembalikan result berupa true, pernyataan berhasil dieksekusi.

    Dalam pernyataan kueri, definisikan nama tabel eksternal, skema tabel, dan parameter lainnya. Gunakan klausa WITH untuk menentukan detail koneksi ke OSS dan informasi file target. Tabel berikut menjelaskan parameter-parameter tersebut.

    Parameter

    Deskripsi

    Contoh

    Foreign table name

    Nama tabel eksternal. Ini adalah nama tabel virtual.

    user_meta1

    Schema

    Menentukan properti tabel, termasuk nama kolom dan tipe data. Tipe kolom yang didukung adalah bigint, boolean, double, dan varchar.

    (userid bigint, nick varchar, gender varchar, province varchar, age bigint)

    Endpoint

    Titik akhir untuk mengakses OSS. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir.

    Penting

    Anda harus menggunakan titik akhir internal. Titik akhir publik tidak didukung.

    oss-cn-hangzhou-internal.aliyuncs.com

    Accessid

    ID AccessKey dan Rahasia AccessKey Akun Alibaba Cloud Anda. Disarankan menggunakan pasangan AccessKey dari Pengguna RAM yang memiliki izin untuk mengakses data OSS. Untuk mempelajari cara memberikan izin kepada Pengguna RAM, lihat Berikan izin kepada Pengguna RAM. Untuk mempelajari cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.

    LTAI****************

    Accesskey

    yourAccessKeySecret

    Bucket

    Nama bucket OSS tempat file CSV disimpan.

    examplebucket

    Objects

    File atau direktori target di dalam bucket. Parameter objects bertipe ARRAY dan dapat berisi beberapa file atau direktori. Perhatikan hal berikut:

    • Saat Anda menentukan direktori, akhiri dengan /. Jika Anda menentukan direktori seperti test_dir/, tabel eksternal akan dikaitkan dengan semua file CSV di direktori OSS tersebut dalam bucket yang sesuai.

    • Batasan: Jumlah total file tidak boleh melebihi 100.

    • 'user.csv'

    • 'test_dir/'

    • 'user.csv','test_dir/','my_dir/'

    Type

    Diatur ke oss, yang menunjukkan bahwa tipe tabel eksternal adalah Object Storage Service (OSS).

    oss

  6. Verifikasi bahwa penyimpanan eksternal telah didefinisikan.

    Jalankan pernyataan berikut. Jika hasil yang dikembalikan berupa konten tabel yang sebelumnya Anda definisikan, penyimpanan eksternal berhasil didefinisikan. Dalam pernyataan ini, user_meta1 adalah penyimpanan eksternal yang Anda definisikan. Gantilah sesuai dengan kondisi aktual Anda.

    * | select * from user_meta1

    Sebagai contoh, jika hasilnya berisi bidang seperti userid, nick, gender, province, dan age beserta data yang sesuai, penyimpanan eksternal berhasil didefinisikan.

  7. Jalankan kueri JOIN pada logstore dan tabel eksternal OSS.

    Jalankan pernyataan kueri dan analisis berikut untuk mengaitkan ID log di Simple Log Service dengan userid di file OSS guna memperkaya informasi log. Dalam pernyataan ini, test_accesslog adalah nama Logstore, l adalah alias Logstore, dan user_meta1 adalah tabel penyimpanan eksternal yang Anda definisikan. Gantilah dengan nilai aktual Anda.

    * | select * from test_accesslog l join user_meta1 u on l.userid = u.userid

    Contoh kueri JOIN:

    • Hitung jumlah permintaan akses berdasarkan jenis kelamin.

      * | select u.gender, count(1) from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.gender

      性别访问

    • Hitung jumlah permintaan akses berdasarkan kelompok usia.

      * | select u.age, count(1) from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.age

      年龄访问

    • Analisis tren akses dari waktu ke waktu berdasarkan kelompok usia.

      * | select date_trunc('minute',__time__) as minute, count(1) ,u.age from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.age,minute

      时间访问