Veri akışı eşlemesinde ifadeler oluşturma

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Eşleme veri akışında, birçok dönüştürme özelliği ifade olarak girilir. Bu ifadeler, çalışma zamanında Spark veri türü olarak değerlendirilen sütun değerlerinden, parametrelerden, işlevlerden, işleçlerden ve değişmez değerlerden oluşur. Eşleme veri akışlarının, İfade Oluşturucu adı verilen ve bu ifadeleri oluşturmanıza yardımcı olmak için özel olarak tasarlanmış bir deneyimi vardır. Vurgulama, söz dizimi denetimi ve otomatik tamamlama için IntelliSense kod tamamlama özelliğinden yararlanan ifade oluşturucusu, veri akışlarını derlemeyi kolaylaştıracak şekilde tasarlanmıştır. Bu makalede, iş mantığınızı etkili bir şekilde oluşturmak için ifade oluşturucunun nasıl kullanılacağı açıklanmaktadır.

İfade Oluşturucusu

İfade Oluşturucusu'nu açma

İfade oluşturucusunu açmak için birden çok giriş noktası vardır. Bunların tümü veri akışı dönüşümünün belirli bağlamlarına bağlıdır. En yaygın kullanım örneği, türetilmiş sütun ve toplama gibi kullanıcıların veri akışı ifade dilini kullanarak sütunları oluşturduğu veya güncelleştirdiği dönüşümlerdedir. İfade oluşturucusu, sütun listesinin üzerindeki İfade oluşturucuyu aç seçilerek açılabilir. Ayrıca bir sütun bağlamı seçebilir ve ifade oluşturucusunu doğrudan bu ifadeye açabilirsiniz.

İfaden Üreticisini Aç

Filtre gibi bazı dönüştürmelerde, mavi ifade metin kutusuna tıklanması ifade oluşturucusunu açar.

Mavi ifade kutusu

Eşleşen veya gruplandırma ölçütü koşulunda sütunlara başvurdığınızda, ifade sütunlardan değerleri ayıklayabilir. İfade oluşturmak için Hesaplanan sütun'u seçin.

Hesaplanan sütun seçeneği

İfadenin veya değişken değerin geçerli girişler olduğu durumlarda, bir ifadenin değişken değere dönüştürülmesi için Dinamik içerik ekle'yi seçin.

Dinamik içerik ekle seçeneği

İfade öğeleri

Eşleme veri akışlarında ifadeler sütun değerlerinden, parametrelerden, işlevlerden, yerel değişkenlerden, işleçlerden ve değişmez değerlerden oluşabilir. Bu ifadeler dize, boole veya tamsayı gibi bir Spark veri türü olarak değerlendirilmelidir.

İfade öğeleri

İşlevler

Eşleme veri akışları, ifadelerde kullanılabilecek yerleşik işlevlere ve işleçlere sahiptir. Kullanılabilir işlevlerin listesi için eşleme veri akışı dil başvurusuna bakın.

Kullanıcı Tanımlı İşlevler (Önizleme)

Eşleme veri akışları, kullanıcı tanımlı işlevlerin oluşturulmasını ve kullanılmasını destekler. Kullanıcı tanımlı işlevlerin nasıl oluşturulacağını ve kullanılacağını görmek için bkz . kullanıcı tanımlı işlevler.

Adres dizisi dizinleri

Dizi türlerini döndüren sütun veya işlevlerle ilgilenirken, belirli bir öğeye erişmek için köşeli ayraç ([]) kullanın. Dizin yoksa, ifade NULL olarak değerlendirilir.

İfade Oluşturucusu dizisi

Önemli

Eşleme veri akışlarında diziler tek tabanlıdır, yani ilk öğeye dizin bir tarafından başvurulur. Örneğin, myArray[1] 'myArray' adlı bir dizinin ilk öğesine erişir.

Giriş şeması

Veri akışınızın herhangi bir kaynağında tanımlanmış bir şema kullanıyorsa, ifadelerin çoğunda bir sütuna adıyla başvurabilirsiniz. Şema kaymasını kullanıyorsanız, byName() veya byNames() işlevlerini kullanarak sütunlara açıkça başvurabilir veya sütun desenlerini kullanarak eşleştirebilirsiniz.

Özel karakterler içeren sütun adları

Özel karakterler veya boşluklar içeren sütun adlarınız varsa, bir ifadede bunlara başvurmak için adı küme ayraçlarıyla çevreleyin.

{[dbo].this_is my complex name$$$}

Parametreler

Parametreler, bir işlem hattından çalışma zamanında bir veri akışına geçirilen değerlerdir. Bir parametreye başvurmak için İfade öğeleri görünümünden parametreyi seçin veya adının önünde dolar işareti olan bir değere başvurun. Örneğin, $parameter1 tarafından başvurulan bir parametre olan parameter1. Daha fazla bilgi edinmek için Eşleme veri akışlarını parametreleştirme konusuna bkz.

Önbelleğe alınmış arama

Önbelleğe alınmış arama, önbelleğe alınmış bir havuzun çıktısı için satır içi arama yapmanıza olanak tanır. Her bir yıkama yerinde kullanılabilecek iki işlev vardır: lookup() ve outputs(). Bu işlevlere başvurmak için söz dizimi şeklindedir cacheSinkName#functionName(). Daha fazla bilgi için, bkz. Önbellek alıcıları.

lookup() geçerli dönüştürmedeki eşleşen sütunları parametre olarak alır ve önbellek havuzundaki anahtar sütunlarıyla eşleşen satıra eşit karmaşık bir sütun döndürür. Döndürülen karmaşık sütun, önbellek havuzuna eşlenen her sütun için bir alt sütun içerir. Örneğin, kodla eşleşen bir anahtar sütunu ve errorCodeCache adlı bir sütun içeren Message hata kodu önbellek havuzuna sahipseniz. Çağrısı errorCodeCache#lookup(errorCode).Message , geçirilen koda karşılık gelen iletiyi döndürür.

outputs() parametre almaz ve önbellek havuzun tamamını karmaşık sütun dizisi olarak döndürür. Anahtar sütunlar hedef depoda belirtilmişse bu işlem çağrılamaz ve yalnızca önbellek deposunda birkaç satır varsa kullanılmalıdır. Artan bir anahtarın maksimum değerini eklemek yaygın bir kullanım örneğidir. Önbelleğe alınmış tek bir toplu satır CacheMaxKey bir sütun MaxKeyiçeriyorsa, çağrısı CacheMaxKey#outputs()[1].MaxKeyyaparak ilk değere başvurabilirsiniz.

Önbelleğe alınmış arama

Yerel Öğeler

Mantığı birden çok sütun arasında paylaşıyorsanız veya mantığınızı bölümlere ayırmak istiyorsanız, yerel bir değişken oluşturabilirsiniz. Yerel, sonraki dönüşüme iletilmeyen bir mantık kümesidir. İfade oluşturucusunun içinde, İfade öğeleri'ne gidip Yereller seçilerek Yereller oluşturulabilir. Yeni oluştur'u seçerek yeni bir tane oluşturun.

Yerel oluştur

Yerel öğeler işlevler, giriş şeması, parametreler ve diğer yerel öğeler de dahil olmak üzere herhangi bir ifade öğesine başvurabilir. Diğer lokallere başvurulduğunda, çünkü referans verilen lokal mevcut olanın üstünde olmalıdır, dizilim önemlidir.

Yerel 2 oluştur

Dönüştürmede yerel bir değişkene başvurmak için, İfade öğeleri görünümünden yerel değişkeni seçin veya adının önüne bir iki nokta üst üste koyarak ona başvurun. Örneğin, local1 adlı bir yerel değişken :local1 olarak referans alacaktır. Yerel tanımı düzenlemek için, ifade öğeleri görünümünde üzerine gelin ve kalem simgesini seçin.

Yerel ayarları kullanma

İfade sonuçlarını önizleme

Hata ayıklama modu açıksa, hata ayıklama kümesini etkileşimli bir şekilde kullanarak ifadenizin değerlendirmesinin önizlemesini görüntüleyebilirsiniz. Veri önizlemesinin sonuçlarını güncelleştirmek için veri önizlemesinin yanındaki Yenile'yi seçin. Giriş sütunlarına göre her satırın çıkışını görebilirsiniz.

Devam eden önizleme

Dize enterpolasyonu

İfade öğelerini kullanan uzun dizeler oluştururken, karmaşık dize mantığını kolayca oluşturmak için dize ilişkilendirmesini kullanın. Dize ilişkilendirmesi, sorgu dizelerine parametreler eklendiğinde dize birleştirmenin kapsamlı kullanımını önler. Sabit dize metnini ve ifadeleri içine almak için çift tırnak işareti kullanın. İfade işlevleri, sütunlar ve parametreler ekleyebilirsiniz. İfade söz dizimlerini kullanmak için süslü parantez içine alın.

Dize ilişkilendirmesinin bazı örnekleri:

  • "My favorite movie is {iif(instr(title,', The')>0,"The {split(title,', The')[1]}",title)}"

  • "select * from {$tablename} where orderyear > {$year}"

  • "Total cost with sales tax is {round(totalcost * 1.08,2)}"

  • "{:playerName} is a {:playerRating} player"

Not

SQL kaynak sorgularında dize ilişkilendirme söz dizimi kullanılırken, sorgu dizesi '/n' olmadan tek bir satırda olmalıdır.

İfadelere açıklama ekleme

Tek satırlı ve çok satırlı açıklama söz dizimini kullanarak ifadelerinize açıklama ekleyin.

Aşağıdaki örnekler geçerli açıklamalardır:

  • /* This is my comment */

  • /* This is a

  • multi-line comment */

İfadenizin en üstüne bir açıklama koyarsanız, açıklamanız metin dönüştürme kutusunda görünerek dönüştürme ifadelerinizi belgelemek amacıyla kullanılabilir.

Dönüştürme metin kutusundaki açıklama

Normal ifadeler

Birçok ifade dili işlevi normal ifade söz dizimi kullanır. Normal ifade işlevlerini kullandığınızda, İfade Oluşturucusu bir ters eğik çizgiyi (\) kaçış karakteri dizisi olarak yorumlamaya çalışır. Normal ifadenizde ters eğik çizgi kullandığınızda, tüm ifadeyi ters tırnak işareti (`) içine alın veya çift ters eğik çizgi kullanın.

Backticks'leri kullanan bir örnek:

regex_replace('100 and 200', `(\d+)`, 'digits')

Çift eğik çizgi kullanan bir örnek:

regex_replace('100 and 200', '(\\d+)', 'digits')

Klavye kısayolları

İfade oluşturucusunda kullanılabilen kısayolların listesi aşağıdadır. İfade oluştururken intellisense kısayollarının çoğu kullanılabilir.

  • Ctrl+K Ctrl+C: Satırın tamamını yorum ekle.
  • Ctrl+K Ctrl+U: Açıklamayı kaldırma.
  • F1: Düzenleyici yardım komutlarını sağlayın.
  • Alt+Aşağı ok tuşu: Geçerli çizgide aşağı gitme.
  • Alt+Yukarı ok tuşu: Geçerli satırı yukarı taşı.
  • Ctrl+Ara Çubuğu: Bağlam yardımlarını göster.

Yaygın olarak kullanılan ifadeler

Tarihlere veya zaman damgalarına dönüştürme

Zaman damgası çıktınıza metin ifadeleri eklemek için dönüştürmenizi toString() içine sarın.

toString(toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss'), 'MM/dd /yyyy\'T\'HH:mm:ss')

Milisaniyeleri dönemlerden tarih veya zaman damgasına dönüştürmek için kullanın toTimestamp(<number of milliseconds>). Süre saniye olarak geliyorsa, 1.000 ile çarpın.

toTimestamp(1574127407*1000l)

Önceki ifadenin sonundaki "l", satır içi söz dizimi olarak uzun bir türe dönüştürmeyi gösterir.

Dönem veya Unix Saati'nden zaman bulma

toLong( currentTimestamp() - toTimestamp('1970-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS') ) * 1000L

Veri akışı süresi değerlendirmesi

Veri akışı milisaniyeye kadar işler. 2018-07-31T20:00:00.2170000 için 2018-07-31T20:00:00.217 çıktısını görürsünüz. Hizmetin portalında zaman damgası geçerli tarayıcı ayarında gösteriliyor ve bu da 217'yi ortadan kaldırabiliyor, ancak veri akışını uçtan uca çalıştırdığınızda 217 (milisaniye bölümü de işleniyor). toString'i (myDateTimeColumn) ifade olarak kullanabilir ve tam duyarlık verilerini önizlemede görebilirsiniz. Tüm pratik amaçlar doğrultusunda, datetime değerini string yerine datetime olarak işleyin.

Veri dönüştürme ifadeleri oluşturmaya başlayın.