全部产品
Search
文档中心

DataWorks:Sumber data LogHub (SLS)

更新时间:Nov 11, 2025

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.

Catatan

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

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

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 beginDateTime=${yyyymmdd-1}. Kemudian, atur Log Start Time menjadi ${beginDateTime}000000. Ini mengatur waktu mulai log menjadi pukul 00:00:00 pada waktu data. Untuk informasi lebih lanjut, lihat Format yang didukung untuk parameter penjadwalan.

Catatan
  • Parameter beginDateTime dan endDateTime harus digunakan bersama.

  • Untuk menyinkronkan semua data, atur beginDateTime ke waktu mulai data dan endDateTime ke hari ini. Hal ini dapat mengonsumsi banyak sumber daya jika volume datanya besar. Sesuaikan spesifikasi kelompok sumber daya sesuai kebutuhan.

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
  • Waktu yang diatur untuk endDatetime harus lebih awal dari 2038-01-19 11:14:07 +08:00. Jika tidak, data mungkin gagal ditarik.

  • endDateTime epoch sebelumnya harus sama atau lebih baru dari beginDateTime epoch berikutnya. Jika tidak, data dari beberapa wilayah mungkin gagal ditarik.

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

Catatan

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

Catatan

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.

Catatan

Untuk informasi lebih lanjut tentang SPL, lihat Sintaks SPL.

Skenario

Pernyataan SQL

Pernyataan SPL

Pemfilteran data

SELECT * WHERE Type='write'

  • Pemfilteran kondisional.

    | where Type='write'
  • Kueri fuzzy.

    | where Type like '%write%'
  • Ekspresi reguler.

    | where regexp_like(server_protocol, '\d+')
  • Lainnya (ekspresi SQL).

    | where <sql-expr> 

Pemrosesan dan pemfilteran bidang

Pilih bidang tertentu dan ubah namanya:

SELECT "__tag__:node" AS node, path
  • Pilih bidang tertentu dan ubah namanya.

    | project node="__tag__:node", path
  • Pilih bidang berdasarkan pola.

    | project -wildcard "__tag__:*"
  • Ubah nama beberapa bidang tanpa memengaruhi bidang lainnya.

    | project-rename node="__tag__:node"
  • Kecualikan bidang berdasarkan pola.

    | project-away -wildcard "__tag__:*"

Pembersihan data

(memanggil fungsi SQL)

Konversi tipe data, uraikan waktu, dan sebagainya:

SELECT 
  CAST(Status AS BIGINT) AS Status, 
  date_parse(Time, '%Y-%m-%d %H:%i') AS Time

Konversi tipe data, uraikan waktu, dan sebagainya:

| extend Status=cast(Status as BIGINT), extend Time=date_parse(Time, '%Y-%m-%d %H:%i')

Ekstraksi bidang

Ekstraksi ekspresi reguler:

SELECT 
  CAST(Status AS BIGINT) AS Status, 
  date_parse(Time, '%Y-%m-%d %H:%i') AS Time

Ekstraksi JSON:

SELECT 
  CAST(Status AS BIGINT) AS Status, 
  date_parse(Time, '%Y-%m-%d %H:%i') AS Time
  • Ekstraksi ekspresi reguler: pencocokan sekali.

    | parse-regexp protocol, '(\w+)/(\d+)' as scheme, version
  • Ekstraksi JSON: ekspansi semua.

    | parse-json -path='$.0' content
  • Ekstraksi CSV.

    | parse-csv -delim='^_^' content as ip, time, host