تنسيق Avro في Azure Data Factory وSynapse Analytics

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

اتبع هذه المقالة عندما تريد تحليل ملفات XML.

تنسيق XML مدعوم للموصلات التالية: Amazon S3 وAmazon S3 Compatible Storage وAzure Blob وAzure Data Lake Storage Gen1 وAzure Data Lake Storage Gen2 وAzure Files وFile System وFTP وGoogle Cloud Storage وHDFS وHTTP وOracle Cloud Storage وSFTP. ويتم دعمه كمصدر ولكن ليس كمتلقياً.

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات. يوفر هذا القسم قائمة بالخصائص التي تدعمها مجموعة بيانات XML.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمجموعة البيانات على Xml. ‏‏نعم‬
مكان إعدادات الموقع للملف (الملفات). يحتوي كل موصل يستند إلى ملف على نوع الموقع الخاص به وخصائص مدعومة ضمن location. راجع التفاصيل الواردة في مقالة الموصل -> قسم خصائص مجموعة البيانات. ‏‏نعم‬
encodingName نوع الترميز المُستخدم لقراءة/ كتابة ملفات الاختبار.
فيما يلي القيم المسموح بها:: "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
لا
قيمة خالية يحدد تمثيل السلسلة للقيمة الخالية.
القيمة الافتراضية هي سلسلة فارغة.
لا
ضغط مجموعة من الخصائص لتكوين ضغط الملف. قم بتكوين هذا القسم عندما تريد الضغط / فك الضغط أثناء تنفيذ النشاط. لا
النوع
(أسفل compression)
برنامج ترميز الضغط المُستخدم لقراءة/كتابة ملفات XML.
القيم المسموح بها هي bzip2، أو gzip، أو deflate، أو ZipDeflate، أو TarGzip، أو Tar، أو snappy، أو lz4. لا يتم ضغط الافتراضي.
ملاحظة حالياً لا يدعم نشاط النسخ "snappy" و"lz4"، ولا يدعم تدفق البيانات الخرائط "ZipDeflate" و"TarGzip" و"Tar".
ملاحظة عند استخدام نشاط النسخ لفك ضغط ملف (ملفات) ZipDeflate/TarGzip /Tar والكتابة إلى ملف مستند إلى مخزن بيانات التخزين، يتم استخراج الملفات افتراضياً إلى المجلد: <path specified in dataset>/<folder named as source compressed file>/، استخدم preserveZipFileNameAsFolder/preserveCompressionFileNameAsFolder في مصدر نشاط النسخ للتحكم في الاحتفاظ باسم الملف (الملفات) المضغوطة كهيكل مجلد.
‏‏لا.
المستوى
(أسفل compression)
نسبة الضغط.
القيم المسموح بها هي Optimal أو Fastest.
- الأسرع: يجب أن تكتمل عملية الضغط بأسرع وقت ممكن، حتى إذا لم يتم ضغط الملف الناتج بشكل أمثل.
- الأمثل : يجب ضغط عملية الضغط على النحو الأمثل، حتى لو استغرقت العملية وقتاً أطول حتى تكتمل. لمزيد من المعلومات، يمكنك الاطلاع على موضوع مستوى الضغط.
لا

وفيما يلي مثال على مجموعة بيانات XML على Azure Blob Storage:

{
    "name": "XMLDataset",
    "properties": {
        "type": "Xml",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "ZipDeflate"
            }
        }
    }
}

انسخ خصائص النشاط

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يوفر هذا القسم قائمة بالخصائص التي يدعمها مصدر XML.

تعرف على كيفية تعيين بيانات XML وتلقي مخزن/تنسيق البيانات من تخطيط المخطط . عند معاينة ملفات XML، يتم عرض البيانات بتدرج هرمي JSON، ويمكنك استخدام مسار JSON للإشارة إلى الحقول.

XML كمصدر

يتم دعم الخصائص التالية في جزء نسخ النشاط *Source*. تعرف على المزيد من سلوك موصل XML.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى: XmlSource. ‏‏نعم‬
إعدادات التنسيقات مجموعة من الخصائص. راجع جدول إعدادات قراءة XML أدناه. لا
إعدادات المخزن lمجموعة من الخصائص حول كيفية قراءة البيانات من مخزن بيانات. يحتوي كل موصل يستند إلى ملف إعدادات القراءة المدعومة الخاصة به ضمن storeSettings. راجع التفاصيل في مقالة الموصل -> قسم خصائص نسخ النشاط. لا

إعدادات قراءة XML المعتمدة الواردة أدناه formatSettings:

الخاصية الوصف مطلوب
النوع يجب تعيين نوع formatSettings إلى XmlReadSettings. ‏‏نعم‬
validationMode يحدد ما إذا كان سيتم التحقق من صحة مخطط XML أم لا.
القيم المسموح بها هي none (افتراضي، لم يتم التحقق من الصحة)، xsd (التحقق من الصحة باستخدام XSD)، dtd (التحقق من الصحة باستخدام DTD).
لا
مساحات الأسماء ما إذا كان سيتم تمكين مساحة الاسم عند تحليل ملفات XML Hl أم لا. القيم المسموح بها هي "true" (افتراضي) و"false". لا
namespacePrefixes Namespace URI لتعيين البادئة، والذي يستخدم لتسمية الحقول عند تحليل ملف xml.
إذا احتوى ملف XML على مساحة اسم وتم تمكين مساحة الاسم، بشكل افتراضي، يكون اسم المجال هو نفسه الموجود في مستند XML.
إذا كان هناك عنصر محدد لمساحة الاسم URI في هذا التعليين، فإن اسم الحقل هو prefix:fieldName.
لا
detectDataType ما إذا كان سيتم الكشف عن أنواع البيانات الصحيحة والمزدوجة والمنطقية أم لا. القيم المسموح بها هي "true" (افتراضي) و"false". لا
compressionProperties مجموعة من الخصائص حول كيفية إلغاء ضغط البيانات من أجل برنامج ترميز ضغط معين. لا
preserveZipFileNameAsFolder
(ضمن compressionProperties->type كـ ZipDeflateReadSettings)
ينطبق عند تكوين مجموعة بيانات الإدخال بضغط ZipDeflate. يشير إلى ما إذا كان يجب الاحتفاظ باسم الملف البريدي المصدر كبنية مجلد أثناء النسخ.
- عند التعيين على "True" (افتراضي)، تكتب الخدمة الملفات التي تم فك ضغطها إلى <path specified in dataset>/<folder named as source zip file>/.
- عند التعيين على False، تقوم الخدمة بكتابة الملفات التي تم إلغاء ضغطها مباشرة إلى <path specified in dataset>. تأكد من عدم تكرار أسماء الملفات في مصدر ملفات zip المختلفة لتجنب السباق أو السلوك غير المتوقع.
لا
preserveCompressionFileNameAsFolder
( ضمن compressionProperties->type كـ TarGZipReadSettings أو TarReadSettings)
ينطبق عندما يتم تكوين مجموعة بيانات الإدخال بضغط TarGzip/Tar. يشير إلى ما إذا كان سيتم الاحتفاظ باسم الملف المضغوط المصدر كبنية مجلد أثناء النسخ.
- عند تعيين إلى "true" (افتراضي)، تكتب الخدمة الملفات التي تم فك ضغطها إلى <path specified in dataset>/<folder named as source compressed file>/.
- عند التعيين إلى "false"، تكتب الخدمة الملفات الغير مضغوطة مباشرة إلى <path specified in dataset>. تأكد من عدم تكرار أسماء الملفات في ملفات مصدر مختلفة لتجنب السباق أو السلوك غير المتوقع.
لا

تعيين خصائص تدفق البيانات

في تعيين تدفقات البيانات، يمكنك قراءة تنسيق XML في مخازن البيانات التالية: Azure Blob Storage وAzure Data Lake Storage Gen1 وAzure Data Lake Storage Gen2 وAmazon S3 وSFTP. يمكنك الإشارة إلى ملفات XML إما باستخدام مجموعة بيانات XML أو باستخدام مجموعة بيانات مضمنة.

خصائص المصدر

يسرد الجدول أدناه الخصائص المعتمدة من قبل مصدر XML. يمكنك تحرير هذه الخصائص في علامة التبويب Source options. تعرف على المزيد من سلوك موصل XML. عند استخدام مجموعة البيانات المضمنة، سترى إعدادات إضافية، وهي نفس الخصائص الموضحة في قسم خصائص مجموعة البيانات.

Name ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
مسارات محرف البدل ستتم معالجة جميع الملفات المطابقة لمسار محرف البدل. يتجاوز المجلد ومسار الملف المحددين في مجموعة البيانات. لا سلسلة[] wildcardPaths
مسار جذر التقسيم بالنسبة لبيانات الملف المقسمة، يمكنك إدخال مسار جذر القسم لقراءة المجلدات المقسمة كأعمدة لا السلسلة‬ partitionRootPath
قائمة الملفات ما إذا كان المصدر يشير إلى ملف نصي يسرد الملفات المراد معالجتها لا true أو false قائمة الملفات
عمود لتخزين اسم الملف إنشاء عمود جديد باسم الملف المصدر ومساره لا السلسلة‬ rowUrlColumn
بعد الانتهاء احذف أو انقل الملفات بعد المعالجة. مسار الملف يبدأ من جذر الحاوية لا حذف: true أو false
نقل: ['<from>', '<to>']
إزالة الملفات
نقل الملفات
التصفية حسب آخر تعديل اختيار تصفية الملفات استناداً إلى آخر مرة تم تبديلها لا طابع زمني تم التعديل بعد ذلك
modifiedBefore
وضع التحقق من الصحة يحدد ما إذا كان سيتم التحقق من صحة مخطط XML أم لا. لا None (افتراضي، لم يتم التحقق من الصحة)
xsd (التحقق من الصحة باستخدام XSD)
dtd (التحقق من الصحة باستخدام DTD).
validationMode
مساحة الاسم ما إذا كان سيتم تمكين مساحة الاسم عند تحليل ملفات XML Hl أم لا. لا true (افتراضي) أو false مساحات الأسماء
أزواج بادئة مساحة الاسم Namespace URI لتعيين البادئة، والذي يستخدم لتسمية الحقول عند تحليل ملف xml.
إذا احتوى ملف XML على مساحة اسم وتم تمكين مساحة الاسم، بشكل افتراضي، يكون اسم المجال هو نفسه الموجود في مستند XML.
إذا كان هناك عنصر محدد لمساحة الاسم URI في هذا التعليين، فإن اسم الحقل هو prefix:fieldName.
لا صفيف بنمط['URI1'->'prefix1','URI2'->'prefix2'] namespacePrefixes
السماح بعدم العثور على أي ملفات إذا كان هذا صحيحاً، فلن يتم طرح خطأ إذا لم يتم العثور على ملفات no true أو false ignoreNoFilesFound

مثال على برنامج نصي لمصدر XML

البرنامج النصي أدناه هو مثال على تكوين مصدر XML في تعيين تدفقات البيانات باستخدام وضع مجموعة البيانات.

source(allowSchemaDrift: true,
    validateSchema: false,
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

البرنامج النصي أدناه هو مثال على تكوين مصدر XML باستخدام وضع مجموعة البيانات المضمنة.

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'xml',
    fileSystem: 'filesystem',
    folderPath: 'folder',
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

سلوك موصل XML

لاحظ ما يلي عند استخدام XML كمصدر.

  • سمات XML:

    • يتم تحليل سمات العنصر بأنها الحقول الفرعية للعنصر في التدرج الهرمي.
    • اسم حقل السمة يتبع النمط @attributeName.
  • التحقق من صحة مخطط XML:

    • يمكنك اختيار عدم التحقق من صحة المخطط أو التحقق من صحة المخطط باستخدام XSD أو DTD.
    • عند استخدام XSD أو DTD للتحقق من صحة ملفات XML، يجب الإشارة إلى XSD / DTD داخل ملفات XML من خلال المسار النسبي.
  • معالجة مساحة الاسم:

    • يمكن تعطيل مساحة الاسم عند استخدام تدفق البيانات، وفي هذه الحالة سيتم تحليل السمات التي تحدد مساحة الاسم كسمات عادية.
    • عند تمكين مساحة الاسم، تتبع أسماء العنصر والسمات مساحة اسم النمط namespaceUri,elementName وnamespaceUri,@attributeName بشكل افتراضي. يمكنك تحديد بادئة مساحة الاسم لكل URI لمساحة الاسم في المصدر، وفي هذه الحالة تتبع أسماء العنصر والسمات النمط definedPrefix:elementName أو definedPrefix:@attributeName بدلاً من ذلك.
  • عمود القيمة:

    • إذا كان عنصر XML يحتوي على قيمة نصية بسيطة وعناصر سمات/عناصر فرعية، يتم تحليل قيمة النص البسيط كقيمة "عمود القيمة" مع اسم الحقل المضمن _value_. ويسترد مساحة الاسم للعنصر أيضاً إذا تم تطبيقه.