Aracılığıyla paylaş


Alım eşlemeleri

Şunlar için geçerlidir: ✅Microsoft FabricAzure Veri Gezgini

Alma eşlemeleri, gelen verileri tabloların içindeki sütunlara eşlemek için alım sırasında kullanılır.

Veri Gezgini hem satır odaklı (CSV, JSON, AVRO ve W3CLOGFILE) hem de sütun odaklı (Parquet ve ORC) farklı eşleme türlerini destekler.

Alma eşlemeleri alma komutunda tanımlanabilir veya önceden oluşturulmuş ve ingestionMappingReference parametreleri kullanılarak alma komutundan başvurulabilir. Alma işlemi, eşleme belirtilmeden mümkündür. Daha fazla bilgi için bkz . Kimlik eşleme.

Eşleme listesindeki her öğe üç alandan oluşturulur:

Özellik Zorunlu Açıklama
Sütun ✔️ Tablodaki hedef sütun adı.
Datatype Tabloda zaten yoksa eşlenmiş sütunun oluşturulacağı veri türü.
Properties Her eşleme türü sayfasında açıklandığı gibi her eşlemeye özgü özellikleri içeren özellik paketi.

Önemli

Kuyruğa alınan alma 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 bulunulan bir sütun tabloda yoksa, sütun için geçerli bir veri türü belirtildiğinde, 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.
  • Veriler alma ö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.

Desteklenen eşleme türleri

Aşağıdaki tablo, belirli bir biçimdeki dış verileri alırken veya sorgularken kullanılacak eşleme türlerini tanımlar.

Veri Biçimi Eşleme Türü
CSV CSV Eşlemesi
TSV CSV Eşlemesi
TSVe CSV Eşlemesi
PSV CSV Eşlemesi
SCSV CSV Eşlemesi
SOHsv CSV Eşlemesi
TXT CSV Eşlemesi
ÇİĞ CSV Eşlemesi
JSON JSON Eşlemesi
AVRO AVRO Eşlemesi
APACHEAVRO AVRO Eşlemesi
Parquet Parquet Eşlemesi
ORC ORC Eşlemesi
W3CLOGFILE W3CLOGFILE Eşlemesi

Alım eşleme örnekleri

Aşağıdaki örneklerde aşağıdaki şemaya sahip RawEvents tablosu kullanılır:

.create table RawEvents (timestamp: datetime, deviceId: guid, messageId: guid, temperature: decimal, humidity: decimal) 

Basit eşleme

Aşağıdaki örnekte, alma komutunda eşlemenin tanımlandığı alma işlemi gösterilmektedir. komutu url'den RawEvents tablosuna bir JSON dosyası alır. Eşleme, JSON dosyasındaki her alanın yolunu belirtir.

.ingest into table RawEvents ('https://kustosamplefiles.blob.core.windows.net/jsonsamplefiles/simple.json') 
    with (
            format = "json",
            ingestionMapping =
            ```
            [ 
              {"column":"timestamp","Properties":{"path":"$.timestamp"}},
              {"column":"deviceId","Properties":{"path":"$.deviceId"}},
              {"column":"messageId","Properties":{"path":"$.messageId"}},
              {"column":"temperature","Properties":{"path":"$.temperature"}},
              {"column":"humidity","Properties":{"path":"$.humidity"}}
            ]
            ```
          )

ingestionMappingReference ile eşleme

Önceden oluşturulmuş eşleme kullanarak aynı JSON dosyasını eşlemek için aşağıdaki komutla RawEventMapping alma eşleme başvurusunu oluşturun:

.create table RawEvents ingestion json mapping 'RawEventMapping' 
  ```
  [ 
    {"column":"timestamp","Properties":{"path":"$.timestamp"}},
    {"column":"deviceId","Properties":{"path":"$.deviceId"}},
    {"column":"messageId","Properties":{"path":"$.messageId"}},
    {"column":"temperature","Properties":{"path":"$.temperature"}},
    {"column":"humidity","Properties":{"path":"$.humidity"}}
  ]
  ```

Aşağıdaki komutla RawEventMapping alma eşleme başvurusunu kullanarak JSON dosyasını alın:

.ingest into table RawEvents ('https://kustosamplefiles.blob.core.windows.net/jsonsamplefiles/simple.json') 
  with (
          format="json",
          ingestionMappingReference="RawEventMapping"
        )

Kimlik eşleme

veya ingestionMapping özellikleri belirtilmeden ingestionMappingReference alma mümkündür. Veriler, tablonun şemasından türetilen bir kimlik veri eşlemesi kullanılarak eşlenir. Tablo şeması aynı kalır. format özelliği belirtilmelidir. Bkz . alma biçimleri.

Biçim türü Biçimlendir Eşleme mantığı
Sınırlayıcıyla ayrılmış veya tek satırlı biçimler gibi tanımlı sütun sırasına sahip tablosal veri biçimleri. CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw Tüm tablo sütunları, veri kaynağında göründükleri sırayla veri sütunlarına sırasıyla eşlenir. Sütun veri türü tablo şemasından alınır.
Adlandırılmış sütunlarla veya adlandırılmış alanlarla kayıtlarla biçimlendirin. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE Tüm tablo sütunları, aynı ada (büyük/küçük harfe duyarlı) sahip veri sütunlarına veya kayıt alanlarına eşlenir. Sütun veri türü tablo şemasından alınır.

Uyarı

Tablo şeması ile sütun veya alan veri türleri, sütun veya alan adları veya bunların sayısı gibi veri yapısı arasındaki uyuşmazlıklar boş veya yanlış veri alımına neden olabilir.

Eşleme dönüştürmeleri

Veri biçimi eşlemelerinden bazıları (Parquet, JSON ve AVRO), basit ve kullanışlı alma zamanı dönüştürmelerini destekler. Senaryonun alma zamanında daha karmaşık işleme gerektirdiği durumlarda, KQL ifadesi kullanarak basit işleme tanımlamaya olanak tanıyan Güncelleştirme ilkesini kullanın.

Yol bağımlı dönüştürme Açıklama Koşullar
PropertyBagArrayToDictionary gibi {events:[{"n1":"v1"},{"n2":"v2"}]}özelliklerin JSON dizisini sözlüğe dönüştürür ve gibi {"n1":"v1","n2":"v2"}geçerli JSON belgesine serileştirir. , , JSONParquetve AVRO eşleme türleri için ORCkullanılabilir.
SourceLocation Verileri sağlayan depolama yapıtı adı, dize (örneğin, blobun "BaseUri" alanı) yazın. , , CSV, JSON, Parquet, AVROve ORC eşleme türleri için W3CLOGFILEkullanılabilir.
SourceLineNumber Bu depolama yapıtına göre uzaklık, uzun yazın ('1' ile başlayıp yeni kayıt başına artırma). , , CSV, JSON, Parquet, AVROve ORC eşleme türleri için W3CLOGFILEkullanılabilir.
DateTimeFromUnixSeconds Unix saatini temsil eden sayıyı (1970-01-01'den itibaren saniye) UTC tarih saat dizesine dönüştürür. , , CSV, JSON, Parquetve AVRO eşleme türleri için ORCkullanılabilir.
DateTimeFromUnixMilliseconds Unix saatini temsil eden sayıyı (1970-01-01'den bu yana milisaniye) UTC tarih saat dizesine dönüştürür. , , CSV, JSON, Parquetve AVRO eşleme türleri için ORCkullanılabilir.
DateTimeFromUnixMicroseconds Unix saatini temsil eden sayıyı (1970-01-01'den bu yana mikrosaniye) UTC tarih saat dizesine dönüştürür. , , CSV, JSON, Parquetve AVRO eşleme türleri için ORCkullanılabilir.
DateTimeFromUnixNanoseconds Unix saatini temsil eden sayıyı (1970-01-01'den bu yana nanosaniye) UTC tarih saat dizesine dönüştürür. , , CSV, JSON, Parquetve AVRO eşleme türleri için ORCkullanılabilir.
DropMappedFields JSON belgesindeki bir nesneyi bir sütuna eşler ve diğer sütun eşlemeleri tarafından zaten başvurulmuş iç içe alanları kaldırır. , , JSONParquetve AVRO eşleme türleri için ORCkullanılabilir.
BytesAsBase64 Verileri bayt dizisi olarak ele alır ve base64 ile kodlanmış bir dizeye dönüştürür. Eşleme türü için AVRO kullanılabilir. Biçim için ApacheAvro eşlenen veri alanının şema türü veya bytes Avro türü olmalıdırfixed. Biçim için Avro , alan [0-255] aralığından bayt değerleri içeren bir dizi olmalıdır. null veriler geçerli bir bayt dizisini temsil etmiyorsa alınıyor.

Eşleme dönüştürme örnekleri

DropMappedFields dönüşüm:

Aşağıdaki JSON içeriği göz önünde bulundurulduğunda:

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "EventName": "CustomEvent",
        "Revenue": 0.456
    }
}

Aşağıdaki veri eşlemesi, zaten eşlenmiş sütunları dışlarken nesnenin tamamını Props dinamik sütuna Props eşler (Props.EventName zaten sütuna EventNameeşlenir, bu nedenle dışlanır).

[
    { "Column": "Time", "Properties": { "Path": "$.Time" } },
    { "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
    { "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]

Alınan veriler aşağıdaki gibi görünür:

Saat EventName Sahne
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 dönüşüm

Aşağıdaki AVRO dosyası içeriği göz önünde bulundurulduğunda:

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
    }
}

Aşağıdaki veri eşlemesi, kimlik sütununu dönüştürmeyle ve dönüştürme olmadan iki kez eşler.

[
    { "Column": "ID", "Properties": { "Path": "$.props.id" } },
    { "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]

Alınan veriler aşağıdaki gibi görünür:

Kimlik Base64EncodedId
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] 44MiXBxbQUiGigmFMy1oNA==