وظائف التحويل في Power Query لـData Wrangling
ينطبق على:Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
يسمح لك Data Wrangling في Azure Data Factory بالقيام بإعداد بيانات سريعة خالية من التعليمات البرمجية، فضلاً عن التنازع على نطاق السحابة من خلال ترجمة البرامج النصية لـ Power Query M
إلى برنامج نصي لتدفق البيانات. يتكامل ADF مع Power Query Online ويجعل وظائف Power Query M
متاحة لتبادل البيانات عبر تنفيذ Spark باستخدام البنية الأساسية لـ Spark تدفق البيانات.
لا يتم حالياً دعم جميع وظائف Power Query M لجدل البيانات بالرغم من توفرها أثناء التأليف. أثناء إنشاء الوظائف المؤقتة، ستتم مطالبتك برسالة الخطأ التالية إذا لم يتم دعم إحدى الوظائف:
UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.
فيما يلي قائمة بوظائف Power Query M المعتمدة.
إدارة الأعمدة
- التحديد: Table.SelectColumns
- إزالة: Table.RemoveColumns
- إعادة تسمية: Table.RenameColumns، Table.PrefixColumns، Table.TransformColumnNames
- إعادة ترتيب: Table.ReorderColumns
تصفية الصفوف
استخدم الوظيفة Table.SelectRows لتصفية الشروط التالية:
- المساواة وعدم المساواة
- مقارنات رقمية ونصوص وتاريخية (ولكن ليس DateTime)
- معلومات رقمية مثل Number.IsEven/Odd
- احتواء النص باستخدام Text.Contains، Text.StartsWith، أو Text.EndsWith
- نطاقات التاريخ بما في ذلك جميع وظائف التاريخ'IsIn')
- مجموعات من هذه باستخدام و، أو، أو ليس الشروط
إضافة أعمدة وتحويلها
الوظائف M التالية تضيف أو تحول أعمدة: Table.AddColumn، Table.TransformColumns، Table.ReplaceValue، Table.DuplicateColumn. فيما يلي وظائف التحويل المعتمدة.
- حسابي رقمي
- سلسلة النص
- حساب التاريخ والوقت (عوامل حسابية، Date.AddDays، Date.AddMonths، Date.AddQuarters، Date.AddWeeks، Date.AddYears)
- يمكن استخدام فترات لحساب التاريخ والوقت، ولكن يجب تحويلها إلى نوع آخر قبل كتابتها إلى متلق (عوامل حسابية، #duration،Duration.Days،Duration.Hours،Duration.Minutes،Duration.Seconds،Duration.TotalDays، Duration.TotalHours، Duration.TotalMinutes، Duration.TotalSeconds)
- معظم الوظائف الرقمية القياسية والعلمية والثلاثية (جميع الوظائف ضمن Operations، Rounding، وTrigonometryexcept Number.Factorial، Number.Permutations، وNumber.Combinations)
- استبدال (Replaceer.ReplaceText، Replaceer.ReplaceValue، Text.Replace، Text.Remove)
- استخراج النص الموضعي (Text.PositionOf، Text.Length، Text.Start، Text.End، Text.Middle، Text.ReplaceRange، Text.RemoveRange)
- تنسيق النص الأساسي Text.Lower، Text.Upper، Text.Trim/Start/End، Text.PadStart/End، Text.Reverse)
- وظائف التاريخ/الوقت (Date.Day، Date.month، Date.yearTime.hour، Time.minute، Time.second، Date.DayOfWeek، Date.DayOfYear، Date.DaysInMonth)
- إذا كانت التعبيرات (ولكن يجب أن تحتوي الفروع على أنواع مطابقة)
- عوامل تصفية الصفوف كعمود منطقي
- أرقام، ونص، ومنطقي، وتاريخ، ومواعيد
دمج/ربط الجداول
- سيقوم Power Query بإنشاء صلة متداخلة (Table.NestedJoin؛ يمكن للمستخدمين أيضاً كتابة Table.AddJoinColumnيدوياً). يجب على المستخدمين بعد ذلك توسيع عمود الربط المتداخل في ارتباط غير متداخل (Table.ExpandTableColumn، غير معتمد في أي سياق آخر).
- الوظيفة M يمكن لـ Table.Join أن تتم كتابته مباشرة لتجنب الحاجة إلى توسعة إضافية خطوة، ولكن يجب أن يضمن المستخدم عدم وجود أسماء أعمدة مكررة بين الجداول المشتركة
- أنواع الوصل المدعومة: Inner وLeftOuter وRightOuter وFullOuter
- يتم اعتماد كل من Value.Equals وValue.NullableEquals كمقارنة مساواة رئيسية
تجميع حسب
استخدم Table.Group لتجميع القيم.
- يجب استخدامه مع وظيفة تجميع
- وظائف التجميع المعتمدة: List.Sum وList.Count وList.average وList.Min وList.Max وList.StandardDeviation وList.First وList.Last
الفرز
استخدم Table.Sort لفرز القيم.
تقليل الصفوف
قم بالاحتفاظ وإزالة أعلى، والاحتفاظ بمدى (وظائف M المقابلة، دعم الأعداد فقط، وليس الشروط: Table.FirstN،Table.Skip، Table.RemoveFirstN،Table.Range،Table.MinN، Table.MaxN)
وظائف معروفة غير معتمدة
الدالة | الحالة |
---|---|
Table.PromoteHeaders | غير مدعومة. ويمكن تحقيق نفس النتيجة من خلال تعيين "الصف الأول كرأس" في مجموعة البيانات. |
Table.CombineColumns | هذا سيناريو شائع غير معتمد مباشرة ولكن يمكن تحقيقه بإضافة عمود جديد يضم عمودين معينين. على سبيل المثال، Table.AddColumn(RemoveEmailColumn، "الاسم"، كل [FirstName] & " " & [LastName]) |
Table.TransformColumnTypes | وهذا معتمد في معظم الحالات. السيناريوهات التالية غير مدعومة: تحويل السلسلة إلى نوع العملة، وتحويل السلسلة إلى نوع الوقت، وتحويل السلسلة إلى نوع النسبة المئوية، والتحويل بالترجمة المحلية. |
Table.NestedJoin | سيؤدي مجرد القيام بالاشتراك إلى حدوث خطأ في التحقق من الصحة. يجب توسيع الأعمدة لكي تعمل. |
Table.RemoveLastN | إزالة الصفوف السفلى غير مدعومة. |
Table.RowCount | غير معتمد، ولكن يمكن تحقيقه بإضافة عمود مخصص يحتوي على القيمة 1، ثم تجميع هذا العمود مع List.Sum. Table.Group معتمد. |
معالجة خطأ مستوى الصف | معالجة خطأ مستوى الصف غير مدعومة حالياً. على سبيل المثال، لتصفية القيم غير الرقمية من عمود، فإن أحد الأساليب هو تحويل عمود النص إلى رقم. كل خلية تفشل في التحويل ستكون في حالة خطأ وتحتاج إلى التصفية. هذا السيناريو غير ممكن في التحجيم التدريجي لـ M. |
Table.Transpose | غير مدعوم |
حلول البرنامج النصي M
SplitColumn
البديل للتقسيم حسب الطول والموقع مدرج أدناه
- Table.AddColumn(Source، "First characters"، each Text.Start([Email]، 7)، type text)
- Table.AddColumn(#"Inserted first characters"، "Text range"، each Text.Middle([Email]، 4، 9)، type text)
يمكن الوصول إلى هذا الخيار من خيار الاستخراج في الشريط
Table.CombineColumns
- Table.AddColumn(RemoveEmailColumn، "Name"، each [FirstName] & " " & [LastName])
محاور
- حدد تحويل محوري من محرر PQ وحدد العمود محوري الخاص بك
- ثم حدد عمود القيمة ووظيفة التجميع
- عند النقر فوق "موافق"، سترى البيانات في المحرر محدثة بقيم محورية
- سترى أيضاً رسالة تحذير بأن التحويل قد يكون غير معتمد
- لإصلاح هذا التحذير، قم بتوسيع القائمة المحورية يدوياً باستخدام محرر PQ
- حدد خيار محرر متقدم من الشريط
- قم بتوسيع قائمة القيم المحورية يدوياً
- استبدال List.Distinct() مع قائمة القيم مثل هذا:
#"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"
تنسيق أعمدة التاريخ/الوقت
لتعيين تنسيق التاريخ/الوقت عند استخدام Power Query ADF، يرجى اتباع هذه المجموعات لتعيين التنسيق.
- حدد العمود في واجهة مستخدم Power Query واختر تغيير النوع > التاريخ/الوقت
- سترى رسالة تحذير
- افتح محرر متقدم ثم قم بالتغيير
TransformColumnTypes
إلىTransformColumns
. حدد التنسيق والثقافة استناداً إلى بيانات الإدخال.
#"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}})
المحتوى ذو الصلة
تعرف على كيفية إنشاء data wrangling Power Query في ADF.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ