إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Azure Data Factory
Azure Synapse Analytics
Tip
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توضح هذه المقالة كيفية استخدام نشاط النسخ في البنية الأساسية لبرنامج ربط العمليات التجارية Azure Data Factory وSynapse Analytics لنسخ البيانات من وإلى قاعدة بيانات Azure ل PostgreSQL. وكيفية استخدام تدفق البيانات لتحويل البيانات في قاعدة بيانات Azure ل PostgreSQL. للتعرف على المزيد، اقرأ المقالات التمهيدية حول Azure Data Factory وSynapse Analytics.
Important
توفر Azure Database for PostgreSQL الإصدار 2.0 قاعدة بيانات Azure الأصلية المحسنة لدعم PostgreSQL. إذا كنت تستخدم Azure Database for PostgreSQL الإصدار 1.0 في الحل الخاص بك، فمن المستحسن ترقية قاعدة بيانات Azure لموصل PostgreSQL في أقرب وقت ممكن.
هذا الموصل مخصص لـ قاعدة بيانات Azure لخدمة PostgreSQL . لنسخ البيانات من قاعدة بيانات PostgreSQL عامة موجودة محليا أو في السحابة، استخدم موصل PostgreSQL.
الإمكانات المدعومة
قاعدة بيانات Azure للموصل PostgreSQL مدعومة للإمكانيات التالية:
| الإمكانات المدعومة | IR | نقطة النهاية الخاصة المُدارة | الإصدارات المدعومة من الموصل |
|---|---|---|---|
| Copy activity (المصدر/المتلق) | (1) (2) | ✓ | 1.0 و 2.0 |
| تعيين تدفق البيانات (المصدر/ المتلقي) | ① | ✓ | 1.0 و 2.0 |
| نشاط البحث | (1) (2) | ✓ | 1.0 و 2.0 |
| نشاط البرنامج النصي | (1) (2) | ✓ | 2.0 |
① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا
تعمل الأنشطة الثلاثة على قاعدة بيانات Azure ل PostgreSQL Single Serverوالخادم المرنوAzure Cosmos DB ل PostgreSQL.
Important
سيتم إيقاف Azure Database for PostgreSQL Single Server في 28 مارس 2025. الترحيل إلى Flexible Server بحلول ذلك التاريخ. يمكنك الرجوع إلى هذه المقالةوالأسئلة الشائعة للحصول على إرشادات الترحيل.
الشروع في العمل
لتنفيذ نشاط النسخ باستخدام خط أنابيب ، يمكنك استخدام إحدى الأدوات أو مجموعات SDK التالية:
- أداة نسخ البيانات
- مدخل Microsoft Azure
- .NET SDK
- Python SDK
- Azure PowerShell
- واجهة برمجة التطبيقات REST
- قالب Azure Resource Manager
إنشاء خدمة مرتبطة بقاعدة بيانات Azure ل PostgreSQL باستخدام واجهة المستخدم
استخدم الخطوات التالية لإنشاء خدمة مرتبطة بقاعدة بيانات Azure لـ PostgreSQL في واجهة مستخدم مدخل Microsoft Azure.
استعرض للوصول إلى علامة تبويب "Manage" في Azure Data Factory أو مساحة عمل Synapse وحدد "Linked Services"، ثم حدد "New":
ابحث عن PostgreSQL وحدد قاعدة بيانات Azure لموصل PostgreSQL.
قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.
تفاصيل تكوين الموصل
تقدم الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بقاعدة بيانات Azure لموصل PostgreSQL.
خصائص الخدمة المرتبطة
تدعم قاعدة بيانات Azure لموصل PostgreSQL الإصدار 2.0 أمان طبقة النقل (TLS) 1.3 وأوضاع طبقة مأخذ التوصيل الآمنة (SSL) المتعددة. راجع هذا القسم لترقية إصدار موصل قاعدة بيانات Azure SQL من الإصدار 1.0. للحصول على تفاصيل الخاصية، راجع الأقسام المقابلة.
الإصدار 2.0
يتم دعم الخصائص التالية لخدمة Azure Database for PostgreSQL المرتبطة عند تطبيق الإصدار 2.0:
| Property | Description | Required |
|---|---|---|
| type | يجب تعيين خاصية النوع إلى: AzurePostgreSql. | Yes |
| version | الإصدار الذي تحدده. القيمة هي 2.0. |
Yes |
| authenticationType | حدد من بين أنواع مصادقة الهوية المدارة الأساسية أو كيان الخدمة أو الهوية المدارة المعينة من قبل النظام أو أنواع مصادقة الهوية المدارة المعينة من قبل المستخدم | Yes |
| server | يحدد اسم المضيف والمنفذ الاختياري الذي يتم تشغيل Azure Database for PostgreSQL عليه. | Yes |
| port | منفذ TCP لقاعدة بيانات Azure لخادم PostgreSQL. القيمة الافتراضية هي 5432. |
No |
| database | اسم قاعدة بيانات Azure لقاعدة بيانات PostgreSQL للاتصال بها. | Yes |
| sslMode | يتحكم في ما إذا كان يتم استخدام SSL، اعتمادا على دعم الخادم. - تعطيل: تم تعطيل طبقة المقابس الآمنة. إذا كان الخادم يتطلب SSL، يفشل الاتصال. - السماح: تفضل الاتصالات غير المقامرة إذا كان الخادم يسمح بها، ولكن اسمح باتصالات SSL. - يفضل: تفضل اتصالات SSL إذا كان الخادم يسمح بها ، ولكن اسمح بالاتصالات بدون SSL. - متطلب: يفشل الاتصال إذا كان الخادم لا يدعم SSL. - Verify-ca: يفشل الاتصال إذا كان الخادم لا يدعم SSL. يتحقق أيضا من شهادة الخادم. - التحقق من الاكتمال: يفشل الاتصال إذا كان الخادم لا يدعم طبقة المقابس الآمنة. يتحقق أيضا من شهادة الخادم باسم المضيف. الخيارات: تعطيل (0) / السماح (1) / تفضيل (2) (افتراضي) / طلب (3) / التحقق من صحة (4) / التحقق من كامل (5) |
No |
| connectVia | تمثل هذه الخاصية وقت تشغيل التكامل الذي سيتم استخدامه للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. | No |
| خصائص الاتصال الإضافية: | ||
| schema | تعيين مسار البحث في المخطط. | No |
| pooling | ما إذا كان يجب استخدام تجمع الاتصال أم لا. | No |
| connectionTimeout | وقت الانتظار (بالثوان) أثناء محاولة إنشاء اتصال قبل إنهاء المحاولة وإنشاء خطأ. | No |
| commandTimeout | وقت الانتظار (بالثوان) أثناء محاولة تنفيذ أمر قبل إنهاء المحاولة وإنشاء خطأ. تعيين إلى صفر للنهاية. | No |
| trustServerCertificate | ما إذا كنت تريد الوثوق بشهادة الخادم دون التحقق من صحتها. | No |
| readBufferSize | تحديد حجم المخزن المؤقت الداخلي الذي يستخدمه Npgsql عند القراءة. قد تؤدي الزيادة إلى تحسين الأداء إذا تم نقل قيم كبيرة من قاعدة البيانات. | No |
| timezone | الحصول على المنطقة الزمنية للجلسة أو تعيينها. | No |
| encoding | يحصل على ترميز .NET أو يعينه لترميز/فك ترميز بيانات سلسلة PostgreSQL. | No |
Basic authentication
| Property | Description | Required |
|---|---|---|
| username | اسم المستخدم للاتصال به. غير مطلوب إذا كنت تستخدم IntegratedSecurity. | Yes |
| password | كلمة المرور للاتصال بها. غير مطلوب إذا كنت تستخدم IntegratedSecurity. ضع علامة على هذا الحقل باسم SecureString لتخزينه بشكل آمن. أو يمكنك أيضًا الإشارة إلى سر مخزن في Azure Key Vault. | Yes |
Example:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": "5432",
"database": "<database name>",
"sslMode": 2,
"username": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
Example:
تخزين كلمة المرور في Azure Key Vault
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": "5432",
"database": "<database name>",
"sslMode": 2,
"username": "<user name>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
}
}
}
مصادقة الهوية المدارة المعينة من قبل النظام
يمكن إقران مصنع البيانات أو مساحة عمل Synapse بهوية مدارة يعينها النظام تمثل الخدمة عند المصادقة على موارد أخرى في Azure. يمكنك استخدام هذه الهوية المدارة لقاعدة بيانات Azure لمصادقة PostgreSQL. يمكن للمصنع المعين أو مساحة العمل Synapse الوصول إلى البيانات ونسخها من قاعدة البيانات الخاصة بك أو إليها باستخدام هذه الهوية.
لاستخدام الهوية المدارة المعينة من قبل النظام، اتبع الخطوات التالية:
يمكن إقران مصنع البيانات أو مساحة عمل Synapse بهوية مدارة يعينها النظام. تعرف على المزيد، إنشاء هوية مدارة يعينها النظام
تشغيل بيانات Azure ل PostgreSQL مع الهوية المدارة المعينة للنظام.
في قاعدة بيانات Azure لمورد PostgreSQL ضمن الأمان
تكوين قاعدة بيانات Azure لخدمة PostgreSQL المرتبطة.
Example:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "SystemAssignedManagedIdentity"
}
}
}
Note
نوع المصادقة هذا غير معتمد في وقت تشغيل التكامل المستضاف ذاتيا.
مصادقة الهوية المدارة المعينة من قبل المستخدم
يمكن إقران مصنع البيانات أو مساحة عمل Synapse بهوية مدارة يعينها المستخدم تمثل الخدمة عند المصادقة على موارد أخرى في Azure. يمكنك استخدام هذه الهوية المدارة لقاعدة بيانات Azure لمصادقة PostgreSQL. يمكن للمصنع المعين أو مساحة العمل Synapse الوصول إلى البيانات ونسخها من قاعدة البيانات الخاصة بك أو إليها باستخدام هذه الهوية.
لاستخدام مصادقة هوية مدارة من قبل عميل معيّن، بالإضافة إلى الخصائص العامة الموصوفة في القسم السابق، حدد الخصائص التالية:
| Property | Description | Required |
|---|---|---|
| credential | حدد الهوية المدارة المعينة من قبل المستخدم ككائن بيانات الاعتماد. | Yes |
تحتاج أيضا إلى اتباع الخطوات التالية:
تأكد من الإنشاء على مورد الهوية المدارة المعين من قبل المستخدم على مدخل Microsoft Azure. لمعرفة المزيد، انتقل إلى إدارة الهويات المدارة المعينة من قبل المستخدم
تعيين الهوية المدارة المعينة من قبل المستخدم إلى قاعدة بيانات Azure لمورد PostgreSQL
تعيين الهوية المدارة المعينة من قبل المستخدم إلى مورد Azure Data Factory
تكوين قاعدة بيانات Azure لخدمة PostgreSQL المرتبطة.
Example:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "UserAssignedManagedIdentity",
"credential": {
"referenceName": "<your credential>",
"type": "CredentialReference"
}
}
}
}
المصادقة الأساسية للخدمة
| Property | Description | Required |
|---|---|---|
| username | الاسم المعروض لمدير الخدمة | Yes |
| tenant | المستأجر الذي توجد به قاعدة بيانات Azure لخادم PostgreSQL | Yes |
| servicePrincipalId | معرف التطبيق الخاص بكيان الخدمة | Yes |
| servicePrincipalCredentialType | حدد ما إذا كانت الشهادة الأساسية للخدمة أو مفتاح الخدمة الأساسي هو أسلوب المصادقة المطلوب - ServicePrincipalCert: تعيين لشهادة كيان الخدمة لشهادة كيان الخدمة. - ServicePrincipalKey: قم بالتعيين إلى مفتاح الخدمة الأساسي لمصادقة مفتاح كيان الخدمة. |
Yes |
| servicePrincipalKey | قيمة سر العميل. يستخدم عند تحديد مفتاح الخدمة الأساسي | Yes |
| azureCloudType | حدد نوع سحابة Azure لخادم Azure Database for PostgreSQL | Yes |
| servicePrincipalEmbeddedCert | ملف الشهادة الأساسية للخدمة | Yes |
| servicePrincipalEmbeddedCertPassword | كلمة مرور الشهادة الأساسية للخدمة إذا لزم الأمر | No |
Example:
مفتاح الخدمة الأساسي
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<service principal name>",
"authenticationType": "<authentication type>",
"tenant": "<tenant>",
"servicePrincipalId": "<service principal ID>",
"azureCloudType": "<azure cloud type>",
"servicePrincipalCredentialType": "<service principal type>",
"servicePrincipalKey": "<service principal key>"
}
}
}
Example:
الشهادة الأساسية للخدمة
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<service principal name>",
"authenticationType": "<authentication type>",
"tenant": "<tenant>",
"servicePrincipalId": "<service principal ID>",
"azureCloudType": "<azure cloud type>",
"servicePrincipalCredentialType": "<service principal type>",
"servicePrincipalEmbeddedCert": "<service principal certificate>",
"servicePrincipalEmbeddedCertPassword": "<service principal embedded certificate password>"
}
}
}
Note
يتم دعم مصادقة معرف Microsoft Entra باستخدام كيان الخدمة والهوية المدارة المعينة من قبل المستخدم على إصدار وقت تشغيل التكامل المستضاف ذاتيا 5.50 أو أعلى.
الإصدار 1.0
يتم دعم الخصائص التالية لخدمة Azure Database for PostgreSQL المرتبطة عند تطبيق الإصدار 1.0:
| Property | Description | Required |
|---|---|---|
| type | يجب تعيين خاصية النوع إلى: AzurePostgreSql. | Yes |
| version | الإصدار الذي تحدده. القيمة هي 1.0. |
Yes |
| connectionString | سلسلة اتصال Npgsql للاتصال بقاعدة بيانات Azure ل PostgreSQL. يمكنك أيضًا وضع كلمة مرور في Azure Key Vault وسحب تكوين password خارج سلسلة الاتصال. راجع العينات التالية وبيانات اعتماد المخزن في Azure Key Vault لمزيد من التفاصيل. |
Yes |
| connectVia | تمثل هذه الخاصية وقت تشغيل التكامل الذي سيتم استخدامه للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. | No |
سلسلة الاتصال النموذجية هي host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. فيما يلي المزيد من الخصائص التي يمكنك تعيينها لكل حالة:
| Property | Description | Options | Required |
|---|---|---|---|
| طريقة التشفير (EM) | الطريقة التي يستخدمها برنامج التشغيل لتشفير البيانات المرسلة بين برنامج التشغيل وخادم قاعدة البيانات. على سبيل المثال، EncryptionMethod=<0/1/6>; |
0 (بدون تشفير) (افتراضي) / 1 (SSL) / 6 (RequestSSL) | No |
| ValidateServerCertificate (VSC) | يحدد ما إذا كان برنامج التشغيل يتحقق من صحة الشهادة التي تم إرسالها بواسطة خادم قاعدة البيانات عند تمكين تشفير SSL (طريقة التشفير = 1). على سبيل المثال، ValidateServerCertificate=<0/1>; |
0 (معطل) (افتراضي) / 1 (ممكن) | No |
Example:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
}
}
}
Example:
تخزين كلمة المرور في Azure Key Vault
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<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. تدعم الخصائص التالية:
| Property | Description | Required |
|---|---|---|
| type | يجب تعيين خاصية النوع لمجموعة البيانات إلى AzurePostgreSqlTable. | Yes |
| schema | اسم المخطط. | لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
| table | اسم الجدول/طريقة العرض. | لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
| tableName | ضع اسمًا للجدول. هذه الخاصية مدعومة للتوافق مع الإصدارات السابقة. بالنسبة لحمل العمل الجديد، استخدم schema وtable. |
لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
Example:
{
"name": "AzurePostgreSqlDataset",
"properties": {
"type": "AzurePostgreSqlTable",
"linkedServiceName": {
"referenceName": "<AzurePostgreSql linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
انسخ خصائص النشاط
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع خطوط الأنابيب والأنشطة . يوفر هذا القسم قائمة بالخصائص التي تدعمها قاعدة بيانات Azure لمصدر PostgreSQL.
قاعدة بيانات Azure لـ PostgreSql كمصدر
لنسخ البيانات من قاعدة بيانات Azure ل PostgreSQL، قم بتعيين نوع المصدر في نشاط النسخ إلى AzurePostgreSqlSource. يتم اعتماد الخصائص التالية في قسم مصدر نشاط النسخ:
| Property | Description | Required |
|---|---|---|
| type | يجب تعيين خاصية النوع لمصدر نشاط النسخ إلى AzurePostgreSqlSource | Yes |
| query | استخدم استعلام SQL المخصص لقراءة البيانات. على سبيل المثال: SELECT * FROM mytable أو SELECT * FROM "MyTable". ملاحظة في PostgreSQL، يتم التعامل مع اسم الكيان على أنه غير حساس لحالة الأحرف إذا لم يتم اقتباسه. |
لا (إذا تم تحديد خاصية اسم الجدول في مجموعة البيانات) |
| queryTimeout | وقت الانتظار قبل إنهاء محاولة تنفيذ أمر وإنشاء خطأ، الافتراضي هو 120 دقيقة. إذا تم تعيين المعلمة لهذه الخاصية، فإن القيم المسموح بها هي الفترة الزمنية، مثل "02:00:00" (120 دقيقة). لمزيد من المعلومات، راجع CommandTimeout. | No |
| partitionOptions | يحدد خيارات تقسيم البيانات المستخدمة لتحميل البيانات من قاعدة بيانات Azure SQL. القيم المسموح بها هي: None (افتراضي) و PhysicalPartitionsOfTable و DynamicRange. عند تمكين خيار القسم (أي ليس None)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من قاعدة بيانات Azure SQL من خلال الإعداد parallelCopies في نشاط النسخ. |
No |
| partitionSettings | حدد مجموعة الإعدادات الخاصة بتقسيم البيانات. تطبيق عندما لا يكون خيار التقسيم None. |
No |
تحت partitionSettings: |
||
| partitionNames | قائمة الأقسام المادية التي يجب نسخها. تُطبق عندما يكون خيار التقسيم هو PhysicalPartitionsOfTable. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfTabularPartitionName في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL . |
No |
| partitionColumnName | حدد اسم عمود المصدر بعدد صحيح أو نوع التاريخ/التاريخ والوقت (int أو smallint أو bigint أو date أو timestamp without time zone أو timestamp with time zone أو time without time zone) التي سيتم استخدامها عن طريق تقسيم النطاق للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف المفتاح الأساسي للجدول تلقائياً واستخدامه كعمود قسم.تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionColumnName في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL . |
No |
| partitionUpperBound | الحد الأقصى لقيمة عمود القسم لنسخ البيانات. تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionUpbound في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL . |
No |
| partitionLowerBound | الحد الأدنى لقيمة عمود القسم لنسخ البيانات. تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionLowbound في عبارة WHERE. للحصول على مثال، راجع قسم نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL . |
No |
Example:
"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>",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
قاعدة بيانات Azure لـ PostgreSQL كمصدر
لنسخ البيانات إلى قاعدة بيانات Azure ل PostgreSQL، قم بتعيين نوع المتلقي في نشاط النسخ إلى SqlSink. تُدعم الخصائص التالية في قسم متلقي نشاط النسخ:
| Property | Description | Required | إصدار دعم الموصل |
|---|---|---|---|
| type | يجب تعيين خاصية نوع مصدر نشاط النسخ على AzurePostgreSQLSink . | Yes | الإصدار 1.0 والإصدار 2.0 |
| preCopyScript | حدد استعلام SQL لنشاط النسخ لتنفيذه قبل كتابة البيانات في قاعدة بيانات Azure لـ PostgreSQL في كل تشغيل. يمكنك استخدام هذه الخاصية لتنظيف البيانات المحملة مسبقاً. | No | الإصدار 1.0 والإصدار 2.0 |
| writeMethod | الطريقة المستخدمة لكتابة البيانات في قاعدة بيانات Azure لـ PostgreSQL. القيم المسموح بها هي: CopyCommand (افتراضي ، وهو أكثر أداء) ، BulkInsert و Upsert (الإصدار 2.0 فقط). |
No | الإصدار 1.0 والإصدار 2.0 |
| upsertSettings | حدد مجموعة إعدادات سلوك الكتابة. استخدمها عندما يكون خيار WriteBehavior هو Upsert. |
No | الإصدار 2.0 |
تحت upsertSettings: |
|||
| keys | حدد أسماء الأعمدة لتعريف الصف الفريد. يمكن استخدام مفتاح واحد أو سلسلة من المفاتيح. يجب أن تكون المفاتيح مفتاحا أساسيا أو عمودا فريدا. إذا لم يتم تحديده، فسيتم استخدام عمود المفتاح الأساسي. | No | الإصدار 2.0 |
| writeBatchSize | عدد الصفوف التي تم تحميلها في قاعدة بيانات Azure لـ PostgreSQL لكل دفعة. القيمة المسموح بها هي عدد صحيح يمثل عدد الصفوف. |
لا (الافتراضي هو 1,000,000) | الإصدار 1.0 والإصدار 2.0 |
| writeBatchTimeout | وقت الانتظار حتى تكتمل عملية إدراج الدُفعة قبل انتهاء مهلتها. القيم المسموح بها هي سلاسل Timespan. مثال على ذلك هو 00:30:00 (30 دقيقة). |
لا (الافتراضي هو 00:30:00) | الإصدار 1.0 والإصدار 2.0 |
مثال 1: أمر النسخ
"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
}
}
}
]
مثال 2: بيانات Upsert
"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",
"writeMethod": "Upsert",
"upsertSettings": {
"keys": [
"<column name>"
]
},
}
}
}
]
بيانات Upsert
يدعم نشاط النسخ في الأصل عمليات upsert. لإجراء عملية تجديد، يجب على المستخدم توفير أعمدة (أعمدة) المفاتيح التي هي إما مفاتيح أساسية أو أعمدة فريدة. إذا لم يقدم المستخدم أعمدة (أعمدة) المفتاح، استخدام أعمدة (أعمدة) المفتاح الأساسي في جدول المتلقي. سيقوم نشاط النسخ بتحديث الأعمدة غير الرئيسية في جدول المتلقي حيث تتطابق قيم (قيم) أعمدة المفتاح مع تلك الموجودة في الجدول المصدر؛ خلاف ذلك ، سيتم إدراج بيانات جديدة.
نسخة متوازية من قاعدة بيانات Azure لـ PostgreSQL
توفر قاعدة بيانات Azure لموصل PostgreSQL في نشاط النسخ تقسيماً مضمناً للبيانات لنسخ البيانات بشكل متوازٍ. يمكنك العثور على خيارات تقسيم البيانات في علامة التبويب المصدر لنشاط النسخ.
عند تمكين النسخة المقسمة، يقوم نشاط النسخ بتشغيل استعلامات متوازية مقابل قاعدة بيانات Azure لمصدر PostgreSQL لتحميل البيانات حسب الأقسام. يتم التحكم في الدرجة المتوازية بواسطة parallelCopies الإعداد على نشاط النسخ. على سبيل المثال، إذا قمت بتعيين parallelCopies على أربعة، تقوم الخدمة في نفس الوقت بإنشاء وتشغيل أربعة استعلامات بناءً على خيار القسم المحدد والإعدادات، ويسترد كل استعلام جزءاً من البيانات من قاعدة بيانات Azure الخاصة بك لـ PostgreSQL.
يقترح عليك تمكين النسخ المتوازي مع تقسيم البيانات خاصة عند تحميل كمية كبيرة من البيانات من قاعدة بيانات Azure ل PostgreSQL. فيما يلي تكوينات مقترحة لسيناريوهات مختلفة. عند نسخ البيانات إلى مخزن البيانات المستندة إلى الملفات، فإن التوصية هي الكتابة إلى مجلد كملفات متعددة (تحديد اسم المجلد فقط)، وفي هذه الحالة يكون الأداء أفضل من الكتابة إلى ملف واحد.
| Scenario | الإعدادات المقترحة |
|---|---|
| تحميل كامل من جدول كبير بأقسام فعلية. |
خيار القسم: الأقسام المادية للجدول. أثناء التنفيذ، تكتشف الخدمة تلقائياً الأقسام المادية ونسخ البيانات حسب الأقسام. |
| تحميل كامل من جدول كبير، دون أقسام فعلية، مع وجود عمود لعدد صحيح لتقسيم البيانات. |
خيارات التقسيم: تقسيم النطاق الديناميكي. عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات. إذا لم يتم تحديده، فسيتم استخدام عمود المفتاح الأساسي. |
| قم بتحميل كمية كبيرة من البيانات باستخدام استعلام مخصص بأقسام فعلية. |
خيار القسم: الأقسام المادية للجدول. استعلام: 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، تسترد الخدمة البيانات بأربعة أقسام. هوياتهم تتراوح بين [1،20]، [21، 40]، [41، 60]، [61، 80] على التوالي. |
أفضل الممارسات لتحميل البيانات مع خيار التقسيم:
- اختر عمود مميز كعمود تقسيم (مثل المفتاح الأساسي أو المفتاح الفريد) لتجنب انحراف البيانات.
- إذا كان الجدول يحتوي على قسم مضمن، فاستخدم خيار القسم "الأقسام المادية للجدول" للحصول على أداء أفضل.
- إذا كنت تستخدم Azure Microsoft Integration Runtime لنسخ البيانات لكن يمكنك تعيين "وحدات تكامل بيانات (DIU)" (> 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 أو مجموعة بيانات مضمنة كنوع مصدر ومتلقي.
Note
حاليا، يتم دعم المصادقة الأساسية فقط لكل من إصدارات V1 وV2 من قاعدة بيانات Azure لموصل PostgreSQL في تعيين تدفقات البيانات.
تحويل المصدر
يسرد الجدول أدناه الخصائص التي تدعمها قاعدة بيانات Azure لمصدر PostgreSQL. يمكنك تحرير هذه الخصائص في علامة التبويب "Source options".
| Name | Description | Required | القيم المسموح بها | خاصية البرنامج النصي لتدفق البيانات |
|---|---|---|---|---|
| Table | إذا حددت الجدول كمدخلات، فإن تدفق البيانات يجلب جميع البيانات من الجدول المحدد في مجموعة البيانات. | No | - |
(لمجموعة البيانات المضمنة فقط) tableName |
| Query | إذا حددت الاستعلام كإدخال، فحدد استعلام SQL لجلب البيانات من المصدر، والذي يتجاوز أي جدول تحدده في مجموعة البيانات. يعد استخدام الاستعلامات طريقة رائعة لتقليل عدد الصفوف للاختبار أو عمليات البحث. عبارة الترتيب حسب غير مدعومة، ولكن يمكنك تعيين عبارة SELECT FROM كاملة. يمكنك أيضاً استخدام وظائف الجدول المعرفة بواسطة المستخدم. تحديد * من udfGetData() هو UDF في SQL الذي يقوم بإرجاع جدول يمكنك استخدامه في تدفق البيانات. مثال على استعلام: select * from mytable where customerId > 1000 and customerId < 2000 أو select * from "MyTable". ملاحظة في PostgreSQL، يتم التعامل مع اسم الكيان على أنه غير حساس لحالة الأحرف إذا لم يتم اقتباسه. |
No | String | query |
| اسم المخطط | إذا حددت الإجراء المخزن كإدخال، فحدد اسم مخطط للإجراء المخزن، أو حدد "تحديث" لمطالبة الخدمة باكتشاف أسماء المخططات. | No | String | schemaName |
| الإجراء المخزن | إذا حددت الإجراء المخزن كإدخال، فحدد اسم الإجراء المخزن لقراءة البيانات من الجدول المصدر، أو حدد تحديث لمطالبة الخدمة باكتشاف أسماء الإجراءات. | نعم (إذا حددت الإجراء المخزّن كإدخال) | String | procedureName |
| معلمات الإجراء | إذا حددت الإجراء المخزن كإدخال، فحدد أي معلمات إدخال للإجراء المخزن في الترتيب الذي تم تعيينه فـي الإجراء، أو حدد استيراد لاستيراد كافة معلمات الإجراء باستخدام النموذج @paraName. |
No | Array | inputs |
| حجم الدفعة | حدد حجم الدُفعة لتقسيم البيانات الكبيرة إلى دُفعات. | No | Integer | batchSize |
| مستوى العزل | اختر أحد مستويات العزل التالية: - قراءة ثابتة - قراءة غير ثابتة (افتراضي) - القراءة المتكررة -التسلسل - لا شيء (تجاهل مستوى العزل) |
No | READ_COMMITTED READ_UNCOMMITTED REPEATABLE_READ SERIALIZABLE NONE |
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 | Description | Required | القيم المسموح بها | خاصية البرنامج النصي لتدفق البيانات |
|---|---|---|---|---|
| طريقة التحديث | حدد العمليات المسموح بها في وجهة قاعدة البيانات. الوضع الافتراضي هو السماح فقط بالإدراج. لتحديث صفوف أو إجراء upsert "إدراج الصفوف أو تحديثها" أو حذفها، يلزم إجراء تحويل في الصف المعدل لوضع علامة على الصفوف التي تخضع لتلك الإجراءات. |
Yes |
true أو false |
deletable insertable updateable upsertable |
| الأعمدة الرئيسية | بالنسبة للتحديثات والتحديثات والحذف، يجب تعيين أعمدة المفاتيح لتحديد الصف الذي يجب تغييره. يتم استخدام اسم العمود الذي تختاره كمفتاح كجزء من التحديث اللاحق، upsert، حذف. لذلك، يجب اختيار عمود موجود في تعيين "المتلقي". |
No | Array | keys |
| تخطي كتابة أعمدة المفتاح | إذا كنت ترغب في عدم كتابة القيمة إلى عمود المفتاح، فحدد "Skip writing key columns". | No |
true أو false |
skipKeyWrites |
| إجراء الجدول | تحديد ما إذا كنت تريد إعادة إنشاء كافة الصفوف أو إزالتها من الجدول الوجهة قبل الكتابة. - لا شيء: لم يتم اتخاذ أي إجراء على الطاولة. - إعادة الإنشاء: يتم إسقاط الجدول وإعادة إنشائه. مطلوب في حال إنشاء جدول جديد بشكل ديناميكي. - اقتطاع: تتم إزالة جميع الصفوف من الجدول الهدف. |
No |
true أو false |
recreate truncate |
| حجم الدفعة | حدد عدد الصفوف التي تتم كتابتها في كل دُفعة. تعمل أحجام الدُفعات الأكبر على تحسين الضغط والذاكرة، ولكنها تخاطر بنفاد استثناءات الذاكرة عند تخزين البيانات مؤقتاً. | No | Integer | batchSize |
| تحديد مخطط قاعدة بيانات المستخدم | بشكل افتراضي، يتم إنشاء جدول مؤقت ضمن مخطط المتلقي كتقسيم مرحلي. يمكنك بدلا من ذلك إلغاء تحديد الخيار استخدام مخطط المتلقي وبدلا من ذلك، حدد اسم مخطط يقوم Data Factory بموجبه بإنشاء جدول مرحلي لتحميل البيانات المصدر وتنظيفها تلقائيا عند الانتهاء. تأكد من حصولك على إذن إنشاء الجدول في قاعدة البيانات وقم بتغيير الإذن في المخطط. | No | String | stagingSchemaName |
| نصوص SQL السابقة واللاحقة | حدد البرامج النصية SQL متعددة الأسطر التي سيتم تنفيذها قبل (المعالجة المسبقة) وبعد كتابة البيانات (بعد المعالجة) إلى قاعدة بيانات Sink. | No | String | preSQLs postSQLs |
Tip
- تقسيم البرامج النصية دفعة واحدة مع أوامر متعددة إلى دفعات متعددة.
- يمكن فقط تشغيل عبارات لغة تعريف البيانات (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
نشاط البرنامج النصي
Important
نشاط البرنامج النصي مدعوم فقط في موصل الإصدار 2.0.
Important
عبارات الاستعلام المتعدد التي تستخدم معلمات الإخراج غير مدعومة. يوصى بتقسيم أي استعلامات إخراج إلى كتل نصية منفصلة داخل نفس نشاط البرنامج النصي أو نشاط برنامج نصي مختلف.
عبارات الاستعلام المتعدد التي تستخدم المعلمات الموضعية غير مدعومة. يوصى بتقسيم أي استعلامات موضعية إلى كتل نصية منفصلة داخل نفس نشاط البرنامج النصي أو نشاط نصي مختلف.
لمزيد من المعلومات حول نشاط البرنامج النصي، راجع نشاط البرنامج النصي.
بحث عن خصائص النشاط
لمزيد من المعلومات حول الخصائص، راجع نشاط البحث.
ترقية قاعدة بيانات Azure لموصل PostgreSQL
في صفحة تحرير الخدمة المرتبطة ، حدد 2.0 ضمن الإصدار وقم بتكوين الخدمة المرتبطة بالإشارة إلى خصائص الخدمة المرتبطة الإصدار 2.0.
المحتوى ذو الصلة
للحصول على قائمة بمخازن البيانات المدعومة كمصادر ومتلقين من خلال نشاط النسخ، انظر مخازن البيانات المدعومة .