Eşleme veri akışında ifadeler oluşturma

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

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ı, İfade Oluşturucusu olarak adlandırılan bu ifadeleri oluşturmanıza yardımcı olmak için ayrılmış bir deneyime sahiptir. 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.

Expression Builder

İ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.

Open Expression Builder derive

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

Blue expression box

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.

Computed column option

İfadenin veya değişmez değerin geçerli girişler olduğu durumlarda, değişmez değer olarak değerlendirilen bir ifade oluşturmak için Dinamik içerik ekle'yi seçin.

Add dynamic content option

İ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.

Expression elements

İş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.

Expression Builder array

Ö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 kaynaklarından herhangi birinde tanımlı bir şema kullanıyorsa, birçok ifadede bir sütuna ada göre başvurabilirsiniz. Şema kaymasını kullanıyorsanız, veya byNames() işlevlerini kullanarak byName() 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 adlı bir parametreye tarafından $parameter1başvurulur. Daha fazla bilgi edinmek için bkz . Eşleme veri akışlarını parametreleştirme.

Ö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 havuz lookup() üzerinde kullanılabilecek iki işlev vardır ve outputs(). Bu işlevlere başvurmak için söz dizimi şeklindedir cacheSinkName#functionName(). Daha fazla bilgi için bkz . Önbellek havuzları.

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 adlı Messagebir sütun içeren bir hata kodu önbellek havuzuna errorCodeCache 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. Bu, anahtar sütunları havuz içinde belirtilirse çağrılmaz ve yalnızca önbellek havuzunda birkaç satır varsa kullanılmalıdır. Yaygın bir kullanım örneği, bir artımlı anahtarın maksimum değerini eklemektir. Ö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.

Cached lookup

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, aşağıdaki dönüştürmeye aşağı akış yayılmayan bir mantık kümesidir. İfade oluşturucusunun içinde, İfade öğeleri'ne gidip Yereller seçilerek yerel öğeler oluşturulabilir. Yeni oluştur'u seçerek yeni bir tane oluşturun.

Create local

Yerel öğeler işlevler, giriş şeması, parametreler ve diğer yerel öğeler de dahil olmak üzere herhangi bir ifade öğesine başvurabilir. Diğer yerel ayarlara başvururken, başvuruda bulunılan yerelin geçerli olanın "üstünde" olması gerektiğinden sıra önemlidir.

Create local 2

Dönüştürmede yerel bir öğeye başvurmak için, İfade öğeleri görünümünden yerel öğeyi seçin veya adının önünde iki nokta üst üste ile buna başvurun. Örneğin, local1 adlı yerel bir ada tarafından :local1başvurulabilir. Yerel tanımı düzenlemek için, ifade öğeleri görünümünde üzerine gelin ve kalem simgesini seçin.

Using locals

İ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.

In-progress preview

Dize ilişkilendirme

İ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. Değişmez değer dizesi metnini ifadelerle birlikte 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 küme ayracı 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"

Dekont

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, dönüştürme ifadelerinizi belgelemesi için dönüştürme metin kutusunda görünür.

Comment in the transformation text box

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 regex'i ters eğik çizgi (') içine alın veya çift ters eğik çizgi kullanın.

Backticks 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: Açıklama satırın tamamı.
  • 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ı çıkışınıza dize değişmez değerlerini eklemek için dönüştürmenizi içinde toString()sarmalar.

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", uzun bir türe satır içi söz dizimi olarak 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 çıkışı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 için datetime değerini dize yerine datetime olarak işleyin.

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