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
- Seçim: Table.SelectColumns
- Kaldırma: Table.RemoveColumns
- Yeniden Adlandırma: Table.RenameColumns, Table.PrefixColumns, Table.TransformColumnNames
- Yeniden Sıralama: Table.ReorderColumns
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.
- Sayısal aritmetik
- Metin birleştirme
- Tarih ve Saat Aritmetiği (Aritmetik işleçleri, Date.AddDays, Date.AddMonths, Date.AddQuarters, Date.AddWeeks, Date.AddYears)
- Süreler tarih ve saat aritmetiği için kullanılabilir, ancak havuza yazılmadan önce başka bir türe dönüştürülmelidir (Aritmetik işleçler, #duration, Duration.Days, Duration.Hours, Duration.Minutes, Duration.Seconds, Duration.TotalDays, Duration.TotalHours, Duration.TotalMinutes, Duration.TotalSeconds)
- Çoğu standart, bilimsel ve trigonometrik sayısal işlev (İşlemler, Yuvarlama ve Trigonometri altındaki Number.Factorial, Number.Permütasyonlar ve Number.Combinations dışındaki tüm işlevler)
- Replace (Replacer.ReplaceText, Replacer.ReplaceValue, Text.Replace, Text.Remove)
- Konumsal metin ayıklama (Text.PositionOf, Text.Length, Text.Start, Text.End, Text.Middle, Text.ReplaceRange, Text.RemoveRange)
- Temel metin biçimlendirmesi (Text.Lower, Text.Upper, Text.Trim/Start/End, Text.PadStart/End, Text.Reverse)
- Tarih/Saat İşlevleri (Date.Day, Date.Month, Date.Year Time.Hour, Time.Minute, Time.Second, Date.DayOfWeek, Date.DayOfYear, Date.DaysInMonth)
- İfadeler (ancak dalların eşleşen türleri olmalıdır)
- Mantıksal sütun olarak satır filtreleri
- Sayı, metin, mantıksal, tarih ve tarih saat sabitleri
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.
- Toplama işleviyle kullanılmalıdır
- Desteklenen toplama işlevleri: List.Sum, List.Count, List.Average, List.Min, List.Max, List.StandardDeviation, List.First, List.Last
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
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
- Ardından değer sütununu ve toplama işlevini seçin
- 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 kullanıcı arabiriminde sütunu seçin ve Türü > Değiştir Tarih/Saat'i seçin
- Bir uyarı iletisi görürsünüz
- Gelişmiş Düzenleyici açın ve olarak
TransformColumns
değiştirinTransformColumnTypes
. Giriş verilerine göre biçimi ve kültürü belirtin.
#"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}})
İlgili içerik
ADF'de Power Query'yi düzenlerken veri oluşturmayı öğrenin.