JSON eşlemesi

Alma kaynak dosyanız JSON biçiminde olduğunda gelen verileri tabloların içindeki sütunlarla eşlemek için JSON eşlemesini kullanın.

Eşleme listesindeki her öğe, belirli bir sütun için eşlemeyi tanımlar. Bu öğeler üç özellikten oluşturulur: column, datatypeve properties. Veri eşlemelerine genel bakış bölümünde daha fazla bilgi edinin.

Her JSON eşleme öğesi aşağıdaki isteğe bağlı özelliklerden birini içermelidir:

Özellik Tür Description
Yol string Değer ile $ başlıyorsa, JSON belgesindeki alanın JSON yolu olarak yorumlanır ve bu da tablodaki sütunun içeriği olur. Belgenin tamamını belirten JSON yolu şeklindedir $. Değer ile $ başlamıyorsa sabit değer olarak yorumlanır. Özel karakterler içeren JSON yollarından ['Özellik Adı'] olarak kaçış karakteri kullanılmalıdır. Daha fazla bilgi için bkz. JSONPath söz dizimi.
ConstValue string JSON dosyasının içindeki bir değer yerine bir sütun için kullanılacak sabit değer.
Dönüşüm string Eşleme dönüştürmeleri ile içeriğe uygulanması gereken dönüştürme.

Önemli

Kuyruğa alınan alım için:

  • Eşlemede başvuruda bulunılan tablo veritabanında yoksa, tüm sütunlar için geçerli veri türlerinin belirtildiğinden otomatik olarak oluşturulur.
  • Eşlemede başvuruda bulunılan bir sütun tabloda yoksa, sütun için geçerli bir veri türü belirtildiğinden, bu sütun için ilk veri alımında son sütun olarak tabloya otomatik olarak eklenir. Eşlemeye yeni sütunlar eklemek için .alter alma eşleme komutunu kullanın.
  • Veri alımı özellikleri kullanılarak toplu olarak oluşturulur. Farklı ConstValue değerleri gibi daha farklı alım eşleme özellikleri kullanıldıkça, alma işlemi o kadar parçalanır ve bu da performans düşüşlerine yol açabilir.

Örnekler

[
  {"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
  {"Column": "event_name",      "Properties": {"Path": "$.Event.Name"}},
  {"Column": "event_type",      "Properties": {"Path": "$.Event.Type"}},
  {"Column": "source_uri",      "Properties": {"Transform": "SourceLocation"}},
  {"Column": "source_line",     "Properties": {"Transform": "SourceLineNumber"}},
  {"Column": "event_time",      "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

Yukarıdaki eşleme, yönetim komutunun bir parçası .ingest olarak sağlandığında JSON dizesi olarak seri hale getirilir.

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "json",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Path": "$.Obj.Property"}},
        {"Column": "column_b", "Properties": {"Path": "$.Property"}},
        {"Column": "custom_column", "Properties": {"Path": "$.[\'Property name with space\']"}}
      ]
      ```
  )

Önceden oluşturulmuş eşleme

Eşleme önceden oluşturulduğunda, yönetim komutunda eşlemeye .ingest ada göre başvurun.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json",
        ingestionMappingReference = "Mapping_Name"
    )

Kimlik eşleme

Eşleme şeması tanımlamadan alma sırasında JSON eşlemesini kullanın (bkz. kimlik eşlemesi).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json"
    )

JSON eşlemesini kopyalama

Aşağıdaki işlemi kullanarak var olan bir tablonun JSON eşlemesini kopyalayabilir ve aynı eşlemeye sahip yeni bir tablo oluşturabilirsiniz:

  1. Eşlemesini kopyalamak istediğiniz tabloda aşağıdaki komutu çalıştırın:

    .show table TABLENAME ingestion json mappings
    | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'")
    | project formatted_mapping
    
  2. Aynı eşlemeye sahip yeni bir tablo oluşturmak için yukarıdaki komutun çıktısını kullanın:

    .create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD