All Products
Search
Document Center

Simple Log Service:Menggabungkan logstore dengan tabel eksternal OSS

Last Updated:Mar 26, 2026

Saat menganalisis log, Anda mungkin perlu menggabungkannya dengan data dari sumber eksternal. Topik ini menjelaskan cara mengaitkan LogStore di Simple Log Service dengan tabel eksternal OSS.

Prasyarat

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

  • Indeks telah dibuat. Untuk informasi selengkapnya, lihat Membuat indeks.

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

Informasi latar belakang

Sebuah perusahaan pembayaran menggunakan Simple Log Service untuk mengumpulkan log waktu nyata mengenai perilaku pembayaran pengguna, termasuk metode pembayaran dan jumlahnya. Perusahaan tersebut juga menyimpan data atribut pengguna—seperti lokasi, usia, dan jenis kelamin—di OSS. Untuk menganalisis bagaimana atribut-atribut tersebut memengaruhi kebiasaan pembayaran, mesin kueri dan analisis Simple Log Service memungkinkan Anda mengaitkan LogStore dengan penyimpanan eksternal, seperti database MySQL atau OSS. Anda kemudian dapat menggunakan klausa JOIN SQL untuk menggabungkan data atribut pengguna dengan data perilaku guna menganalisis metrik terkait pengguna.

Mengaitkan LogStore dengan tabel eksternal OSS memberikan manfaat berikut:

  • Penghematan 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 transfer data.

  • Pengurangan beban O&M: Menghilangkan kebutuhan untuk memindahkan data ke dalam satu sistem penyimpanan.

  • Hemat waktu: Dapatkan hasil analisis dalam hitungan detik dengan menggunakan SQL. Anda juga dapat menyimpan analisis yang sering digunakan sebagai grafik untuk akses instan 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 Anda inginkan.

    image

  4. Pada tab Log Storage > Logstores, klik LogStore yang Anda inginkan.

    image

  5. Masukkan pernyataan kueri dan analisis serta pilih rentang waktu.

    Gunakan pernyataan SQL untuk mendefinisikan penyimpanan eksternal virtual dan memetakannya ke file OSS. Dalam contoh ini, penyimpanan 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='<yourAccessKeyID>',accesskey='<yourAccessKeySecret>',bucket='testoss',objects=ARRAY['user.csv'],type='oss')

    Jika result bernilai true pada output, 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.

    (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. Kami menyarankan menggunakan Pasangan Kunci Akses milik Pengguna RAM yang memiliki izin untuk mengakses data OSS. Untuk mempelajari cara memberikan izin kepada Pengguna RAM, lihat Memberikan izin kepada Pengguna RAM. Untuk mempelajari cara mendapatkan Pasangan Kunci Akses, lihat Pasangan Kunci Akses.

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

    Accesskey

    yourAccessKeySecret

    Bucket

    Nama bucket OSS yang menyimpan file CSV.

    examplebucket

    Objects

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

    • Jika Anda menentukan direktori, akhiri dengan /. Misalnya, 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

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

    oss

  6. Verifikasi bahwa penyimpanan eksternal telah dibuat.

    Jalankan pernyataan berikut. Jika kueri mengembalikan data dari file CSV, penyimpanan eksternal berhasil dibuat. Ganti user_meta1 dengan nama penyimpanan eksternal Anda.

    * | select * from user_meta1

    验证结果

  7. Gunakan klausa JOIN untuk mengkueri data lintas LogStore dan tabel eksternal OSS.

    Jalankan kueri berikut untuk menggabungkan log dari LogStore Anda dengan file OSS berdasarkan ID pengguna. Hal ini memperkaya data log. Dalam pernyataan ini, test_accesslog adalah nama LogStore, l adalah alias-nya, dan user_meta1 adalah penyimpanan eksternal yang telah Anda definisikan. Ganti nilai-nilai tersebut dengan nilai aktual Anda.

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

    Contoh kueri JOIN:

    • Menganalisis permintaan akses dari pengguna dengan jenis kelamin berbeda.

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

      性别访问

    • Menganalisis permintaan akses dari pengguna dengan usia berbeda.

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

      年龄访问

    • Menganalisis tren akses pengguna dengan usia berbeda dari waktu ke waktu.

      * | 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

      时间访问