تنسيق 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_
. ويسترد مساحة الاسم للعنصر أيضاً إذا تم تطبيقه.
- إذا كان عنصر XML يحتوي على قيمة نصية بسيطة وعناصر سمات/عناصر فرعية، يتم تحليل قيمة النص البسيط كقيمة "عمود القيمة" مع اسم الحقل المضمن