Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
Veri akışları hem Azure Data Factory işlem hatlarında hem de Azure Synapse Analytics işlem hatlarında kullanılabilir. Bu makale, eşleme veri akışları için geçerlidir. Dönüştürmeler hakkında yeniyseniz , Eşleme veri akışlarını kullanarak verileri dönüştürme başlıklı giriş makalesine bakın.
İpucu
Veri Akışı 2. Nesil'deki eşdeğer dönüştürme (Ayrıştırma) için bkz. Veri akışı kullanıcılarını eşlemek için Veri Akışı 2. Nesil kılavuzu.
Verilerinizdeki belge biçimindeki dizeler olan metin sütunlarını ayrıştırmak için Ayrıştır dönüştürmesini kullanın. Ayrıştırılabilen desteklenen geçerli ekli belge türleri JSON, XML ve sınırlandırılmış metindir.
Yapılandırma
Ayrıştırma dönüştürme yapılandırma panelinde, önce satır içinde ayrıştırmak istediğiniz sütunlarda bulunan veri türünü seçersiniz. Ayrıştırma dönüşümü aşağıdaki yapılandırma ayarlarını da içerir.
Sütun
Türetilmiş sütunlara ve toplamalara benzer şekilde Column özelliği, mevcut bir sütunu açılan seçiciden seçerek değiştirdiğiniz yerdir. Alternatif olarak, buraya yeni bir sütunun adını yazabilirsiniz. ADF ayrıştırılan kaynak verilerini bu sütunda depolar. Çoğu durumda, gelen eklenmiş belge dizesi alanını ayrıştıran yeni bir sütun tanımlamak istersiniz.
İfade
Ayrıştırmanızın kaynağını ayarlamak için ifade oluşturucusunu kullanın. Kaynağı ayarlamak, ayrıştırmak istediğiniz bağımsız verileri içeren kaynak sütunu seçmek kadar basit olabilir veya ayrıştırmak için karmaşık ifadeler oluşturabilirsiniz.
Örnek ifadeler
Kaynak dize verileri:
chrome|steel|plastic- İfade:
(desc1 as string, desc2 as string, desc3 as string)
- İfade:
Kaynak JSON verileri:
{"ts":1409318650332,"userId":"309","sessionId":1879,"page":"NextSong","auth":"Logged In","method":"PUT","status":200,"level":"free","itemInSession":2,"registration":1384448}- İfade:
(level as string, registration as long)
- İfade:
Kaynak İç İçe JSON verileri:
{"car" : {"model" : "camaro", "year" : 1989}, "color" : "white", "transmission" : "v8"}- İfade:
(car as (model as string, year as integer), color as string, transmission as string)
- İfade:
Kaynak XML verileri:
<Customers><Customer>122</Customer><CompanyName>Great Lakes Food Market</CompanyName></Customers>- İfade:
(Customers as (Customer as integer, CompanyName as string))
- İfade:
Öznitelik verileriyle kaynak XML:
<cars><car model="camaro"><year>1989</year></car></cars>- İfade:
(cars as (car as ({@model} as string, year as integer)))
- İfade:
Ayrılmış karakterler içeren ifadeler:
{ "best-score": { "section 1": 1234 } }- içindeki '-' karakteri
best-scoreçıkarma işlemi olarak yorumlandığından yukarıdaki ifade çalışmaz. JSON motorunun metni harfi harfine yorumlamasını sağlamak için bu durumlarda köşeli ayraç gösterimi ile bir değişken kullanın.var bestScore = data["best-score"]; { bestScore : { "section 1": 1234 } }
- içindeki '-' karakteri
Not: Öznitelikleri ayıklarken hatalarla karşılaşırsanız (özellikle @model) karmaşık bir türden), geçici bir çözüm olarak karmaşık türü bir metne dönüştürmek, @ simgesini kaldırmak (özellikle replace(toString(your_xml_string_parsed_column_name.cars.car),'@','' ) kullanarak) ve ardından JSON dönüştürme etkinliğini kullanarak ayrıştırmaktır.
Çıkış sütun türü
Burada, tek bir sütuna yazılan ayrıştırmadan hedef çıkış şemasını yapılandırırsınız. Ayrıştırmadan çıkışınız için şema ayarlamanın en kolay yolu, ifade oluşturucusunun sağ üst kısmındaki 'Türü Algıla' düğmesini seçmektir. ADF, ayrıştırdığınız dize alanından şemayı otomatik olarak algılamayı ve çıkış ifadesinde sizin için ayarlamayı dener.
Bu örnekte, düz metin olan ancak JSON yapısı olarak biçimlendirilmiş gelen "jsonString" alanının ayrıştırmasını tanımladık. Ayrıştırılan sonuçları şu şemayla "json" adlı yeni bir sütunda JSON olarak depolayacağız:
(trade as boolean, customers as string[])
Çıkışınızın düzgün eşlendiğini doğrulamak için inceleme sekmesine ve veri önizlemesine bakın.
Hiyerarşik verileri ayıklamak için Türetilmiş Sütun etkinliğini kullanma (ifade alanında your_complex_column_name.car.model)
Örnekler
source(output(
name as string,
location as string,
satellites as string[],
goods as (trade as boolean, customers as string[], orders as (orderId as string, orderTotal as double, shipped as (orderItems as (itemName as string, itemQty as string)[]))[])
),
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
documentForm: 'documentPerLine') ~> JsonSource
source(output(
movieId as string,
title as string,
genres as string
),
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false) ~> CsvSource
JsonSource derive(jsonString = toString(goods)) ~> StringifyJson
StringifyJson parse(json = jsonString ? (trade as boolean,
customers as string[]),
format: 'json',
documentForm: 'arrayOfDocuments') ~> ParseJson
CsvSource derive(csvString = 'Id|name|year\n\'1\'|\'test1\'|\'1999\'') ~> CsvString
CsvString parse(csv = csvString ? (id as integer,
name as string,
year as string),
format: 'delimited',
columnNamesAsHeader: true,
columnDelimiter: '|',
nullValue: '',
documentForm: 'documentPerLine') ~> ParseCsv
ParseJson select(mapColumn(
jsonString,
json
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> KeepStringAndParsedJson
ParseCsv select(mapColumn(
csvString,
csv
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> KeepStringAndParsedCsv
Veri akışı betiği
Sözdizimi
Örnekler
parse(json = jsonString ? (trade as boolean,
customers as string[]),
format: 'json|XML|delimited',
documentForm: 'singleDocument') ~> ParseJson
parse(csv = csvString ? (id as integer,
name as string,
year as string),
format: 'delimited',
columnNamesAsHeader: true,
columnDelimiter: '|',
nullValue: '',
documentForm: 'documentPerLine') ~> ParseCsv
İlgili içerik
- Satırları sütunlara çevirmek için Flatten dönüşümünü kullanın.
- Satırları dönüştürmek için Türetilmiş sütun dönüştürmesini kullanın.