وظائف التحويل في 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.SelectRows لتصفية الشروط التالية:

  • المساواة وعدم المساواة
  • مقارنات رقمية ونصوص وتاريخية (ولكن ليس DateTime)
  • معلومات رقمية مثل Number.IsEven/Odd
  • احتواء النص باستخدام Text.Contains، Text.StartsWith، أو Text.EndsWith
  • نطاقات التاريخ بما في ذلك جميع وظائف التاريخ'IsIn')
  • مجموعات من هذه باستخدام و، أو، أو ليس الشروط

إضافة أعمدة وتحويلها

الوظائف M التالية تضيف أو تحول أعمدة: Table.AddColumn، Table.TransformColumns، Table.ReplaceValue، Table.DuplicateColumn. فيما يلي وظائف التحويل المعتمدة.

دمج/ربط الجداول

  • سيقوم Power Query بإنشاء صلة متداخلة (Table.NestedJoin؛ يمكن للمستخدمين أيضاً كتابة Table.AddJoinColumnيدوياً). يجب على المستخدمين بعد ذلك توسيع عمود الربط المتداخل في ارتباط غير متداخل (Table.ExpandTableColumn، غير معتمد في أي سياق آخر).
  • الوظيفة M يمكن لـ Table.Join أن تتم كتابته مباشرة لتجنب الحاجة إلى توسعة إضافية خطوة، ولكن يجب أن يضمن المستخدم عدم وجود أسماء أعمدة مكررة بين الجداول المشتركة
  • أنواع الوصل المدعومة: Inner وLeftOuter وRightOuter وFullOuter
  • يتم اعتماد كل من Value.Equals وValue.NullableEquals كمقارنة مساواة رئيسية

تجميع حسب

استخدم Table.Group لتجميع القيم.

الفرز

استخدم 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)

يمكن الوصول إلى هذا الخيار من خيار الاستخراج في الشريط

Power Query Add Column

Table.CombineColumns

  • Table.AddColumn(RemoveEmailColumn، "Name"، each [FirstName] & " " & [LastName])

محاور

  • حدد تحويل محوري من محرر PQ وحدد العمود محوري الخاص بك

Power Query Pivot Common

  • ثم حدد عمود القيمة ووظيفة التجميع

Power Query Pivot Selector

  • عند النقر فوق "موافق"، سترى البيانات في المحرر محدثة بقيم محورية
  • سترى أيضاً رسالة تحذير بأن التحويل قد يكون غير معتمد
  • لإصلاح هذا التحذير، قم بتوسيع القائمة المحورية يدوياً باستخدام محرر 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 Change Type

  1. حدد العمود في واجهة مستخدم Power Query واختر تغيير النوع > التاريخ/الوقت
  2. سترى رسالة تحذير
  3. افتح محرر متقدم ثم قم بالتغيير TransformColumnTypes إلى TransformColumns . حدد التنسيق والثقافة استناداً إلى بيانات الإدخال.

Power Query Editor

#"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.