Anda dapat mengkueri log secara real time di Konsol Simple Log Service dan mengirimkannya ke MaxCompute untuk analisis intelijen bisnis (BI) dan penambangan data. Topik ini menjelaskan cara mengirim log dari Simple Log Service ke MaxCompute.
Fitur ini telah dihentikan. Untuk mengirim log ke MaxCompute, lihat Kirim log ke MaxCompute (baru).
Prasyarat
Aktifkan MaxCompute dan buat tabel. Untuk informasi selengkapnya, lihat Buat tabel.
Batasan
-
Hanya Akun Alibaba Cloud yang dapat membuat pekerjaan pengiriman data. Pengguna RAM tidak dapat melakukan operasi ini.
-
Jangan kirim data dari Logstore yang berbeda ke tabel MaxCompute yang sama. Dalam kasus langka, hal ini dapat menyebabkan partisi data dalam tabel ditimpa.
-
Log yang berusia lebih dari 14 hari tidak dapat dikirim. Usia log ditentukan oleh field tereservasi
__time__. Log tersebut akan dibuang secara otomatis selama proses pengiriman. -
Saat Anda mengirim log dari Simple Log Service ke MaxCompute, tipe data DECIMAL, DATETIME, DATE, dan TIMESTAMP tidak didukung. Untuk informasi selengkapnya, lihat Tipe data (Versi 2.0).
-
Tabel berikut mencantumkan wilayah yang didukung. Jika proyek Simple Log Service Anda berada di wilayah yang tidak tercantum di bawah ini, gunakan DataWorks untuk sinkronisasi data. Untuk informasi selengkapnya, lihat Kirim data dari Simple Log Service menggunakan Data Integration.
Wilayah proyek Simple Log Service
Wilayah proyek MaxCompute
China (Qingdao)
China (Shanghai)
China (Beijing)
China (Beijing), China (Shanghai)
China (Zhangjiakou)
China (Shanghai)
China (Hohhot)
China (Shanghai)
China (Hangzhou)
China (Shanghai)
China (Shanghai)
China (Shanghai)
China (Shenzhen)
China (Shenzhen), China (Shanghai)
China (Hong Kong)
China (Shanghai)
Langkah 1: Buat pekerjaan pengiriman data
Masuk ke Konsol Simple Log Service.
Pada bagian Projects, klik proyek yang diinginkan.

-
Pada tab , klik ikon > di samping Logstore yang ingin dikelola, lalu pilih .
-
Klik Enable Shipping.
-
Pada kotak dialog Shipping notes, klik Ship Directly.
-
Pada halaman Ship data to MaxCompute, konfigurasikan aturan pengiriman lalu klik OK.
Tabel berikut menjelaskan parameter utama.
Parameter
Deskripsi
Region
Wilayah tempat Anda dapat membuat proyek MaxCompute bervariasi tergantung pada wilayah proyek Simple Log Service Anda. Untuk informasi selengkapnya, lihat Batasan.
Job name
Nama pekerjaan pengiriman data.
MaxCompute project
Nama proyek MaxCompute.
MaxCompute table
Nama tabel MaxCompute.
Column mapping
Pada kotak teks kiri, masukkan nama field log untuk dipetakan ke kolom tabel MaxCompute. Pada kotak teks kanan, masukkan nama kolom tabel MaxCompute yang sesuai. Untuk informasi selengkapnya, lihat Pemetaan model data.
Penting-
Simple Log Service mengirim log ke MaxCompute dengan memetakan field log ke kolom tabel MaxCompute secara berurutan. Mengubah nama kolom di tabel MaxCompute tidak memengaruhi pengiriman data. Jika Anda mengubah skema tabel MaxCompute, Anda harus mengonfigurasi ulang pemetaan antara field log dan kolom tabel.
-
Nama field log pada kotak teks kiri tidak boleh mengandung tanda kutip ganda (""), tanda kutip tunggal (''), atau spasi.
Jika sebuah log berisi dua field dengan nama yang sama, seperti request_time, Layanan Log menampilkan salah satu field sebagai request_time_0. Kedua field tersebut tetap disimpan sebagai request_time di Layanan Log. Saat mengonfigurasi aturan pengiriman, Anda hanya dapat menggunakan nama field asli request_time.
Jika sebuah log berisi field dengan nama yang sama, Layanan Log secara acak mengirim nilai salah satu field tersebut. Kami menyarankan agar Anda tidak menyertakan field dengan nama yang sama dalam log Anda.
Partition key mapping
Pada kotak teks kiri, masukkan nama field log untuk dipetakan ke kolom kunci partisi MaxCompute. Pada kotak teks kanan, masukkan nama kolom kunci partisi yang sesuai di tabel MaxCompute. Untuk informasi selengkapnya, lihat Pemetaan model data.
CatatanAnda dapat mengonfigurasi hingga tiga kolom kunci partisi. Berhati-hatilah saat menggunakan field kustom untuk kunci partisi. Setiap pekerjaan pengiriman data harus menghasilkan kurang dari 512 partisi. Jika tidak, pekerjaan gagal menulis data ke tabel MaxCompute, dan seluruh batch data tidak dapat dikirim.
Time partition format
Format partisi waktu. Untuk contoh konfigurasi dan detail parameter, lihat Contoh dan Java SimpleDateFormat.
Catatan-
Format partisi waktu hanya berlaku ketika partition field diatur ke
__partition_time__. -
Jangan gunakan format tanggal dengan presisi tingkat detik, karena hal ini dapat dengan mudah menyebabkan jumlah partisi dalam tabel melebihi batas 60.000.
-
Jumlah partisi data dalam satu pekerjaan pengiriman data harus kurang dari 512.
Import interval
Interval, dalam detik, untuk membuat pekerjaan pengiriman data baru. Nilai default adalah 1800.
Saat interval ini berakhir, pekerjaan pengiriman data baru akan dibuat secara otomatis.
Setelah pengiriman data diaktifkan, log biasanya diimpor ke MaxCompute dalam waktu satu jam setelah ditulis ke Logstore. Setelah impor berhasil, Anda dapat melihat data log di MaxCompute. Untuk informasi selengkapnya, lihat Bagaimana cara memeriksa integritas data setelah saya mengirim log ke MaxCompute?.
-
Langkah 2: Lihat data di MaxCompute
Setelah data dikirim, Anda dapat melihatnya di MaxCompute. Output berikut menunjukkan contoh data. Anda dapat menggunakan Data IDE, tool pengembangan data besar yang terintegrasi dengan MaxCompute, untuk mengonsumsi data guna analisis BI dan penambangan data.
| log_source | log_time | log_topic | time | ip | thread | log_extract_others | log_partition_time | status |
+------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+
| 10.10.*.* | 1453899013 | | 27/Jan/2016:20:50:13 +0800 | 10.10.*.* | 414579208 | {"url":"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1","user-agent":"aliyun-sdk-java"} | 2016_01_27_20_50 | 200 |
+------------+------------+-----------+-----------+-----------+-----------+------------------+--------------------+-----------+
Berikan izin kepada Simple Log Service
Jika Anda menghapus lalu membuat ulang tabel di DataWorks, otorisasi untuk Simple Log Service dicabut. Anda harus memberikan izin yang diperlukan secara manual lagi.
-
Masuk ke Konsol DataWorks.
-
Di pojok kiri atas halaman, pilih wilayah.
-
Pada panel navigasi sebelah kiri, klik Workspaces.
-
Pada halaman Workspaces, arahkan kursor ke bagian Shortcuts untuk ruang kerja target, lalu klik Data Development.
-
Buat alur kerja.
-
Pada halaman Data Development, pilih .
-
Pada kotak dialog Create Workflow, konfigurasikan parameter Workflow Name lalu klik Create.
-
-
Buat node.
-
Pada halaman Data Development, pilih .
-
Pada kotak dialog Create Node, konfigurasikan parameter Name dan Path, lalu klik Commit.
Atur parameter Path ke alur kerja yang Anda buat pada langkah 5.
-
-
Pada editor node, jalankan perintah berikut untuk memberikan izin yang diperlukan.

Perintah
Deskripsi
ADD USER aliyun$shennong_open@aliyun.com;Menambahkan pengguna ke proyek MaxCompute.
shennong_open@aliyun.comadalah akun tetap untuk Simple Log Service dan tidak dapat diubah.GRANT Read, List ON PROJECT {ODPS_PROJECT_NAME} TO USER aliyun$shennong_open@aliyun.com;Memberikan izin kepada pengguna untuk membaca dan melihat daftar sumber daya dalam proyek MaxCompute.
{ODPS_PROJECT_NAME} adalah nama proyek MaxCompute. Ganti placeholder ini dengan nama proyek yang sebenarnya.
GRANT Describe, Alter, Update ON TABLE {ODPS_TABLE_NAME} TO USER aliyun$shennong_open@aliyun.com;Memberikan izin Describe, Alter, dan Update kepada pengguna.
{ODPS_TABLE_NAME} adalah nama tabel MaxCompute. Ganti placeholder ini dengan nama tabel yang sebenarnya.
SHOW GRANTS FOR aliyun$shennong_open@aliyun.com;Memverifikasi apakah otorisasi berhasil.
Jika perintah mengembalikan output berikut, otorisasi berhasil.
A projects/{ODPS_PROJECT_NAME}: List | Read A projects/{ODPS_PROJECT_NAME}/tables/{ODPS_TABLE_NAME}: Describe | Alter | Update
Operasi terkait
Setelah membuat pekerjaan pengiriman data, Anda dapat membuka halaman MaxCompute (formerly ODPS) shipping management untuk memodifikasi konfigurasi pengiriman, menonaktifkan pekerjaan, melihat status pekerjaan dan pesan error, serta mencoba ulang pekerjaan yang gagal.
-
Modifikasi konfigurasi pengiriman
Klik Shipping Configuration dan modifikasi konfigurasi pengiriman. Untuk informasi selengkapnya tentang parameter, lihat Langkah 1: Buat pekerjaan pengiriman data. Jika ingin menambahkan kolom baru, Anda dapat memodifikasi informasi kolom tabel tujuan di MaxCompute.
-
Nonaktifkan pekerjaan pengiriman data
Klik Disable shipping untuk menonaktifkan pekerjaan pengiriman data.
-
Lihat status dan pesan error pekerjaan pengiriman data
Simple Log Service memungkinkan Anda melihat status semua pekerjaan pengiriman data yang telah dijalankan dalam dua hari terakhir.
-
Status pekerjaan
Status
Deskripsi
Success
Pekerjaan pengiriman data berhasil diselesaikan.
Running
Pekerjaan pengiriman data sedang berlangsung. Periksa statusnya nanti.
Failed
Pekerjaan gagal karena error yang mencegah percobaan ulang otomatis, seperti skema tabel MaxCompute yang tidak kompatibel atau izin yang tidak mencukupi.
Simple Log Service memungkinkan Anda mencoba ulang semua pekerjaan yang gagal dalam dua hari terakhir.
-
Pesan error
Jika pekerjaan pengiriman data gagal, pesan error yang sesuai akan ditampilkan di konsol.
Pesan error
Solusi yang direkomendasikan
Proyek MaxCompute tidak ada.
Di konsol MaxCompute, periksa apakah proyek MaxCompute yang dikonfigurasi ada. Jika tidak ada, buatlah. Simple Log Service tidak mencoba ulang otomatis pekerjaan yang gagal karena error ini. Setelah masalah teratasi, Anda harus mencoba ulang pekerjaan secara manual.
Tabel MaxCompute tidak ada.
Di konsol MaxCompute, periksa apakah tabel MaxCompute yang dikonfigurasi ada. Jika tidak ada, buatlah. Simple Log Service tidak mencoba ulang otomatis pekerjaan yang gagal karena error ini. Setelah masalah teratasi, Anda harus mencoba ulang pekerjaan secara manual.
Simple Log Service tidak diotorisasi untuk mengakses proyek atau tabel MaxCompute.
Di konsol MaxCompute, periksa apakah izin telah diberikan kepada akun Simple Log Service. Jika belum, berikan izin tersebut lagi. Untuk informasi selengkapnya, lihat Berikan izin kepada Simple Log Service. Simple Log Service tidak mencoba ulang otomatis pekerjaan yang gagal karena error ini. Setelah masalah teratasi, Anda harus mencoba ulang pekerjaan secara manual.
Terjadi error MaxCompute.
Pesan error menunjukkan bahwa pekerjaan pengiriman data menerima error dari MaxCompute. Untuk informasi selengkapnya, lihat dokumentasi MaxCompute yang relevan atau hubungi tim MaxCompute untuk bantuan. Simple Log Service mencoba ulang otomatis pekerjaan yang gagal dalam dua hari terakhir.
Konfigurasi field impor di Simple Log Service tidak sesuai dengan kolom tabel MaxCompute.
Konfigurasi ulang pemetaan antara kolom tabel MaxCompute dan field log Simple Log Service. Anda harus mencoba ulang pekerjaan secara manual setelah masalah teratasi.
-
Coba ulang pekerjaan
Untuk error internal, Simple Log Service mendukung percobaan ulang otomatis berdasarkan kebijakan yang telah ditentukan. Dalam kasus lain, Anda harus mencoba ulang pekerjaan secara manual. Interval minimum untuk percobaan ulang otomatis adalah 30 menit. Jika pekerjaan gagal, tunggu 30 menit sebelum mencoba ulang. Simple Log Service mendukung percobaan ulang semua pekerjaan yang gagal dalam dua hari terakhir.
Jika Anda perlu segera mencoba ulang pekerjaan yang gagal, klik Retry all failed tasks. Anda juga dapat mencoba ulang pekerjaan tertentu menggunakan API atau SDK.
-
Referensi
-
__partition_time__
Metode umum untuk memfilter data di MaxCompute adalah menggunakan waktu log sebagai field partisi, yang memungkinkan Anda memfilter data berdasarkan waktu.
-
Format
Nilai field
__partition_time__dihitung berdasarkan nilai field__time__di Simple Log Service dan dibulatkan ke bawah berdasarkan format waktu partisi. Nilai kolom kunci partisi tanggal disejajarkan berdasarkan interval pengiriman untuk mencegah jumlah partisi dalam satu tabel melebihi batas MaxCompute.Sebagai contoh, jika waktu log di Simple Log Service adalah
27/Jan/2016 20:50:13 +0800, Simple Log Service menghitung nilai field tereservasi__time__sebagai stempel waktu UNIX1453899013. Tabel berikut menjelaskan nilai kolom kunci partisi waktu untuk konfigurasi yang berbeda.Interval pengiriman
Format waktu partisi
__partition_time__
1800
yyyy_MM_dd_HH_mm_00
2016_01_27_20_30_00
1800
yyyy-MM-dd HH:mm
2016-01-27 20:30
1800
yyyyMMdd
20160127
3600
yyyyMMddHHmm
201601272000
3600
yyyy_MM_dd_HH
2016_01_27_20
-
Penggunaan
Anda dapat menggunakan field
__partition_time__untuk memfilter data, yang membantu menghindari pemindaian seluruh tabel. Sebagai contoh, untuk mengkueri data log tanggal 26 Januari 2016, Anda dapat menggunakan pernyataan kueri berikut.select * from {ODPS_TABLE_NAME} where log_partition_time >= "2015_01_26" and log_partition_time < "2016_01_27";
-
-
__extract_others__
__extract_others__adalah string JSON. Sebagai contoh, untuk mendapatkan konten user-agent dari field ini, Anda dapat menggunakan pernyataan kueri berikut.select get_json_object(sls_extract_others, "$.user-agent") from {ODPS_TABLE_NAME} limit 10;Catatan-
get_json_object adalah UDF standar yang disediakan oleh MaxCompute. Hubungi tim MaxCompute untuk meminta izin menggunakan UDF standar ini. Untuk informasi selengkapnya, lihat UDF standar yang disediakan MaxCompute.
-
Contoh ini hanya untuk referensi. Dokumentasi resmi MaxCompute memiliki prioritas lebih tinggi.
-
-
Pemetaan model data
Saat Anda mengirim log dari Simple Log Service ke MaxCompute, terlibat pemetaan model data antara kedua layanan tersebut. Bagian berikut memberikan catatan dan contoh.
-
Tabel MaxCompute harus berisi setidaknya satu kolom data dan satu kolom kunci partisi.
-
Kami menyarankan Anda menggunakan field tereservasi Simple Log Service berikut:
__partition_time__,__source__, dan__topic__. -
Jumlah maksimum partisi dalam tabel MaxCompute adalah 60.000. Jika batas ini terlampaui, tidak ada data tambahan yang dapat ditulis ke tabel tersebut.
-
Pekerjaan pengiriman data dijalankan secara batch. Berhati-hatilah saat menetapkan kolom kunci partisi dan tipe datanya. Pastikan jumlah partisi data yang diproses dalam satu pekerjaan pengiriman data kurang dari 512. Jika tidak, seluruh batch data tidak dapat ditulis ke MaxCompute.
-
Field tereservasi sistem
__extract_others__memiliki nama lama_extract_others_yang juga didukung. -
Nilai kolom kunci partisi MaxCompute tidak boleh berupa kata tereservasi atau kata kunci MaxCompute. Untuk informasi selengkapnya, lihat Kata tereservasi dan kata kunci.
-
Nilai kolom kunci partisi MaxCompute tidak boleh kosong. Oleh karena itu, field yang dipetakan ke kolom kunci partisi harus berupa field tereservasi atau field log. Anda harus dapat menggunakan operator CAST untuk mengonversi nilai field bertipe string ke tipe data kolom kunci partisi yang sesuai. Log yang menghasilkan nilai kunci partisi kosong akan dibuang selama pengiriman.
-
Di Simple Log Service, satu field log hanya dapat dipetakan ke satu kolom tabel MaxCompute (kolom data atau kolom kunci partisi). Jika Anda memetakan field log yang sama ke kolom kedua, nilainya di kolom kedua tersebut akan menjadi null. Jika nilai null muncul di kolom kunci partisi, data tidak dapat dikirim.
Tabel berikut memberikan contoh hubungan pemetaan antara kolom MaxCompute dan field Simple Log Service. Untuk informasi selengkapnya tentang field tereservasi Simple Log Service, lihat Field tereservasi.
Tipe kolom MaxCompute
Kolom MaxCompute
Tipe MaxCompute
Field SLS
Tipe field SLS
Deskripsi
Kolom data
log_source
string
__source__
Field tereservasi
Sumber log.
log_time
bigint
__time__
Field tereservasi
Stempel waktu UNIX log, yaitu jumlah detik yang telah berlalu sejak 00:00:00 UTC pada 1 Januari 1970. Field ini sesuai dengan field Time dalam model data.
log_topic
string
__topic__
Field tereservasi
Topik log.
time
string
time
Field konten log
Untuk data yang dikumpulkan oleh Logtail, nilai field konten
timesering kali identik dengan nilai field tereservasi__time__.ip
string
ip
Field konten log
Field ini diurai dari konten log.
thread
string
thread
Field konten log
Field ini diurai dari konten log.
log_extract_others
string
__extract_others__
Field tereservasi
Field log lain yang tidak dipetakan dalam konfigurasi diserialisasi menjadi string JSON pasangan kunci-nilai. String JSON ini memiliki struktur tingkat tunggal dan tidak mendukung objek JSON bersarang di dalam field-nya.
Kolom kunci partisi
log_partition_time
string
__partition_time__
Field tereservasi
Field ini dihitung dengan menyelaraskan nilai field
__time__log. Granularitas partisi dapat dikonfigurasi.status
string
status
Field konten log
Field ini diurai dari konten log. Nilai field ini mendukung enumerasi untuk memastikan jumlah partisi tidak melebihi batas atas.
-