Sumber data LogHub (SLS) memungkinkan Anda membaca dan menulis data ke Simple Log Service (SLS). Topik ini menjelaskan dukungan DataWorks terhadap sinkronisasi data untuk LogHub (SLS).
Batasan
Saat Data Integration melakukan penulisan offline ke LogHub (SLS), duplikasi data dapat terjadi jika suatu tugas dijalankan ulang setelah failover karena LogHub (SLS) tidak bersifat idempoten.
Tipe bidang yang didukung
Data Integration mendukung pembacaan dan penulisan tipe bidang LogHub (SLS) berikut.
Tipe bidang | Pembacaan offline (LogHub (SLS) Reader) | Penulisan offline (LogHub (SLS) Writer) | Pembacaan real-time |
STRING | Didukung | Didukung | Didukung |
Detail:
Saat menulis data ke LogHub (SLS) dalam mode offline
Semua tipe data yang didukung dikonversi ke tipe STRING sebelum ditulis ke LogHub (SLS). Tabel berikut mencantumkan konversi tipe data untuk writer LogHub (SLS).
Tipe internal Data Integration yang didukung
Tipe data saat menulis ke LogHub (SLS)
LONG
STRING
DOUBLE
STRING
STRING
STRING
DATE
STRING
BOOLEAN
STRING
BYTES
STRING
Saat membaca data dari LogHub (SLS) dalam mode real-time
Bidang metadata berikut disertakan secara default.
Bidang sinkronisasi real-time LogHub (SLS)
Tipe data
Deskripsi
__time__
STRING
Bidang cadangan SLS: __time__. Waktu log yang ditentukan saat data log ditulis. Ini adalah stempel waktu UNIX dalam satuan detik.
__source__
STRING
Bidang cadangan SLS: __source__. Perangkat sumber log.
__topic__
STRING
Bidang cadangan SLS: __topic__. Nama topik.
__tag__:__receive_time__
STRING
Waktu saat log tiba di server. Jika Anda mengaktifkan fitur pencatatan alamat IP publik, server akan menambahkan bidang ini ke log mentah saat diterima. Ini adalah stempel waktu UNIX dalam satuan detik.
__tag__:__client_ip__
STRING
Alamat IP publik perangkat sumber log. Jika Anda mengaktifkan fitur pencatatan alamat IP publik, server akan menambahkan bidang ini ke log mentah saat diterima.
__tag__:__path__
STRING
Jalur file log yang dikumpulkan oleh Logtail. Logtail secara otomatis menambahkan bidang ini ke log.
__tag__:__hostname__
STRING
Hostname mesin tempat Logtail mengumpulkan data. Logtail secara otomatis menambahkan bidang ini ke log.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat infotips parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Saat LogHub digunakan sebagai sumber, Anda dapat memfilter data menggunakan sintaks kueri LogHub atau pernyataan Structured Process Language (SPL). Untuk informasi lebih lanjut tentang sintaks tersebut, lihat Lampiran 2: Sintaks SPL untuk pemfilteran.
Konfigurasikan tugas sinkronisasi offline tabel tunggal
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di antarmuka tanpa kode dan Konfigurasikan tugas di editor kode.
CatatanSaat mengonfigurasi tugas sinkronisasi di antarmuka tanpa kode, pastikan format parameter sesuai dengan format yang dijelaskan di Lampiran 1: Contoh skrip dan deskripsi parameter.
Untuk informasi tentang semua parameter dan contoh skrip untuk editor kode, lihat Lampiran 1: Contoh skrip dan deskripsi parameter.
Konfigurasikan tugas sinkronisasi real-time tabel tunggal
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi real-time di DataStudio dan Konfigurasikan tugas sinkronisasi real-time di Data Integration.
Konfigurasikan tugas sinkronisasi real-time seluruh database
Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi real-time seluruh database.
FAQ
Terdapat data di bidang sumber LogHub, tetapi kosong setelah sinkronisasi.
Bidang yang dibaca dari LogHub selama pemetaan bidang tidak seperti yang diharapkan.
Untuk FAQ Data Integration lainnya, lihat FAQ Data Integration.
Lampiran 1: Contoh skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengatur parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"LogHub",// Nama plug-in.
"parameter":{
"datasource":"",// Sumber data.
"column":[// Bidang.
"col0",
"col1",
"col2",
"col3",
"col4",
"C_Category",
"C_Source",
"C_Topic",
"C_MachineUUID", // Topik.
"C_HostName", // Hostname.
"C_Path", // Jalur.
"C_LogTime" // Waktu kejadian.
],
"beginDateTime":"",// Waktu mulai untuk konsumsi data.
"batchSize":"",// Jumlah entri data yang diambil dari Simple Log Service sekaligus.
"endDateTime":"",// Waktu akhir untuk konsumsi data.
"fieldDelimiter":",",// Pemisah kolom.
"logstore":""// Nama Logstore tujuan.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan laju data tidak dibatasi. Jika throttle diatur ke true, laju data dibatasi.
"concurrent":1, // Jumlah pekerjaan konkuren.
"mbps":"12"// Laju data maksimum. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
endPoint | Titik akhir Simple Log Service. Titik akhir adalah URL yang digunakan untuk mengakses proyek dan data lognya. Titik akhir terkait dengan wilayah Alibaba Cloud tempat proyek berada dan nama proyek. Untuk titik akhir setiap wilayah, lihat Titik akhir. | Ya | Tidak ada |
accessId | ID AccessKey yang digunakan untuk mengakses Simple Log Service. ID ini mengidentifikasi pengguna. | Ya | Tidak ada |
accessKey | Rahasia AccessKey yang digunakan untuk mengakses Simple Log Service. Rahasia ini mengautentikasi pengguna. | Ya | Tidak ada |
project | Nama proyek Simple Log Service tujuan. Proyek adalah unit manajemen sumber daya di Simple Log Service yang digunakan untuk mengisolasi dan mengontrol sumber daya. | Ya | Tidak ada |
logstore | Nama Logstore tujuan. Logstore adalah unit untuk pengumpulan, penyimpanan, dan kueri data log di Simple Log Service. | Ya | Tidak ada |
batchSize | Jumlah entri data yang diambil dari Simple Log Service sekaligus. | Tidak | 128 |
column | Nama kolom dalam setiap entri data. Anda dapat mengonfigurasi metadata dari Simple Log Service sebagai kolom sinkronisasi. Simple Log Service mendukung metadata seperti topik, pengidentifikasi unik kelompok mesin, hostname, jalur, dan waktu log. Catatan Nama kolom bersifat case-sensitive. Untuk informasi tentang cara menulis metadata, lihat Kelompok mesin Simple Log Service. | Ya | Tidak ada |
beginDateTime | Offset awal untuk konsumsi data. Ini adalah waktu saat data log tiba di LogHub (SLS). Parameter ini menentukan awal rentang waktu, yang bersifat inklusif. Waktu harus berupa string dalam format yyyyMMddHHmmss, misalnya 20180111013000. Anda dapat menggunakan parameter ini dengan parameter penjadwalan DataWorks. Misalnya, pada tab Scheduling Configuration halaman pengeditan node, atur Parameters menjadi Catatan
| Ya | Tidak ada |
endDateTime | Offset akhir untuk konsumsi data. Parameter ini menentukan akhir rentang waktu, yang bersifat eksklusif. Waktu harus berupa string dalam format yyyyMMddHHmmss, misalnya 20180111013010. Anda dapat menggunakan parameter ini dengan parameter penjadwalan DataWorks. Misalnya, pada tab Scheduling Configuration halaman pengeditan node, atur Parameters menjadi endDateTime=${yyyymmdd}. Kemudian, atur Log End Time menjadi ${endDateTime}000000. Ini mengatur waktu akhir log menjadi pukul 00:00:00 pada hari setelah waktu data. Untuk informasi lebih lanjut, lihat Format yang didukung untuk parameter penjadwalan. Penting
| Ya | Tidak ada |
query | Memfilter data di LogHub menggunakan sintaks kueri LogHub atau pernyataan SPL. SPL (Structured Process Language) adalah sintaks yang digunakan oleh SLS untuk memproses log. | Ya | Tidak ada |
Jika data hilang setelah dibaca dari LogHub, buka konsol LogHub dan periksa apakah bidang metadata receive_time berada dalam rentang waktu yang dikonfigurasi untuk tugas tersebut.
Contoh skrip Writer
{
"type": "job",
"version": "2.0",// Nomor versi.
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "LogHub",// Nama plug-in.
"parameter": {
"datasource": "",// Sumber data.
"column": [// Bidang.
"col0",
"col1",
"col2",
"col3",
"col4",
"col5"
],
"topic": "",// Pilih topik.
"batchSize": "1024",// Jumlah catatan dalam satu pengiriman batch.
"logstore": ""// Nama Logstore Simple Log Service tujuan.
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""// Jumlah catatan kesalahan.
},
"speed": {
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan laju data tidak dibatasi. Jika throttle diatur ke true, laju data dibatasi.
"concurrent":3, // Jumlah pekerjaan konkuren.
"mbps":"12"// Laju data maksimum. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}Parameter skrip Writer
Writer LogHub (SLS) mengambil data dari reader melalui kerangka kerja Data Integration, lalu mengonversi tipe data Data Integration yang didukung ke tipe STRING. Ketika jumlah catatan mencapai batchSize yang ditentukan, data didorong ke LogHub (SLS) dalam satu batch menggunakan Simple Log Service Java SDK.
Parameter | Deskripsi | Wajib | Nilai default |
endpoint | Titik akhir Simple Log Service. Titik akhir adalah URL yang digunakan untuk mengakses proyek dan data lognya. Titik akhir terkait dengan wilayah Alibaba Cloud tempat proyek berada dan nama proyek. Untuk titik akhir setiap wilayah, lihat: Titik akhir. | Ya | Tidak ada |
accessKeyId | AccessKeyId yang digunakan untuk mengakses Simple Log Service. | Ya | Tidak ada |
accessKeySecret | AccessKeySecret yang digunakan untuk mengakses Simple Log Service. | Ya | Tidak ada |
project | Nama proyek Simple Log Service tujuan. | Ya | Tidak ada |
logstore | Nama Logstore tujuan. Logstore adalah unit untuk pengumpulan, penyimpanan, dan kueri data log di Simple Log Service. | Ya | Tidak ada |
topic | Nama topik di Simple Log Service tujuan. | Tidak | String kosong |
batchSize | Jumlah entri data yang disinkronkan ke LogHub (SLS) sekaligus. Nilai default adalah 1.024. Nilai maksimum adalah 4.096. Catatan Ukuran data yang disinkronkan ke LogHub (SLS) dalam satu batch tidak boleh melebihi 5 MB. Sesuaikan jumlah entri yang didorong sekaligus berdasarkan ukuran satu entri data. | Tidak | 1.024 |
column | Nama kolom dalam setiap entri data. | Ya | Tidak ada |
Lampiran 2: Sintaks SPL untuk pemfilteran
Saat LogHub digunakan sebagai sumber, Anda dapat memfilter data dari LogHub menggunakan sintaks kueri LogHub atau pernyataan Structured Process Language (SPL). Tabel berikut menjelaskan sintaks tersebut.
Untuk informasi lebih lanjut tentang SPL, lihat Sintaks SPL.
Skenario | Pernyataan SQL | Pernyataan SPL |
Pemfilteran data | |
|
Pemrosesan dan pemfilteran bidang | Pilih bidang tertentu dan ubah namanya: |
|
Pembersihan data (memanggil fungsi SQL) | Konversi tipe data, uraikan waktu, dan sebagainya: | Konversi tipe data, uraikan waktu, dan sebagainya: |
Ekstraksi bidang | Ekstraksi ekspresi reguler: Ekstraksi JSON: |
|