Aracılığıyla paylaş


Power Query'de veri düzenleme için dönüştürme işlevleri

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

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!

Azure Data Factory'de Veri Düzenleme, Power Query M betiklerini Veri Akışı betiklere çevirerek kodsuz çevik veri hazırlama ve bulut ölçeğinde düzenleme gerçekleştirmenizi sağlar. ADF, Power Query Online ile tümleşir ve Veri akışı Spark altyapısını kullanarak Spark yürütmesi aracılığıyla veri düzenleme için Power Query M işlevlerini kullanılabilir hale getirir.

Şu anda, yazma sırasında kullanılabilir olmasına rağmen veri düzenleme için tüm Power Query M işlevleri desteklenmemaktadır. Karmalarınızı oluştururken, bir işlev desteklenmiyorsa aşağıdaki hata iletisiyle karşılaşırsınız:

UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.

Aşağıda desteklenen Power Query M işlevlerinin listesi yer almaktadır.

Sütun Yönetimi

Satır Filtreleme

Aşağıdaki koşullara göre filtrelemek için M işlevi Table.SelectRows kullanın:

  • Eşitlik ve eşitsizlik
  • Sayısal, metin ve tarih karşılaştırmaları (DateTime değil)
  • Number.IsEven/Odd gibi sayısal bilgiler
  • Text.Contains, Text.StartsWith veya Text.EndsWith kullanarak metin kapsama
  • Tüm 'IsIn' Date işlevlerini içeren tarih aralıkları)
  • Koşulları kullanan veya kullanmayan bunların birleşimleri

Sütun Ekleme ve Dönüştürme

Aşağıdaki M işlevleri sütunları ekler veya dönüştürür: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Aşağıda desteklenen dönüştürme işlevleri yer almaktadır.

Tabloları birleştirme/birleştirme

  • Power Query iç içe birleştirme oluşturur (Table.NestedJoin; kullanıcılar Table.AddJoinColumn'u el ile de yazabilir). Kullanıcıların iç içe birleştirme sütununu iç içe olmayan bir birleştirmeye genişletmesi gerekir (Table.ExpandTableColumn, başka bir bağlamda desteklenmez).
  • M işlevi Table.Join , ek genişletme adımına ihtiyaç duymamak için doğrudan yazılabilir, ancak kullanıcının birleştirilen tablolar arasında yinelenen sütun adları olmadığından emin olması gerekir
  • Desteklenen Birleştirme Türleri: İç, LeftOuter, RightOuter, FullOuter
  • Anahtar eşitlik karşılaştırıcıları olarak hem Value.Equals hem de Value.NullableEquals desteklenir

Gruplandırma ölçütü:

Değerleri toplamak için Table.Group kullanın.

Sıralama

Değerleri sıralamak için Table.Sort kullanın.

Satırları Azaltma

Üstte Tut ve Kaldır, Aralığı Koru (karşılık gelen M işlevleri, yalnızca destekleyici sayımlar, koşullar değil: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)

Bilinen desteklenmeyen işlevler

İşlev Durum
Table.PromoteHeaders Desteklenmiyor. Aynı sonuç, veri kümesinde "Üst bilgi olarak ilk satır" ayarlanarak elde edilebilir.
Table.CombineColumns Bu, doğrudan desteklenmeyen ancak verilen iki sütunu birleştirir yeni bir sütun eklenerek elde edilebilen yaygın bir senaryodur. Örneğin, Table.AddColumn(RemoveEmailColumn, "Name", her [FirstName] & " " & [LastName])
Table.TransformColumnTypes Bu, çoğu durumda desteklenir. Aşağıdaki senaryolar desteklenmiyor: dizeyi para birimi türüne dönüştürme, dizeyi zaman türüne dönüştürme, dizeyi Yüzde türüne dönüştürme ve yerel ayar ile tranfoming.
Table.NestedJoin Yalnızca birleştirme yapmak doğrulama hatasına neden olur. Çalışması için sütunların genişletilmesi gerekir.
Table.RemoveLastN Alt satırları kaldırma desteklenmez.
Table.RowCount Desteklenmez, ancak 1 değerini içeren özel bir sütun ekleyip bu sütunu List.Sum ile toplayarak elde edilebilir. Table.Group desteklenir.
Satır düzeyi hata işleme Satır düzeyi hata işleme şu anda desteklenmiyor. Örneğin, bir sütundaki sayısal olmayan değerleri filtrelemek için, bir yaklaşım metin sütununu sayıya dönüştürmektir. Dönüştürme başarısız olan her hücre bir hata durumunda olur ve filtrelenmelidir. Ölçeği genişletilen M'de bu senaryo mümkün değildir.
Table.Transpose Desteklenmez

M betiği geçici çözümleri

SplitColumn

Uzunluk ve konuma göre bölme için alternatif bir alternatif aşağıda listelenmiştir

  • Table.AddColumn(Source, "first characters", each Text.Start([Email], 7), type text)
  • Table.AddColumn(#"Eklenen ilk karakterler", "Metin aralığı", her Text.Middle([E-posta], 4, 9), metin yazın)

Bu seçeneğe şeritteki Ayıkla seçeneğinden erişilebilir

Power Query Sütun Ekle

Table.CombineColumns

  • Table.AddColumn(RemoveEmailColumn, "Name", her [FirstName] & " " & [LastName])

Miller

  • PQ düzenleyicisinden Özet dönüştürme'yi ve ardından özet sütununuzu seçin

Power Query Pivot Common

  • Ardından değer sütununu ve toplama işlevini seçin

Power Query Pivot Seçicisi

  • Tamam'a tıkladığınızda, düzenleyicideki verilerin özetlenmiş değerlerle güncelleştirildiğini görürsünüz
  • Ayrıca dönüşümün desteklenmeyebileceğini belirten bir uyarı iletisi görürsünüz
  • Bu uyarıyı düzeltmek için PQ düzenleyicisini kullanarak özetlenen listeyi el ile genişletin
  • Şeritten Gelişmiş Düzenleyici seçeneğini belirleyin
  • Özetlenmiş değerler listesini el ile genişletme
  • List.Distinct() değerini aşağıdaki gibi değerlerin listesiyle değiştirin:
#"Pivoted column" = Table.Pivot(Table.TransformColumnTypes(#"Changed column type 1", {{"genres", type text}}), {"Drama", "Horror", "Comedy", "Musical", "Documentary"}, "genres", "Rating", List.Average)
in
  #"Pivoted column"

Tarih/saat sütunlarını biçimlendirme

Power Query ADF kullanırken tarih/saat biçimini ayarlamak için lütfen bu kümeleri izleyerek biçimi ayarlayın.

Power Query Değişiklik Türü

  1. Power Query kullanıcı arabiriminde sütunu seçin ve Türü > Değiştir Tarih/Saat'i seçin
  2. Bir uyarı iletisi görürsünüz
  3. Gelişmiş Düzenleyici açın ve olarak TransformColumnsdeğiştirinTransformColumnTypes. Giriş verilerine göre biçimi ve kültürü belirtin.

Power Query Düzenleyicisi

#"Changed column type 1" = Table.TransformColumns(#"Duplicated column", {{"start - Copy", each DateTime.FromText(_, [Format = "yyyy-MM-dd HH:mm:ss", Culture = "en-us"]), type datetime}})

ADF'de Power Query'yi düzenlerken veri oluşturmayı öğrenin.