تبسيط التحويل في رسم خرائط تدفق البيانات
ينطبق على:Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تتوفر تدفقات البيانات في كل من Azure Data Factory وخطوط أنابيب Azure Synapse. تنطبق هذه المقالة على تعيين تدفقات البيانات. إذا كنت جديداً في مجال التحويلات، فيرجى الرجوع إلى المقالة التمهيدية تحويل البيانات باستخدام تدفق بيانات التعيين.
قم باستخدام التحويل المبسط لأخذ قيم الصفيف داخل الهياكل الهرمية مثل JSON وافتحها في صفوف فردية. تُعرف هذه العملية بإلغاء البيانات المكررة.
التكوين
يحتوي التحويل المبسط على إعدادات التكوين التالية.
Unroll من قِبل
تحديد صفيف لإلغاء التسجيل. سيكون لبياناتِ الإخراج صف واحد لكل عنصر في كل صفيف. إذا كان Unroll من قِبل الصفيف في صف الإدخال خالي أو فارغ، فسيكون هناك صف إخراج واحد بقيم غير مسجلة على أنها خالية. لديك خيار إلغاء تسجيل أكثر من صفيف واحد لكل تحويل Flatten. انقر فوق زر الجمع (+) لتضمين صفائف متعددة في تحويل واحد مسطح. يمكنك استخدام دالات تعريف تدفق بيانات ADF هنا بما في ذلك name
type
واستخدام مطابقة النمط إلى صفائف unroll التي تطابق تلك المعايير. عند تضمين صفائف متعددة في تحويل Flatten واحد، ستكون نتائجك منتجا ديكارتيا لجميع قيم الصفيف المحتملة.
جذر Unroll
بشكل افتراضي، تحويل تبسيط صفيف unrolls إلى أعلى التسلسل الهرمي موجود في. يمكنك اختياريًا تحديد مصفوفة كجذر unroll الخاص بك. يلزم أن يكون جذر unroll صفيفة من الكائنات المعقدة التي إما يكون أو يحتوي على unroll من قِبل الصفيف. في حال تم تحديد جذر unroll، فإن بيانات الإخراج تحتوي على صف واحد على الأقل لكل عنصر في جذر unroll. في حال لم يكن صف الإدخال يتضمن أية عناصر في جذر unroll، فسيتم إسقاطه من بيانات الإخراج. سيؤدي اختيار جذر unroll دائما إلى إخراج عدد أقل من الصفوف أو يساويه من السلوك الافتراضي.
رسم المخططات بالتبسيط
على غرار التحويل المحدد، قم باختيار إسقاط البنية الجديدة من الحقول الواردة ونشر تكرار الصفيف. إذا تم تعيين مصفوفة غير منسقة، فسيكون عمود الإخراج من نفس نوع البيانات مثل المصفوفة. في حال كان unroll من قِبل الصفيف عبارة عن مصفوفة من العناصر المعقدة التي تحتوي على مصفوفات فرعية، فإن تعيين عنصر من هذا النطاق الفرعي سينتج صفيف.
ارجع إلى علامة التبويب لفحص ومعاينة البيانات للتحقق من إخراج التعيين.
التعيين المسند للقواعد
يدعم التحويل المبسط التعيين المسند إلى القواعد مما يتيح لك إنشاء تحويلات ديناميكية ومرنة التي من شأنها تسوية المصفوفات استنادًا إلى القواعد وتسوية البنيات استنادًا إلى مستويات التسلسل الهرمي.
شرط المطابقة
قم بإدخال شرط مطابقة النمط للعمود أو الأعمدة التي ترغب في تبسيطها باستخدام المطابقة أو الأنماط. مثال: like(name,'cust%')
تجاوز العمود العميق
إعداد اختياري يخبر الخدمة بالتعامل مع جميع الأعمدة الفرعية لعنصر فردي معقد بدلاً من معالجة الكائن المعقد كعمود كامل.
مستوى التسلسل الهرمي {0}
اختر مستوى التسلسل الهرمي الذي ترغب في توسيعه.
مطابقة الاسم (تعبير عادي)
اختياريًا، اختر التعبير عن تطابق اسمك كتعبير عادي في هذا المربع، بدلاً من استخدام شرط المطابقة أعلاه.
الأمثلة
ارجع لعنصر JSON التالي للحصول على الأمثلة التالية للتحويل المبسط
{
"name":"MSFT","location":"Redmond", "satellites": ["Bay Area", "Shanghai"],
"goods": {
"trade":true, "customers":["government", "distributer", "retail"],
"orders":[
{"orderId":1,"orderTotal":123.34,"shipped":{"orderItems":[{"itemName":"Laptop","itemQty":20},{"itemName":"Charger","itemQty":2}]}},
{"orderId":2,"orderTotal":323.34,"shipped":{"orderItems":[{"itemName":"Mice","itemQty":2},{"itemName":"Keyboard","itemQty":1}]}}
]}}
{"name":"Company1","location":"Seattle", "satellites": ["New York"],
"goods":{"trade":false, "customers":["store1", "store2"],
"orders":[
{"orderId":4,"orderTotal":123.34,"shipped":{"orderItems":[{"itemName":"Laptop","itemQty":20},{"itemName":"Charger","itemQty":3}]}},
{"orderId":5,"orderTotal":343.24,"shipped":{"orderItems":[{"itemName":"Chair","itemQty":4},{"itemName":"Lamp","itemQty":2}]}}
]}}
{"name": "Company2", "location": "Bellevue",
"goods": {"trade": true, "customers":["Bank"], "orders": [{"orderId": 4, "orderTotal": 123.34}]}}
{"name": "Company3", "location": "Kirkland"}
لا يوجد جذر unroll مع صفيف سلسلة
Unroll من قِبل | جذر Unroll | إسقاط |
---|---|---|
البضائع. العملاء | بلا | اسم العميل = البضائع. العميل |
الإخراج
{ 'MSFT', 'government'}
{ 'MSFT', 'distributer'}
{ 'MSFT', 'retail'}
{ 'Company1', 'store'}
{ 'Company1', 'store2'}
{ 'Company2', 'Bank'}
{ 'Company3', null}
لا يوجد جذر unroll مع صفيف معقد
Unroll من قِبل | جذر Unroll | إسقاط |
---|---|---|
goods.orders.shipped.orderItems | بلا | اسم orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty الموقع= الموقع |
الإخراج
{ 'MSFT', 1, 'Laptop', 20, 'Redmond'}
{ 'MSFT', 1, 'Charger', 2, 'Redmond'}
{ 'MSFT', 2, 'Mice', 2, 'Redmond'}
{ 'MSFT', 2, 'Keyboard', 1, 'Redmond'}
{ 'Company1', 4, 'Laptop', 20, 'Seattle'}
{ 'Company1', 4, 'Charger', 3, 'Seattle'}
{ 'Company1', 5, 'Chair', 4, 'Seattle'}
{ 'Company1', 5, 'Lamp', 2, 'Seattle'}
{ 'Company2', 4, null, null, 'Bellevue'}
{ 'Company3', null, null, null, 'Kirkland'}
نفس الجذر مثل صفيف unroll
Unroll من قِبل | جذر Unroll | إسقاط |
---|---|---|
البضائع. الأوامر | البضائع. الأوامر | اسم goods.orders.shipped.orderItems.itemName goods.customers موقع |
الإخراج
{ 'MSFT', ['Laptop','Charger'], ['government','distributer','retail'], 'Redmond'}
{ 'MSFT', ['Mice', 'Keyboard'], ['government','distributer','retail'], 'Redmond'}
{ 'Company1', ['Laptop','Charger'], ['store', 'store2'], 'Seattle'}
{ 'Company1', ['Chair', 'Lamp'], ['store', 'store2'], 'Seattle'}
{ 'Company2', null, ['Bank'], 'Bellevue'}
جذر unroll مع صفيف معقد
Unroll من قِبل | جذر Unroll | إسقاط |
---|---|---|
goods.orders.shipped.orderItem | البضائع. الأوامر | اسم orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty الموقع= الموقع |
الإخراج
{ 'MSFT', 1, 'Laptop', 20, 'Redmond'}
{ 'MSFT', 1, 'Charger', 2, 'Redmond'}
{ 'MSFT', 2, 'Mice', 2, 'Redmond'}
{ 'MSFT', 2, 'Keyboard', 1, 'Redmond'}
{ 'Company1', 4, 'Laptop', 20, 'Seattle'}
{ 'Company1', 4, 'Charger', 3, 'Seattle'}
{ 'Company1', 5, 'Chair', 4, 'Seattle'}
{ 'Company1', 5, 'Lamp', 2, 'Seattle'}
{ 'Company2', 4, null, null, 'Bellevue'}
البرنامج النصي لتدفق البيانات
بناء الجملة
<incomingStream>
foldDown(unroll(<unroll cols>),
mapColumn(
name,
each(<array>(type == '<arrayDataType>')),
each(<array>, match(true())),
location
)) ~> <transformationName>
مثال
source foldDown(unroll(goods.orders.shipped.orderItems, goods.orders),
mapColumn(
name,
orderId = goods.orders.orderId,
itemName = goods.orders.shipped.orderItems.itemName,
itemQty = goods.orders.shipped.orderItems.itemQty,
location = location
),
skipDuplicateMapInputs: false,
skipDuplicateMapOutputs: false)
المحتوى ذو الصلة
- استخدمتحويل العرض المحوريلتحويل صفوف العرض المحورية إلى أعمدة.
- استخدمتحويل إلغاء العرض المحوريلتحويل صفوف إلغاء العرض المحورية إلى أعمدة.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ