تنسيق نص محدد في Azure Data Factory وتحليلات Azure Synapse

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

تلميح

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

اتبع هذه المقالة عندما تريد تحليل الملفات النصية المحددة أو كتابة البيانات بتنسيق نص محدد.

تنسيق النص المحدد مدعوم للموصلات التالية:

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى DelimitedText. ‏‏نعم‬
موقع إعدادات الموقع للملف (الملفات). يحتوي كل موصل يستند إلى ملف على نوع الموقع الخاص به وخصائص مدعومة ضمن location. ‏‏نعم‬
columnDelimiter الحرف (الحروف) المستخدمة في فصل الأعمدة في ملف.
القيمة الافتراضية هي الفاصلة ,. عندما يتم تعريف محدد العمود على أنه سلسلة فارغة، ما يعني عدم وجود محدد، يتم أخذ السطر بالكامل كعمود واحد.
حالياً، يتم دعم تحديد العمود كسلسلة فارغة فقط لتخطيط تدفق البيانات ولكن ليس نشاط نسخ.
لا
rowDelimiter لنشاط النسخ، يتم استخدام الحرف المفرد أو "\r\n" لفصل الصفوف في الملف. تعد القيمة الافتراضية هي أي من القيم التالية على القراءة: ["\r\n", "\r", "\n"]; على الكتابة: "\r\n". يتم دعم "\r\n" فقط في أمر النسخ.
لتعيين تدفق البيانات، يتم استخدام حرف واحد أو حرفين لفصل الصفوف في الملف. تعد القيمة الافتراضية هي أي من القيم التالية على القراءة: ["\r\n", "\r", "\n"]; على الكتابة: "\n".
عند تعيين محدد الصف على بلا محدد (سلسلة فارغة)، يجب تعيين محدد العمود على أنه بلا محدد (سلسلة فارغة) أيضاً، ما يعني معاملة المحتوى بالكامل كقيمة واحدة.
حالياً، محدد الصف كسلسلة فارغة مدعوم فقط لتعيين تدفق البيانات ولكن ليس نشاط النسخ.
لا
quoteChar الحرف الفردي المراد لاقتباس قيم العمود إذا كان يحتوي على محدد العمود.
القيمة الافتراضية هي علامتي الاقتباس".
عندما quoteCharيتم تعريفها كسلسلة فارغة، فهذا يعني أنه لا يوجد حرف اقتباس ولا يتم اقتباس قيمة العمود، وescapeCharيتم استخدامها للهروب من محدد العمود نفسه.
لا
escapeChar حرف واحد للهروب يقتبس داخل قيمة مقتبسة.
القيمة الافتراضية هي الخط المائل العكسي\.
عندما escapeCharيتم تعريف كسلسلة فارغةquoteChar، يجب تعيين سلسلة فارغة أيضاً، وفي هذه الحالة تأكد من أن جميع قيم الأعمدة لا تحتوي على محددات.
لا
firstRowAsHeader يحدد ما إذا كان سيتم معاملة/جعل الصف الأول كسطر عنوان بأسماء الأعمدة.
القيم المسموح بها هي صوابو خطأ (افتراضياً).
عندما يكون الصف الأول كعنوان خاطئاً، لاحظ أن معاينة بيانات واجهة المستخدم ومخرجات نشاط البحث تنشئ تلقائياًً أسماء أعمدة كـ Prop_ {n} (بدءاً من 0)، يتطلب نشاط النسخ تعييناً صريحاً من المصدر إلى المتلقي وتحديد موقع الأعمدة حسب ترتيبي (بدءاً من 1)، وتعيين قوائم تدفق البيانات وتحديد مواقع الأعمدة التي تحمل الاسم كـ Column_ {n} (بدءاً من 1).
لا
قيمة خالية يحدد تمثيل السلسلة للقيمة الخالية.
القيمة الافتراضية هي سلسلة فارغة.
لا
encodingName نوع الترميز المُستخدم لقراءة/ كتابة ملفات الاختبار.
فيما يلي القيم المسموح بها: "UTF-8","UTF-8 without BOM", "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".
ملاحظة لا يعتمد تدفق بيانات التعيين ترميز UTF-7.
لاحظ أن تدفق بيانات التعيين لا يدعم ترميز UTF-8 مع علامة ترتيب البايت (BOM).
لا
compressionCodec برنامج ضغط الوسائط وفكها المستخدم لقراءة/كتابة ملفات نصية.
القيم المسموح بها هي 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 في مصدر نشاط النسخ للتحكم في الاحتفاظ باسم الملف (الملفات) المضغوطة كهيكل مجلد.
لا
compressionLevel نسبة الضغط.
القيم المسموح بها هي Optimal أو Fastest.
- الأسرع: يجب أن تكتمل عملية الضغط بأسرع وقت ممكن، حتى إذا لم يتم ضغط الملف الناتج بشكل أمثل.
- الأمثل : يجب ضغط عملية الضغط على النحو الأمثل، حتى لو استغرقت العملية وقتاً أطول حتى تكتمل. لمزيد من المعلومات، يمكنك الاطلاع على موضوع مستوى الضغط.
لا

فيما يلي مثال على مجموعة بيانات النص المحدد على تخزين كائن ثنائي كبير الحجم في Azure:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "escapeChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

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

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

نص محدد كمصدر

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

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

دعم إعدادات قراءة النص المحدد ضمن formatSettings:

الخاصية الوصف مطلوب
النوع يجب تعيين نوع formatSettings إلى DelimitedTextReadSettings. ‏‏نعم‬
skipLineCount يشير إلى عدد الصفوف غير الفارغة المطلوب تخطيها عند قراءة البيانات من ملفات الإدخال.
إذا تم تحديد كل من skipLineCount وfirstRowAsHeader، يتم تخطي الأسطر أولا ثم تتم قراءة معلومات العنوان من ملف الإدخال.
لا
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>. تأكد من عدم تكرار أسماء الملفات في ملفات مصدر مختلفة لتجنب السباق أو السلوك غير المتوقع.
لا
"activities": [
    {
        "name": "CopyFromDelimitedText",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "storeSettings": {
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                },
                "formatSettings": {
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 3,
                    "compressionProperties": {
                        "type": "ZipDeflateReadSettings",
                        "preserveZipFileNameAsFolder": false
                    }
                }
            },
            ...
        }
        ...
    }
]

نص محدد كمتلقي

الخصائص التالية مدعومة في نشاط النسخ * lمتلقي * القسم.

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

دعم إعدادات كتابة النص المحدد ضمن formatSettings:

الخاصية الوصف مطلوب
النوع يجب تعيين نوع formatSettings (إعدادات التنسيق) على DelimitedTextWriteSettings . ‏‏نعم‬
fileExtension ملحق الملف المستخدم لتسمية ملفات الإخراج، على سبيل المثال، .csv، .txt. يجب أن يتم تحديد عندما fileName لا يتم تحديد في مجموعة البيانات إخراج DelimitedText. عند تكوين اسم الملف في مجموعة بيانات الإخراج، سيتم استخدامه كاسم ملف مصدر وسيتم تجاهل إعداد ملحق الملف. نعم عندما لا يتم تحديد اسم الملف في مجموعة بيانات الإخراج
maxRowsPerFile عند كتابة البيانات في مجلد، يمكنك اختيار الكتابة إلى ملفات متعددة وتحديد الصفوف القصوى لكل ملف. لا
fileNamePrefix قابل للتطبيق عند تكوين maxRowsPerFile.
حدد بادئة اسم الملف عند كتابة البيانات إلى ملفات متعددة، مما أدى إلى هذا النمط: <fileNamePrefix>_00000.<fileExtension>. إذا لم يتم تحديد، سيتم إنشاء بادئة اسم الملف تلقائياً. لا تنطبق هذه الخاصية عندما يكون المصدر مخزن مستند إلى ملف أو مخزن بيانات تمكين خيار القسم.
لا

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

عند تعيين تدفقات البيانات، يمكنك القراءة والكتابة إلى تنسيق نص محدد في مخازن البيانات التالية: Azure Blob Storage، وAzure Data Lake Storage Gen1، وAzure Data Storage Gen2، وsftp، ويمكنك قراءة تنسيق النص المحدد في Amazon S3.

مجموعة بيانات مضمنة

يدعم تعيين تدفقات البيانات "مجموعات البيانات المضمنة" كخيار لتعريف المصدر والمتلقي. يتم تعريف مجموعة البيانات المحددة المضمنة مباشرة داخل تحويلات المصدر والمتلقي ولا تتم مشاركتها خارج تدفق البيانات المحدد. من المفيد تحديد معلمات خصائص مجموعة البيانات مباشرة داخل تدفق البيانات الخاص بك ويمكن أن تستفيد من الأداء المحسن من مجموعات بيانات ADF المشتركة.

عند قراءة أعداد كبيرة من المجلدات والملفات المصدر، يمكنك تحسين أداء اكتشاف ملف تدفق البيانات عن طريق تعيين الخيار "مخطط المستخدم المتوقع" داخل العرض | مربع حوار خيارات المخطط. يؤدي هذا الخيار إلى إيقاف تشغيل الاكتشاف التلقائي للمخطط الافتراضي ل ADF وسيحسن أداء اكتشاف الملفات بشكل كبير. قبل تعيين هذا الخيار، تأكد من استيراد الإسقاط بحيث يحتوي ADF على مخطط موجود للإسقاط. لا يعمل هذا الخيار مع انحراف المخطط.

خصائص المصدر

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

الاسم ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
مسارات محرف البدل ستتم معالجة جميع الملفات المطابقة لمسار محرف البدل. يتجاوز المجلد ومسار الملف المحددين في مجموعة البيانات. no سلسلة[] wildcardPaths
مسار جذر التقسيم بالنسبة لبيانات الملف المقسمة، يمكنك إدخال مسار جذر القسم لقراءة المجلدات المقسمة كأعمدة no السلسلة‬ partitionRootPath
قائمة الملفات ما إذا كان المصدر يشير إلى ملف نصي يسرد الملفات المراد معالجتها no true أو false قائمة الملفات
الصفوف متعددة الخطوط هل يحتوي الملف المصدر على صفوف تمتد على عدة أسطر. يجب أن تكون القيم متعددة الأسطر بين علامات الاقتباس. لا true أو false multiLineRow
عمود لتخزين اسم الملف إنشاء عمود جديد باسم الملف المصدر ومساره no السلسلة‬ rowUrlColumn
بعد الانتهاء احذف أو انقل الملفات بعد المعالجة. مسار الملف يبدأ من جذر الحاوية no حذف: true أو false
نقل: ['<from>', '<to>']
إزالة الملفات
نقل الملفات
التصفية حسب آخر تعديل اختيار تصفية الملفات استناداً إلى آخر مرة تم تبديلها no الطابع الزمني تم التعديل بعد ذلك
modifiedBefore
السماح بعدم العثور على أي ملفات إذا كان هذا صحيحاً، فلن يتم طرح خطأ إذا لم يتم العثور على ملفات no true أو false ignoreNoFilesFound
الحد الأقصى للأعمدة القيمة الافتراضية هي 20480. تخصيص هذه القيمة عندما يكون رقم العمود أكثر من 20480 no Integer maxColumns

إشعار

دعم مصادر تدفق البيانات لقائمة الملفات يقتصر على 1024 إدخالاً في ملفك. لتضمين المزيد من الملفات، استخدم أحرف البدل في قائمة الملفات.

مثال المصدر

الصورة أدناه هي مثال على تكوين مصدر نص محدد في تعيين تدفقات البيانات.

DelimitedText source

البرنامج النصي لتدفق البيانات المرتبط هو:

source(
    allowSchemaDrift: true,
	validateSchema: false,
	ignoreNoFilesFound: false,
	multiLineRow: true,
	wildcardPaths:['*.csv']) ~> CSVSource

إشعار

تدعم مصادر تدفق البيانات مجموعة محدودة من globbing Linux التي تدعمها أنظمة ملفات Hadoop

خصائص المتلقّي

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

الاسم ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
مسح المجلد إذا تم مسح المجلد الوجهة قبل الكتابة no true أو false اقتطاع
خيار اسم الملف تنسيق تسمية البيانات المكتوبة. بشكل افتراضي، ملف واحد لكل قسم بالتنسيق part-#####-tid-<guid> no النمط: سلسلة
لكل قسم: سلسلة[]
اسم الملف كبيانات عمود: سلسلة
الإخراج إلى ملف واحد: ['<fileName>']
تسمية المجلد كبيانات عمود: سلسلة
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames
rowFolderUrlColumn
اقتبس الكل إحاطة جميع القيم في عروض الأسعار no true أو false quoteAll
عنوان أضف عناوين العميل إلى ملفات الإخراج no [<string array>] العنوان

مثال على المتلقي

الصورة أدناه هي مثال على تكوين متلقي نص محدد في تعيين تدفقات البيانات.

DelimitedText sink

البرنامج النصي لتدفق البيانات المرتبط هو:

CSVSource sink(allowSchemaDrift: true,
    validateSchema: false,
    truncate: true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> CSVSink

فيما يلي بعض الروابط والتنسيقات الشائعة المتعلقة بتنسيق النص المحدد:

  • تخزين كائن ثنائي كبير الحجم فيAzure (connector-azure-blob-storage.md)
  • تنسيق ثنائي (format-binary.md)
  • Dataverse (connector-dynamics-crm-office-365.md)
  • تنسيق دلتا (format-delta.md)
  • تنسيق Excel (format-excel.md)
  • نظام الملفات (connector-file-system.md)
  • بروتوكول FTP (connector-ftp.md)
  • بروتوكول HTTP (connector-http.md)
  • تنسيق JSON (format-json.md)
  • تنسيق باركيه (تنسيق parquet.md)