انسخ البيانات وحوّلها في قاعدة بيانات Azure لـ PostgreSQL باستخدام Azure Data Factory أو Synapse Analytics

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

تلميح

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

توضح هذه المقالة كيفية استخدام نسخ النشاط في Azure Data Factory وخطوط أنابيب Synapse Analytics لنسخ البيانات من وإلى قاعدة بيانات Azure لـ PostgreSQL، واستخدام تدفق البيانات لتحويل البيانات في قاعدة بيانات Azure لـ PostgreSQL. للتعرف على المزيد، اقرأ المقالات التمهيدية حول Azure Data Factory وSynapse Analytics.

هذا الموصل مخصص لـ قاعدة بيانات Azure لخدمة PostgreSQL . لنسخ البيانات من قاعدة بيانات PostgreSQL العامة الموجودة في أماكن العمل أو في السحابة، استخدم موصل PostgreSQL .

القدرات المدعومة

قاعدة بيانات Azure للموصل PostgreSQL مدعومة للإمكانيات التالية:

القدرات المدعومة IR نقطة النهاية الخاصة المُدارة
Copy activity (المصدر/المتلق) (1) (2)
تعيين تدفق البيانات (المصدر/ المتلقي) (1)
نشاط البحث (1) (2)

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

تعمل الأنشطة الثلاثة على جميع خيارات توزيع قاعدة بيانات Azure لـ PostgreSQL:

الشروع في العمل

لتنفيذ نشاط النسخ باستخدام أحد المسارات، يمكنك استخدام إحدى الأدوات أو عدد تطوير البرامج التالية:

إنشاء خدمة مرتبطة بقاعدة بيانات Azure ل PostgreSQL باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة بقاعدة بيانات Azure لـ PostgreSQL في واجهة مستخدم مدخل Microsoft Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. ابحث عن PostgreSQL وحدد قاعدة بيانات Azure لموصل PostgreSQL.

    حدد قاعدة بيانات Azure للموصل PostgreSQL.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    تكوين خدمة مرتبطة بقاعدة بيانات Azure لـ PostgreSQL.

تفاصيل تكوين الموصل

تقدم الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بقاعدة بيانات Azure لموصل PostgreSQL.

خصائص الخدمة المرتبطة

الخصائص التالية مدعومة لقاعدة بيانات Azure للخدمة المرتبطة بـ PostgreSQL:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع على: AzurePostgreSql . ‏‏نعم‬
سلسلة الاتصال سلسلة اتصال ODBC للاتصال بقاعدة بيانات Azure لـ PostgreSQL.
يمكنك أيضًا وضع كلمة مرور في Azure Key Vault وسحب تكوين password خارج سلسلة الاتصال. راجع العينات التالية وبيانات اعتماد المخزن في Azure Key Vault لمزيد من التفاصيل.
‏‏نعم‬
connectVia تمثل هذه الخاصية وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

سلسلة الاتصال النموذجية هي Server=<server>.postgres.database.azure.com;Database=<database>;Port=<port>;UID=<username>;Password=<Password>. فيما يلي المزيد من الخصائص التي يمكنك تعيينها لكل حالة:

الخاصية ‏‏الوصف الخيارات المطلوب
طريقة التشفير (EM) الطريقة التي يستخدمها برنامج التشغيل لتشفير البيانات المرسلة بين برنامج التشغيل وخادم قاعدة البيانات. على سبيل المثال، EncryptionMethod=<0/1/6>; 0 (No Encryption) (Default) / 1 (SSL) / 6 (RequestSSL) لا
ValidateServerCertificate (VSC) يحدد ما إذا كان برنامج التشغيل يتحقق من صحة الشهادة التي تم إرسالها بواسطة خادم قاعدة البيانات عند تمكين تشفير SSL (طريقة التشفير = 1). على سبيل المثال، ValidateServerCertificate=<0/1>; 0 (معطل) (افتراضي) / 1 (ممكّن) لا

مثال:

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>.postgres.database.azure.com;Database=<database>;Port=<port>;UID=<username>;Password=<Password>"
        }
    }
}

مثال:

تخزين كلمة المرور في Azure Key Vault

{
    "name": "AzurePostgreSqlLinkedService",
    "properties": {
        "type": "AzurePostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>.postgres.database.azure.com;Database=<database>;Port=<port>;UID=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        }
    }
}

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

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

لنسخ البيانات من قاعدة بيانات Azure لـ PostgreSQL، عيّن خاصية النوع لمجموعة البيانات إلى AzurePostgreSqlTable . تدعم الخصائص التالية:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمجموعة البيانات على AzurePostgreSqlTable ‏‏نعم‬
اسم الجدول اسم الجدول لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)

مثال:

{
    "name": "AzurePostgreSqlDataset",
    "properties": {
        "type": "AzurePostgreSqlTable",
        "linkedServiceName": {
            "referenceName": "<AzurePostgreSql linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {}
    }
}

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

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

قاعدة بيانات Azure لـ PostgreSql كمصدر

لنسخ البيانات من قاعدة بيانات Azure لـ PostgreSQL، عيّن نوع المصدر في نشاط النسخ إلى AzurePostgreSqlSource . تُدعم الخصائص التالية في قسم مصدر نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمصدر نشاط النسخ على AzurePostgreSqlSource ‏‏نعم‬
استعلام استخدم استعلام SQL المخصص لقراءة البيانات. على سبيل المثال: SELECT * FROM mytable أو SELECT * FROM "MyTable". ملاحظة في PostgreSQL، يتم التعامل مع اسم الكيان على أنه غير حساس لحالة الأحرف إذا لم يتم اقتباسه. لا (إذا تم تحديد خاصية اسم الجدول في مجموعة البيانات)
خيارات التقسيم يحدد خيارات تقسيم البيانات المستخدمة لتحميل البيانات من قاعدة بيانات Azure SQL.
القيم المسموح بها هي: None (افتراضي)، وPhysicalPartitionsOfTable، وDynamicRange.
عند تمكين خيار القسم (أي ليس None)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من قاعدة بيانات Azure SQL من خلال الإعداد parallelCopies في نشاط النسخ.
لا
partitionSettings حدد مجموعة الإعدادات الخاصة بتقسيم البيانات.
تطبيق عندما لا يكون خيار التقسيم None.
لا
تحت partitionSettings:
أسماء أقسام قائمة الأقسام المادية التي يجب نسخها.
تُطبق عندما يكون خيار التقسيم هو PhysicalPartitionsOfTable. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfTabularPartitionName في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL .
لا
partitionColumnName حدد اسم عمود المصدر بعدد صحيح أو نوع التاريخ/التاريخ والوقت (int أو smallint أو bigint أو date أو timestamp without time zone أو timestamp with time zone أو time without time zone) التي سيتم استخدامها عن طريق تقسيم النطاق للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف المفتاح الأساسي للجدول تلقائياً واستخدامه كعمود قسم.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionColumnName في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL .
لا
التقسيم الحد الأقصى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionUpbound في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL .
لا
partitionLowerBound الحد الأدنى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionLowbound في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL .
لا

مثال:

"activities":[
    {
        "name": "CopyFromAzurePostgreSql",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<AzurePostgreSql input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzurePostgreSqlSource",
                "query": "<custom query e.g. SELECT * FROM mytable>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

قاعدة بيانات Azure لـ PostgreSQL كمصدر

لنسخ البيانات إلى قاعدة بيانات Azure لـ PostgreSQL، يتم دعم الخصائص التالية في قسم حوض نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ على AzurePostgreSQLSink . ‏‏نعم‬
preCopyScript حدد استعلام SQL لنشاط النسخ لتنفيذه قبل كتابة البيانات في قاعدة بيانات Azure لـ PostgreSQL في كل تشغيل. يمكنك استخدام هذه الخاصية لتنظيف البيانات المحملة مسبقاً. لا
writeMethod الطريقة المستخدمة لكتابة البيانات في قاعدة بيانات Azure لـ PostgreSQL.
القيم المسموح بها هي: CopyCommand (افتراضي، أيهما أكثر أداءً)، BulkInsert .
لا
writeBatchSize عدد الصفوف التي تم تحميلها في قاعدة بيانات Azure لـ PostgreSQL لكل دفعة.
القيمة المسموح بها هي عدد صحيح يمثل عدد الصفوف.
لا (الافتراضي هو 1,000,000)
writeBatchTimeout وقت الانتظار حتى تكتمل عملية إدراج الدُفعة قبل انتهاء مهلتها.
القيم المسموح بها هي سلاسل Timespan. مثال على ذلك هو 00:30:00 (30 دقيقة).
لا (الافتراضي هو 00:30:00)

مثال:

"activities":[
    {
        "name": "CopyToAzureDatabaseForPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure PostgreSQL output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzurePostgreSQLSink",
                "preCopyScript": "<custom SQL script>",
                "writeMethod": "CopyCommand",
                "writeBatchSize": 1000000
            }
        }
    }
]

نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL

توفر قاعدة بيانات Azure لموصل PostgreSQL في نشاط النسخ تقسيماً مضمناً للبيانات لنسخ البيانات بشكل متوازٍ. يمكنك العثور على خيارات تقسيم البيانات في علامة التبويب Source لنشاط النسخ.

لقطة شاشة لخيارات التقسيم

عند تمكين النسخة المقسمة، يقوم نشاط النسخ بتشغيل استعلامات متوازية مقابل قاعدة بيانات Azure لمصدر PostgreSQL لتحميل البيانات حسب الأقسام. يتم التحكم في الدرجة المتوازية بواسطة parallelCopies الإعداد على نشاط النسخ. على سبيل المثال، إذا قمت بتعيين parallelCopies على أربعة، تقوم الخدمة في نفس الوقت بإنشاء وتشغيل أربعة استعلامات بناءً على خيار القسم المحدد والإعدادات، ويسترد كل استعلام جزءاً من البيانات من قاعدة بيانات Azure الخاصة بك لـ PostgreSQL.

يُقترح عليك تمكين النسخ المتوازي مع تقسيم البيانات خاصة عند تحميل كمية كبيرة من البيانات من قاعدة بيانات Azure الخاصة بك لـ PostgreSQL. فيما يلي تكوينات مقترحة لسيناريوهات مختلفة. عند نسخ البيانات إلى مخزن بيانات مستند إلى ملف، يوصى بالكتابة إلى مجلد كملفات متعددة (حدد اسم المجلد فقط)، وفي هذه الحالة يكون الأداء أفضل من الكتابة إلى ملف واحد.

السيناريو الإعدادات المقترحة
تحميل كامل من جدول كبير بأقسام فعلية. خيار التقسيم: أقسام فعلية للجدول.

أثناء التنفيذ، تكتشف الخدمة تلقائياً الأقسام المادية ونسخ البيانات حسب الأقسام.
تحميل كامل من جدول كبير، دون أقسام فعلية، مع وجود عمود لعدد صحيح لتقسيم البيانات. خيارات التقسيم: تقسيم النطاق الديناميكي.
عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات. إذا لم يتم تحديده، فسيتم استخدام عمود المفتاح الأساسي.
قم بتحميل كمية كبيرة من البيانات باستخدام استعلام مخصص بأقسام فعلية. خيار التقسيم: أقسام فعلية للجدول.
استعلام: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.
اسم القسم: حدد اسم (أسماء) القسم لنسخ البيانات منه. إذا لم يتم تحديد الخدمة تلقائياً بالكشف عن الأقسام الفعلية المذكورة بالجدول المحدد في مجموعة بيانات Oracle.

أثناء التنفيذ، تستبدل الخدمة ?AdfTabularPartitionName باسم القسم الفعلي، وترسل إلى قاعدة بيانات Azure لـ PostgreSQL.
يمكنك تحميل كمية كبيرة من البيانات باستخدام استعلام مخصص، بدون أقسام فعلية، أثناء استخدام عمود مخصص لعدد صحيح لتقسيم البيانات. خيارات التقسيم: تقسيم النطاق الديناميكي.
استعلام: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات. يمكنك التقسيم مقابل العمود بعدد صحيح أو نوع بيانات التاريخ / التاريخ والوقت.
الحد الأعلى للتقسيموالحد الأدنى للتقسيم: تحديد إذا ما كنت تريد التصفية مقابل عمود التقسيم لاسترداد البيانات فقط بين النطاقين الأدنى والأعلى.

أثناء التنفيذ، تستبدل الخدمة ?AdfRangePartitionColumnName و?AdfRangePartitionUpbound و?AdfRangePartitionLowbound باسم العمود الفعلي ونطاقات القيمة لكل قسم، وترسل إلى قاعدة بيانات Azure لـ PostgreSQL.
على سبيل المثال، إذا تم تعيين "ID" عمود القسم الخاص بك مع الحد الأدنى كـ 1 والحد الأعلى كـ 80، مع تعيين النسخة المتوازية على 4، تقوم الخدمة باسترداد البيانات من خلال 4 أقسام. هوياتهم تتراوح بين [1،20]، [21، 40]، [41، 60]، [61، 80] على التوالي.

أفضل الممارسات لتحميل البيانات مع خيار التقسيم:

  1. اختر عمود مميز كعمود تقسيم (مثل المفتاح الأساسي أو المفتاح الفريد) لتجنب انحراف البيانات.
  2. إذا كان الجدول يحتوي على قسم مضمن، فاستخدم خيار القسم "الأقسام المادية للجدول" للحصول على أداء أفضل.
  3. إذا كنت تستخدم Azure Microsoft Integration Runtime لنسخ البيانات لكن يمكنك تعيين "وحدات تكامل بيانات (DIU)" (> 4) أكبر للاستفادة من المزيد من موارد الحوسبة. تحقق من السيناريوهات القابلة للتطبيق هناك.
  4. تتحكم "درجة توازي النسخ" في أرقام التقسيم، ويؤدي تعيين هذا الرقم إلى عدد كبير جداً في بعض الأحيان إلى الإضرار بالأداء، ويوصي بتعيين هذا الرقم إلى (DIU أو عدد عقد وقت تشغيل التكامل المستضاف ذاتياً) * (2 إلى 4).

مثال: تحميل كامل من جدول كبير مع أقسام فعلية

"source": {
    "type": "AzurePostgreSqlSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

مثال: الاستعلام مع تقسيم النطاق الديناميكي

"source": {
    "type": "AzurePostgreSqlSource",
    "query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

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

عند تحويل البيانات في تعيين تدفق البيانات، يمكنك القراءة والكتابة في الجداول من قاعدة بيانات Azure لـ PostgreSQL. لمزيد من المعلومات، راجع تحويل المصدر و تحويل المتلقي في تعيين تدفقات البيانات. يمكنك اختيار استخدام قاعدة بيانات Azure لمجموعة بيانات PostgreSQL أو مجموعة بيانات مضمنة كنوع مصدر وحوض.

تحويل المصدر

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

Name ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
جدول إذا حددت الجدول كمدخلات، فإن تدفق البيانات يجلب جميع البيانات من الجدول المحدد في مجموعة البيانات. لا - (لمجموعة البيانات المضمنة فقط)
اسم الجدول
الاستعلام إذا حددت الاستعلام كإدخال، فحدد استعلام SQL لجلب البيانات من المصدر، والذي يتجاوز أي جدول تحدده في مجموعة البيانات. يعد استخدام الاستعلامات طريقة رائعة لتقليل عدد الصفوف للاختبار أو عمليات البحث.

لا يتوفر دعم لعبارة Order By، ولكن يمكنك تعيين عبارة SELECT FROM كاملة. يمكنك أيضاً استخدام وظائف الجدول المعرفة بواسطة المستخدم. تحديد * من udfGetData() هو UDF في SQL الذي يقوم بإرجاع جدول يمكنك استخدامه في تدفق البيانات.
مثال على استعلام: select * from mytable where customerId > 1000 and customerId < 2000 أو select * from "MyTable". ملاحظة في PostgreSQL، يتم التعامل مع اسم الكيان على أنه غير حساس لحالة الأحرف إذا لم يتم اقتباسه.
لا السلسلة‬ استعلام
اسم المخطط إذا حددت الإجراء المخزن كإدخال، فحدد اسم مخطط للإجراء المخزن، أو حدد "تحديث" لمطالبة الخدمة باكتشاف أسماء المخططات. لا السلسلة‬ اسم المخطط
الإجراء المخزّن إذا حددت الإجراء المخزن كإدخال، فحدد اسم الإجراء المخزن لقراءة البيانات من الجدول المصدر، أو حدد تحديث لمطالبة الخدمة باكتشاف أسماء الإجراءات. نعم (إذا حددت الإجراء المخزّن كإدخال) السلسلة‬ procedureName
معلمات الإجـراء إذا حددت الإجراء المخزن كإدخال، فحدد أي معلمات إدخال للإجراء المخزن في الترتيب الذي تم تعيينه فـي الإجراء، أو حدد استيراد لاستيراد كافة معلمات الإجراء باستخدام النموذج @paraName. لا صفيف إدخال
حجم الدفعة حدد حجم الدُفعة لتقسيم البيانات الكبيرة إلى دُفعات. لا رقم صحيح batchSize
مستوى العزل اختر أحد مستويات العزل التالية:
- قراءة ثابتة
- قراءة غير ثابتة (افتراضي)
- القراءة المتكررة
- قابل للتسلسل
- لا شيء (تجاهل مستوى العزل)
لا READ_COMMITTED
READ_UNCOMMITTED
REPEATABLE_READ
SERIALIZABLE
لا
isolationLevel

قاعدة بيانات Azure لمثال البرنامج النصي المصدر PostgreSQL

عند استخدام قاعدة بيانات Azure لـ PostgreSQL كنوع مصدر، يكون البرنامج النصي لتدفق البيانات المرتبط هو:

source(allowSchemaDrift: true,
    validateSchema: false,
    isolationLevel: 'READ_UNCOMMITTED',
    query: 'select * from mytable',
    format: 'query') ~> AzurePostgreSQLSource

تحويل المتلقي

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

Name ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
أسلوب التحديث حدد العمليات المسموح بها في وجهة قاعدة البيانات. الوضع الافتراضي هو السماح فقط بالإدراج.
لتحديث صفوف أو إجراء upsert "إدراج الصفوف أو تحديثها" أو حذفها، يلزم إجراء تحويل في الصف المعدل لوضع علامة على الصفوف التي تخضع لتلك الإجراءات.
‏‏نعم‬ true أو false قابل للحذف
قابلة للادراج
قابل للتحديث
قابل للإدراج أو التحديث
الأعمدة الرئيسية للتحديثات وعمليات الإدراج أو التحديث "upsert" والحذف، يجب تعيين عمود (أعمدة) المفاتيح لتحديد الصف المطلوب تعديله.
سيتم استخدام اسم العمود الذي تختاره كمفتاح كجزء من التحديث، أو upsert، أو الحذف اللاحق. لذلك، يجب اختيار عمود موجود في تعيين "المتلقي".
لا صفيف المفاتيح
تخطي كتابة أعمدة المفتاح إذا كنت ترغب في عدم كتابة القيمة إلى عمود المفتاح، فحدد "Skip writing key columns". لا true أو false skipKeyWrites
إجراء الجدول يحدد ما إذا كان سيتم إعادة إنشاء أو إزالة كل الصفوف من الجدول الوجهة قبل الكتابة.
- None: لن يتم اتخاذ أي إجراء على الجدول.
- Recreate: سيتم إسقاط الجدول وإعادة إنشائه. مطلوب في حال إنشاء جدول جديد بشكل ديناميكي.
- Truncate: سيتم إزالة جميع الصفوف من الجدول الهدف.
لا true أو false إعادة إنشاء
اقتطاع
حجم الدفعة حدد عدد الصفوف التي تتم كتابتها في كل دُفعة. تعمل أحجام الدُفعات الأكبر على تحسين الضغط والذاكرة، ولكنها تخاطر بنفاد استثناءات الذاكرة عند تخزين البيانات مؤقتاً. لا رقم صحيح batchSize
تحديد مخطط قاعدة بيانات المستخدم بشكل افتراضي، سيتم إنشاء جدول مؤقت ضمن مخطط المتلقي كتقسيم مرحلي. يمكنك بدلاً من ذلك إلغاء تحديد الخيار استخدام مخطط المتلقي، وبدلاً من ذلك، حدد اسم مخطط سيقوم مصنع البيانات بإنشاء جدول مرحلي ضمنه لتحميل البيانات الأولية وتنظيفها تلقائياً عند الانتهاء. تأكد من حصولك على إذن إنشاء الجدول في قاعدة البيانات وقم بتغيير الإذن في المخطط. لا السلسلة‬ stagingSchemaName
نصوص SQL السابقة واللاحقة حدد نصوص SQL متعددة الأسطر التي سيتم تنفيذها قبل (المعالجة المسبقة) وبعد (المعالجة اللاحقة) كتابة البيانات في قاعدة بيانات المتلقي. لا السلسلة‬ preSQLs
postSQLs

تلميح

  1. يوصى بتقسيم البرامج النصية دفعة واحدة مع أوامر مُتعددة إلى دفعات متعددة.
  2. يمكن فقط تشغيل عبارات لغة تعريف البيانات (DDL) ولغة معالجة البيانات (DML) التي ترجع عدد تحديثات بسيط كجزء مـن دفعة. تعرَّف على المزيد من خلال تنفيذ عمليات الدُفعات
  • تمكين الاستخراج التزايدي: استخدم هذا الخيار لإخبار ADF بمعالجة الصفوف التي تغيرت منذ آخر مرة تم فيها تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية فقط.

  • عمود تزايدي: عند استخدام ميزة الاستخراج التزايدي، يجب اختيار التاريخ/الوقت أو العمود الرقمي الذي ترغب في استخدامه كعلامة مائية في الجدول المصدر.

  • بدء القراءة من البداية: سيؤدي تعيين هذا الخيار باستخدام الاستخراج التزايدي إلى توجيه ADF لقراءة جميع الصفوف عند التنفيذ الأول للبنية الأساسية مع تشغيل الاستخراج الإضافي.

مثال على قاعدة بيانات Azure لبرنامج نصي متلقي PostgreSQL

عند استخدام قاعدة بيانات Azure لـ PostgreSQL كنوع متلقي، يكون البرنامج النصي لتدفق البيانات المرتبط هو:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:false,
    insertable:true,
    updateable:true,
    upsertable:true,
    keys:['keyColumn'],
    format: 'table',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> AzurePostgreSQLSink

بحث عن خصائص النشاط

لمزيد من المعلومات حول الخصائص، راجع نشاط البحث.

للحصول على قائمة بمخازن البيانات المدعومة كمصادر ومتلقين من خلال نشاط النسخ، انظر مخازن البيانات المدعومة .