Tüm Ürünler
Search
Belge Merkezi

DataWorks:LogHub (SLS) veri kaynağı

Son Güncelleme:Oct 05, 2026

LogHub (SLS) veri kaynağı, DataWorks içinde Simple Log Service (SLS) ile diğer veri kaynakları arasında çift yönlü veri senkronizasyonu sağlar.

Özellikler

Simple Log Service (SLS) aşağıdaki veri senkronizasyonu senaryolarını destekler:

  • Farklı bölgelerdeki LogHub ile MaxCompute gibi veri kaynakları arasında veri senkronizasyonu.

  • Farklı Alibaba Cloud hesaplarındaki LogHub ile MaxCompute gibi veri kaynakları arasında veri senkronizasyonu.

  • Aynı Alibaba Cloud hesabındaki LogHub ile MaxCompute gibi veri kaynakları arasında veri senkronizasyonu.

  • Genel cloud ve China Finance Cloud hesapları arasındaki LogHub ile MaxCompute gibi veri kaynakları arasında veri senkronizasyonu.

Sınırlamalar

Data Integration, LogHub (SLS) üzerine çevrimdışı yazma işlemi yaparken bir yük devretme sonrası görev yeniden çalıştırılırsa veri çoğaltması oluşabilir. Bunun nedeni LogHub (SLS) işleminin idempotent olmamasıdır.

Desteklenen alan türleri

Data Integration, okuma ve yazma işlemleri için aşağıdaki LogHub (SLS) alan türlerini destekler.


Alan türü


Çevrimdışı okuma (LogHub (SLS) Reader)


Çevrimdışı yazma (LogHub (SLS) Writer)


Gerçek zamanlı okuma


STRING


Desteklenir


Desteklenir


Desteklenir

Ayrıntılar:

  • Veriler çevrimdışı modda LogHub (SLS) üzerine yazılırken

    Tüm veri türleri LogHub (SLS) üzerine yazılmadan önce STRING türüne dönüştürülür. Aşağıdaki tabloda LogHub (SLS) Writer tarafından yapılan veri türü dönüşümleri listelenmiştir.


    Desteklenen Data Integration dahili türü


    LogHub (SLS) üzerine yazıldığında veri türü


    LONG


    STRING


    DOUBLE


    STRING


    STRING


    STRING


    DATE


    STRING


    BOOLEAN


    STRING


    BYTES


    STRING

  • Veriler gerçek zamanlı modda LogHub (SLS) üzerinden okunurken

    Aşağıdaki meta veri alanları otomatik olarak dahil edilir.


    LogHub (SLS) gerçek zamanlı senkronizasyon alanı


    Veri türü


    Açıklama


    __time__


    STRING


    SLS ayrılmış alanı: __time__, günlük verileri yazıldığında günlük zamanını belirtir. Değer saniye cinsinden UNIX zaman damgasıdır.


    __source__


    STRING


    SLS ayrılmış alanı: __source__, günlüğün kaynak cihazını belirtir.


    __topic__


    STRING


    SLS ayrılmış alanı: __topic__, konu adını belirtir.


    __tag__:__receive_time__


    STRING


    Günlüğün sunucuya ulaştığı zaman. Genel IP adreslerini kaydetme özelliğini etkinleştirdiğinizde, sunucu bu alanı ham günlüğe alındığında ekler. Değer saniye cinsinden UNIX zaman damgasıdır.


    __tag__:__client_ip__


    STRING


    Günlüğün kaynak cihazının genel IP adresi. Genel IP adreslerini kaydetme özelliğini etkinleştirdiğinizde, sunucu bu alanı ham günlüğe alındığında ekler.


    __tag__:__path__


    STRING


    Logtail tarafından toplanan günlük dosyasının yolu. Logtail bu alanı günlüğe otomatik olarak ekler.


    __tag__:__hostname__


    STRING


    Logtail'in veri topladığı kaynak makinenin ana bilgisayar adı. Logtail bu alanı günlüğe otomatik olarak ekler.

Veri kaynağı oluşturma

Veri kaynağı yapılandırma

Bir veri senkronizasyonu görevi geliştirmeden önce, DataWorks'te ilgili veri kaynağını oluşturmanız gerekir. Prosedür için bkz. Veri kaynağı oluşturma. Yapılandırma parametrelerinin ayrıntılı açıklamaları için yapılandırma sayfasında görüntülenen araç ipuçlarına bakın.

Alibaba Cloud hesapları arasında veri kaynağı oluşturma

Aşağıdaki örnekte, B Hesabı'nın Data Integration'da bir senkronizasyon görevini nasıl yapılandırarak A Hesabı'ndan LogHub verilerini B Hesabı'nın MaxCompute hizmetine senkronize edeceği açıklanmaktadır. Hesaplar arası senaryolar için özel notlar şöyledir:

  1. A Hesabı'nın AccessKey ID ve AccessKey Secret bilgilerini kullanarak bir LogHub veri kaynağı oluşturun.

    Bu durumda, B Hesabı A Hesabı altındaki tüm SLS projelerinden veri senkronize edebilir.

  2. A Hesabı altındaki RAM kullanıcısı A1'in AccessKey ID ve AccessKey Secret bilgilerini kullanarak bir LogHub veri kaynağı oluşturun.

    • A Hesabı, RAM kullanıcısı A1'e SLS için genel izinleri, yani AliyunLogFullAccess ve AliyunLogReadOnlyAccess ilkelerini verir. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma ve izin verme.

      Not

      Bir RAM kullanıcısına AliyunLogFullAccess ve AliyunLogReadOnlyAccess sistem ilkelerini ekledikten sonra, RAM kullanıcısı Alibaba Cloud hesabı altındaki tüm SLS kaynaklarını sorgulayabilir.

    • A Hesabı, RAM kullanıcısı A1'e SLS için özel bir izin verir.

      A Hesabı ile RAM console > Permission Management > Permission Policy sayfasına giriş yapın ve Create Permission Policy seçeneğine tıklayın.

      İlgili yetkilendirme hakkında bilgi için bkz. Erişim kontrolüne genel bakış ve RAM özel yetkilendirme örnekleri.

      Aşağıdaki ilkeye göre RAM kullanıcısı A1'i yetkilendirdikten sonra, B Hesabı yalnızca RAM kullanıcısı A1 aracılığıyla project_name1 ve project_name2 SLS projelerinden veri senkronize edebilir.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "log:Get*",
                      "log:List*",
                      "log:CreateConsumerGroup",
                      "log:UpdateConsumerGroup",
                      "log:DeleteConsumerGroup",
                      "log:ListConsumerGroup",
                      "log:ConsumerGroupUpdateCheckPoint",
                      "log:ConsumerGroupHeartBeat",
                      "log:GetConsumerGroupCheckPoint"
                  ],
                  "Resource": [
                      "acs:log:*:*:project/project_name1",
                      "acs:log:*:*:project/project_name1/*",
                      "acs:log:*:*:project/project_name2",
                      "acs:log:*:*:project/project_name2/*"
                  ],
                  "Effect": "Allow"
              }
          ]
      }

Veri senkronizasyonu görevi geliştirme

Bir senkronizasyon görevini yapılandırmak için giriş noktası ve prosedür hakkında bilgi almak için aşağıdaki yapılandırma kılavuzlarına bakın.

Not

LogHub veri kaynağı kaynak olarak kullanıldığında, görev yapılandırması sırasında LogHub sorgu sözdizimi veya SPL ifadeleri (SLS Processing Language, SLS'nin günlükleri işlemek için kullandığı sözdizimi) kullanarak LogHub'daki verileri filtreleyebilirsiniz. Sözdizimi hakkında ayrıntılı bilgi için bkz. Ek: LogHub veri filtreleme.

Tek tablo çevrimdışı senkronizasyon görevi yapılandırma kılavuzu

Tek tablo gerçek zamanlı senkronizasyon görevi yapılandırma kılavuzu

Prosedür için bkz. Tek tablo gerçek zamanlı senkronizasyon görevi yapılandırma.

Tam veritabanı gerçek zamanlı senkronizasyon ve diğer veritabanı düzeyinde senkronizasyon yapılandırma kılavuzu

Prosedür için bkz. Tam veritabanı gerçek zamanlı senkronizasyon görevi yapılandırma.

SSS

Data Integration ile ilgili daha yaygın sorunlar için bkz. Data Integration SSS.

Ek 1: Betik demosu ve parametre açıklaması

Kod düzenleyiciyi kullanarak toplu senkronizasyon görevi yapılandırma

Toplu senkronizasyon görevini kod düzenleyiciyi kullanarak yapılandırmak istiyorsanız, betikteki ilgili parametreleri birleşik betik formatı gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Betik modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak toplu senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader betik demosu

Logstore'dan okuma demosu

{
 "type":"job",
 "version":"2.0",// The version number.
 "steps":[
     {
         "stepType":"LogHub",// The plug-in name.
         "parameter":{
             "datasource":"",// The data source.
             "column":[// The columns.
                 "col0",
                 "col1",
                 "col2",
                 "col3",
                 "col4",
                 "__category__",
                 "__source__",
                 "__topic__", // The log topic.
                 "__machineUUID__", // The unique identifier of the collection machine.
                 "__tag__:__hostname__", // The hostname.
                 "__tag__:__path__", // The path.
                 "__time__" // The event time.
             ],
             "beginDateTime":"",// The start time for data consumption.
             "batchSize":"",// The number of data entries queried from SLS at a time.
             "endDateTime":"",// The end time for data consumption.
             "fieldDelimiter":",",// The column delimiter.
             "logstore":""// The name of the destination Logstore.
         },
         "name":"Reader",
         "category":"reader"
     },
     {
         "stepType":"stream",
         "parameter":{},
         "name":"Writer",
         "category":"writer"
     }
 ],
 "setting":{
     "errorLimit":{
         "record":"0"// The number of error records.
     },
     "speed":{
         "throttle":true,// If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled.
            "concurrent":1 // The number of concurrent threads.
            "mbps":"12",// The throttling rate. 1 mbps = 1 MB/s.
     }
 },
 "order":{
     "hops":[
         {
             "from":"Reader",
             "to":"Writer"
         }
     ]
 }
}

SPL ile veri işleme sonrası Logstore'dan okuma demosu

{
 "type":"job",
 "version":"2.0",// The version number.
 "steps":[
     {
         "stepType":"LogHub",// The plug-in name.
         "parameter":{
             "datasource":"",// The data source.
             "column":[// The columns.
                 "col100",
                 "col1"
             ],
             "beginDateTime":"",// The start time for data consumption.
             "batchSize":"",// The number of data entries queried from SLS at a time.
             "endDateTime":"",// The end time for data consumption.
             "fieldDelimiter":",",// The column delimiter.
             "logstore":"",// The name of the destination Logstore.
             "query":"* | where regexp_like(col0, '[0-9]+') | project col100=col0, col1 " // SPL
         },
         "name":"Reader",
         "category":"reader"
     },
     {
         "stepType":"stream",
         "parameter":{},
         "name":"Writer",
         "category":"writer"
     }
 ],
 "setting":{
     "errorLimit":{
         "record":"0"// The number of error records.
     },
     "speed":{
         "throttle":true,// If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled.
            "concurrent":1 // The number of concurrent threads.
            "mbps":"12",// The throttling rate. 1 mbps = 1 MB/s.
     }
 },
 "order":{
     "hops":[
         {
             "from":"Reader",
             "to":"Writer"
         }
     ]
 }
}

SPL ile alan genişletme sonrası Logstore'dan okuma demosu

{
 "type":"job",
 "version":"2.0",// The version number.
 "steps":[
     {
         "stepType":"LogHub",// The plug-in name.
         "parameter":{
             "datasource":"",// The data source.
             "column":[// The columns.
               "col0",
               "col1",
               "col2",
               "col3",
               "col4",
               "__category__",
               "__source__",
               "__topic__", // The log topic.
               "__machineUUID__", // The unique identifier of the collection machine.
               "__tag__:__hostname__", // The hostname.
               "__tag__:__path__", // The path.
               "__time__", // The event time.
               "col100",
               "col101"
             ],
             "beginDateTime":"",// The start time for data consumption.
             "batchSize":"",// The number of data entries queried from SLS at a time.
             "endDateTime":"",// The end time for data consumption.
             "fieldDelimiter":",",// The column delimiter.
             "logstore":"",// The name of the destination Logstore.
             "query":"* | where regexp_like(col0, '[0-9]+') | extend col100=cast(col2 as BIGINT), extend col101=date_parse(col3, '%Y-%m-%d %H:%i') ",// SPL
         },
         "name":"Reader",
         "category":"reader"
     },
     {
         "stepType":"stream",
         "parameter":{},
         "name":"Writer",
         "category":"writer"
     }
 ],
 "setting":{
     "errorLimit":{
         "record":"0"// The number of error records.
     },
     "speed":{
         "throttle":true,// If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled.
            "concurrent":1 // The number of concurrent threads.
            "mbps":"12",// The throttling rate. 1 mbps = 1 MB/s.
     }
 },
 "order":{
     "hops":[
         {
             "from":"Reader",
             "to":"Writer"
         }
     ]
 }
}

Reader betik parametreleri

Parametre

Açıklama

Zorunlu

Varsayılan değer

endPoint

Simple Log Service uç noktası, bir projeye ve günlük verilerine erişmek için kullanılan URL'dir. Projenin bulunduğu Alibaba Cloud bölgesi ve proje adı ile ilişkilidir. Her bölgenin hizmet uç noktaları için bkz. Uç noktalar.

Evet

Yok

accessId

Simple Log Service'e erişmek ve kullanıcıyı tanımlamak için kullanılan AccessKey ID.

Evet

Yok

accessKey

Kullanıcı kimlik doğrulaması için Simple Log Service'e erişmek üzere kullanılan AccessKey.

Evet

Yok

project

Hedef Simple Log Service projesinin adı. Proje, Simple Log Service'deki kaynak yönetim birimidir ve kaynakları yalıtmak ve yönetmek için kullanılır.

Evet

Yok

logstore

Hedef Logstore'un adı. Logstore, Simple Log Service'de günlük verilerini toplamak, depolamak ve sorgulamak için kullanılan birimdir.

Evet

Yok

batchSize

Tek bir sorguda Simple Log Service'den alınan veri girişi sayısı.

Hayır

128

column

Her veri girişindeki sütun adları. Simple Log Service meta veri alanlarını senkronizasyon sütunları olarak yapılandırabilirsiniz. Simple Log Service; günlük konusu, toplama makinesinin benzersiz tanımlayıcısı, ana bilgisayar adı, yol ve günlük zamanı gibi meta verileri destekler.

Not

Sütun adları büyük/küçük harfe duyarlıdır. Daha fazla bilgi için aşağıdaki yapılandırılabilir sütun değerleri bölümüne bakın.

Evet

Yok

beginDateTime

Veri tüketiminin başlangıç zamanı; bu, günlük verilerinin LogHub (SLS) üzerine geldiği zamandır. Bu parametre, zaman aralığının sol sınırını (dahil) belirtir. Bu parametreyi yyyyMMddHHmmss formatında bir zaman dizesi olarak ayarlayın (örneğin, 20180111013000). Bu parametreyi DataWorks zamanlama parametreleriyle birlikte kullanabilirsiniz.

Örneğin, düğüm düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde, Parameter alanında beginDateTime=${yyyymmdd-1} değerini ayarlayın ve ardından Log Start Time değerini ${beginDateTime}000000 olarak ayarlayın. Bu, günlük başlangıç zamanının iş tarihinin 00:00:00 saati olduğunu gösterir. Daha fazla bilgi için bkz. Zamanlama parametreleri.

Not
  • beginDateTime ve endDateTime birlikte kullanılmalıdır.

  • Tüm verileri senkronize etmek için beginDateTime değerini verilerin başlangıç zamanına, endDateTime değerini ise geçerli güne ayarlayabilirsiniz. Ancak bu durum, veri hacmi nedeniyle büyük miktarda kaynak tüketebilir. Kaynak grubu teknik özelliklerini gerektiği şekilde ayarlayın.

  • Alt düzey zaman filtresi alanı, yazma zaman damgasına (günlüğün LogHub (SLS) üzerine geldiği zaman) sabitlenmiştir. beginDateTime yalnızca veri tüketiminin zaman aralığını kontrol eder. Alt düzey filtre alanını değiştirmez ve start_time gibi özel bir iş alanına değiştirilemez.

Evet

Yok

endDateTime

Veri tüketiminin bitiş zamanı; bu, zaman aralığının sağ sınırıdır (hariç). Bu parametreyi yyyyMMddHHmmss formatında bir zaman dizesi olarak ayarlayın (örneğin, 20180111013010). Bu parametreyi DataWorks zamanlama parametreleriyle birlikte kullanabilirsiniz.

Örneğin, düğüm düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde, Parameter alanında endDateTime=${yyyymmdd} değerini ayarlayın ve ardından Log End Time değerini ${endDateTime}000000 olarak ayarlayın. Bu, günlük bitiş zamanının iş tarihinden sonraki günün 00:00:00 saati olduğunu gösterir. Daha fazla bilgi için bkz. Zamanlama parametreleri.

Önemli
  • endDatetime için belirtilen zaman (2038-01-19 11:14:07 +8:00) tarihinden önce olmalıdır. Aksi takdirde veriler alınamayabilir.

  • Önceki zamanlama döngüsünün endDateTime değeri, sonraki zamanlama döngüsünün beginDateTime değeriyle aynı veya ondan sonra olmalıdır. Aksi takdirde bazı zaman aralıklarındaki veriler alınamayabilir.

  • Alt düzey zaman filtresi alanı, yazma zaman damgasına (günlüğün LogHub (SLS) üzerine geldiği zaman) sabitlenmiştir. endDateTime yalnızca veri tüketiminin zaman aralığını kontrol eder. Alt düzey filtre alanını değiştirmez ve start_time gibi özel bir iş alanına değiştirilemez.

Evet

Yok

query

LogHub sorgu sözdizimi veya SPL ifadeleri (SLS Processing Language, SLS'nin günlükleri işlemek için kullandığı sözdizimdir) kullanarak LogHub'daki verileri filtreler.

Evet

Yok

Not

LogHub'dan okurken veri eksikliği yaşıyorsanız, LogHub konsolunda meta veri alanı receive_time değerinin görev için yapılandırılan zaman aralığı içinde olup olmadığını kontrol edin.

Özel iş alanlarına göre bölümlendirme

LogHub (SLS) çevrimdışı senkronizasyon görevleri için zaman filtresi her zaman __tag__:__receive_time__ temel alınır. start_time gibi özel iş alanlarına göre doğrudan filtreleme veya bölümlendirme desteklenmez. Verileri MaxCompute üzerinde özel bir iş alanına göre bölmek için aşağıdaki geçici çözümü kullanın:

  1. Tüm LogHub (SLS) verilerini bir MaxCompute ara tablosuna senkronize etmek için bir çevrimdışı senkronizasyon görevi yapılandırın (bir bölüm alanı belirtmeden).

  2. Bir MaxCompute SQL düğümü oluşturun ve verileri özel bir iş alanına (örneğin start_time) göre hedef bölümlenmiş tabloya yazmak için aşağıdaki ifadeyi çalıştırın:

    INSERT OVERWRITE TABLE target_table PARTITION(start_time)
    SELECT col1, col2, start_time
    FROM temp_table;
  3. Bölüm değerlerini dinamik olarak iletmek ve günlük veya saatlik otomatik bölümlendirmeyi uygulamak için zamanlama parametrelerini kullanın.

Writer betik demosu

{
    "type": "job",
    "version": "2.0",// The version number.
    "steps": [
        { 
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "LogHub",// The plug-in name.
            "parameter": {
                "datasource": "",// The data source.
                "column": [// The columns.
                    "col0",
                    "col1",
                    "col2",
                    "col3",
                    "col4",
                    "col5"
                ],
                "topic": "",// The selected topic.
                "batchSize": "1024",// The number of records to submit at a time.
                "logstore": ""// The name of the destination LogService Logstore.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// The number of error records.
        },
        "speed": {
            "throttle":true,// If throttle is set to false, the mbps parameter does not take effect and bandwidth is not throttled. If throttle is set to true, bandwidth is throttled.
            "concurrent":3, // The number of concurrent threads.
            "mbps":"12"// The throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Writer betik parametreleri

Not

LogHub (SLS) Writer, Data Integration çerçevesi aracılığıyla Reader tarafından oluşturulan verileri alır ve ardından desteklenen tüm veri türlerini tek tek STRING türüne dönüştürür. Belirtilen batchSize değerine ulaşıldığında, veriler LogService Java SDK kullanılarak tek bir partide LogHub (SLS) üzerine gönderilir.

Parametre

Açıklama

Zorunlu

Varsayılan değer

endpoint

Log Service uç noktası, bir projeye ve günlük verilerine erişmek için kullanılan URL'dir. Alibaba Cloud bölgesi ve proje adı tarafından belirlenir. Her bölgenin uç noktaları için bkz. Hizmet uç noktaları.

Evet

Yok

accessKeyId

Log Service'e erişmek için kullanılan AccessKeyId.

Evet

Yok

accessKeySecret

Log Service'e erişmek için kullanılan AccessKeySecret.

Evet

Yok

project

Hedef Log Service projesinin adı.

Evet

Yok

logstore

Hedef Logstore'un adı. Logstore, Log Service'de günlük verilerini toplamak, depolamak ve sorgulamak için kullanılan birimdir.

Evet

Yok

topic

Hedef SLS'deki topic adı.

Hayır

Boş dize

batchSize

Tek seferde LogHub (SLS) üzerine senkronize edilen veri kaydı sayısı. Varsayılan değer: 1.024. Maksimum değer: 4.096.

Not

LogHub (SLS) üzerine tek parti yazım için veri boyutu 5 MB'yi aşmamalıdır. Tekil kayıt boyutunuza göre partide gönderilen kayıt sayısını ayarlayın.

Hayır

1.024

column

Her veri kaydındaki sütun adı.

Evet

Yok

Ek 2: LogHub SPL sözdizimi filtreleme

LogHub veri kaynağı olarak kullanıldığında, görev yapılandırması sırasında LogHub'daki verileri filtrelemek için LogHub sorgu sözdizimi veya SPL (SLS Processing Language) ifadelerini kullanabilirsiniz. Sözdizimi aşağıda açıklanmıştır:

Not

SPL hakkında daha fazla bilgi için bkz. SPL'ye genel bakış.

Senaryo

SQL ifadesi

SPL ifadesi

Veri filtreleme

SELECT * WHERE Type='write'

  • Koşullu filtreleme.

    * | where Type='write'
  • Bulanık sorgu.

    * | where Type like '%write%'
  • Düzenli ifade.

    * | where regexp_like(server_protocol, '\d+')
  • Diğerleri (SQL ifadeleri).

    * | where <sql-expr> 

Alan işleme ve seçimi

Belirli alanları seçin ve yeniden adlandırın:

SELECT "__tag__:node" AS node, path
  • Belirli alanları seçin ve yeniden adlandırın.

    * | project node="__tag__:node", path
  • Alanları desenlere göre seçin.

    * | project -wildcard "__tag__:*"
  • Diğer alanları etkilemeden belirli alanları yeniden adlandırın.

    * | project-rename node="__tag__:node"
  • Desenlere göre alanları hariç tutun.

    * | project-away -wildcard "__tag__:*"

Veri dönüştürme

(SQL işlevlerini çağırma)

Veri türlerini dönüştürün, zaman damgalarını ayrıştırın ve daha fazlasını yapın:

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

Veri türlerini dönüştürün, zaman damgalarını ayrıştırın ve daha fazlasını yapın:

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

Alan çıkarma

Düzenli ifade çıkarma:

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

JSON çıkarma:

SELECT 
      CAST(Status AS BIGINT) AS Status, 
      date_parse(Time, '%Y-%m-%d %H:%i') AS Time
  • Düzenli ifade çıkarma: tek seferlik eşleştirme.

    * | parse-regexp protocol, '(\w+)/(\d+)' as scheme, version
  • JSON çıkarma: tam genişletme.

    * | parse-json -path='$.0' content
  • CSV çıkarma.

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

Ek 3: Yapılandırılabilir sütun değerleri

Tam alan okuma mantığı yalnızca column tam olarak bir * veya "*" öğesi içerdiğinde tetiklenir. Aksi takdirde, her column öğesi normal eşleştirme sırasına göre işlenir. Örneğin, ["*", "__time__"] şeklinde yapılandırırsanız, * tam alan okuma mantığını tetiklemez. Bunun yerine, normal bir alan adı olarak eşleştirilir ve genellikle null çıktısı verir.

Normal eşleştirme sırası şöyledir: normal günlük içerik alanları → Reader yerleşik meta alan eşlemesi → tek tırnaklı sabitler → __tag__:<tagKey> → null. Normal bir günlük içerik alanının adı bir meta alan veya LogTag anahtarıyla aynıysa, normal günlük içerik alanı önceliklidir.

Aşağıdaki tabloda, SLS ayrılmış alanlarının alan tanımlarına dayanarak, LogHub Reader column ayarlarında kullanıcıya yönelik yapılandırmalar için yaygın olarak kullanılan ve önerilen alanlar listelenmiştir. Bir alanın değerinin bulunup bulunmadığı, gerçek günlük içeriğine, LogGroup meta verilerine ve alınan LogTags'e bağlıdır.


Yapılandırma


Davranış


Normal alan adı, örneğin content veya level


Her günlük girişinin içerik alanlarından (contents) değeri anahtara göre okur. Alan adları büyük/küçük harfe duyarlıdır.


__time__ veya __logtime__


Her günlük girişinin log.getTime() değerini okur; bu, saniye düzeyinde zaman damgası olan günlük zamanıdır.


__source__


LogGroup'un source değerini okur; bu, günlük kaynak cihazına karşılık gelir.


__topic__


LogGroup'un topic değerini okur; bu, günlük konusuna karşılık gelir.


__category__


LogGroup'un category değerini okur.


__machineUUID__


LogGroup'un machineUUID değerini okur.


__tag__:__receive_time__


LogTags'den __receive_time__ değerini okur; bu, günlüğün sunucuya ulaştığı zamanı gösterir. Bu etiketin günlükte gerçekten mevcut olması gerekir.


__tag__:__client_ip__


LogTags'den __client_ip__ değerini okur; bu, günlük kaynak cihazının genel IP adresini gösterir. Bu etiketin günlükte gerçekten mevcut olması gerekir.


__tag__:__path__


LogTags'den __path__ değerini okur; bu, genellikle Logtail tarafından toplanan günlük dosyası yolunu gösterir. Bu etiketin günlükte gerçekten mevcut olması gerekir.


__tag__:__hostname__


LogTags'den __hostname__ değerini okur; bu, genellikle Logtail'in veri topladığı kaynak makinenin ana bilgisayar adını gösterir. Bu etiketin günlükte gerçekten mevcut olması gerekir.


__tag__:<tagKey>


Diğer belirtilen LogTags'leri okur, örneğin __tag__:__pack_id__ veya __tag__:__user_defined_id__.


__raw_log__ veya __raw__


Bu alan bir günlük içerik alanı olarak mevcutsa, normal bir alan adı olarak okunabilir.


'sabitsal değer'


Bir sabit dize çıkarır (dıştaki tek tırnaklar kaldırıldıktan sonraki içerik).


["*"]


Yalnızca column tek bir * içerdiğinde etkili olur. Tüm normal günlük içerik alanlarını okur, bunları anahtara göre sıralar ve her sütunu key:value formatında çıkarır.


Eşleşmeyen alanlar


Hata vermeden null çıktısı verir.

Yapılandırma örneği:

"column": [
  "content",
  "__time__",
  "__source__",
  "__tag__:__receive_time__",
  "'constant_value'"
]