نسخ البيانات من PostgreSQL باستخدام Azure Data Factory أو Synapse Analytics
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توضح هذه المقالة كيفية استخدام نسخ النشاط في Azure Data Factory وخطوط تدفق Synapse Analytics لنسخ البيانات من قاعدة بيانات PostgreSQL. تعتمد هذه المقالة على مقالة نظرة عامة على نشاط النسخ التي تقدم نظرة عامة على نشاط النسخ.
هام
يوفر موصل PostgreSQL الجديد دعما أصليا محسنا ل PostgreSQL. إذا كنت تستخدم موصل PostgreSQL القديم في الحل الخاص بك، فيرجى ترقية موصل PostgreSQL قبل 31 أكتوبر 2024. راجع هذا القسم للحصول على تفاصيل حول الفرق بين الإصدار القديم والأحدث.
القدرات المدعومة
موصل PostgreSQL هذا مدعوم للأنشطة التالية:
القدرات المدعومة | IR |
---|---|
نشاط النسخ (مصدر/-) | (1) (2) |
نشاط البحث | (1) (2) |
① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا
للحصول على قائمة بمخازن البيانات المدعومة كمصادر/متلقيات بواسطة نشاط النسخ، راجع جدول مخازن البيانات المدعومة.
على وجه التحديد، يدعم موصل PostgreSQL هذا PostgreSQL الإصدار 7.4 وما بعده.
المتطلبات الأساسية
إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.
إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.
يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.
لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.
يوفر Integration Runtime برنامج تشغيل PostgreSQL مدمجاً بدءاً من الإصدار 3.7، وبالتالي لا تحتاج إلى تثبيت أي برنامج تشغيل يدوياً.
الشروع في العمل
لتنفيذ نشاط النسخ باستخدام أحد المسارات، يمكنك استخدام إحدى الأدوات أو عدد تطوير البرامج التالية:
- أداة نسخ البيانات
- مدخل Azure
- The .NET SDK
- عدة تطوير برامج Python
- Azure PowerShell
- واجهة برمجة تطبيقات REST
- قالب Azure Resource Manager
إنشاء خدمة مرتبطة بـ PostgreSQL باستخدام واجهة المستخدم
استخدم الخطوات التالية لإنشاء خدمة مرتبطة بـ PostgreSQL في واجهة مستخدم مدخل Microsoft Azure.
استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":
ابحث عن Postgre وحدد موصل PostgreSQL.
قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.
تفاصيل تكوين الموصل
توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بموصل PostgreSQL.
خصائص الخدمة المرتبطة
الخصائص التالية مدعومة لخدمة PostgreSQL المرتبطة:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع إلى: PostgreSqlV2 | نعم |
الخادم | يحدد اسم المضيف - والمنفذ الاختياري - الذي يتم تشغيل PostgreSQL عليه. | نعم |
المنفذ | منفذ TCP لخادم PostgreSQL. | لا |
قاعدة بيانات | قاعدة بيانات PostgreSQL للاتصال بها. | نعم |
اسم المستخدم | اسم المستخدم للاتصال به. غير مطلوب إذا كنت تستخدم IntegratedSecurity. | نعم |
كلمة المرور | كلمة المرور للاتصال بها. غير مطلوب إذا كنت تستخدم IntegratedSecurity. | نعم |
sslMode | يتحكم في ما إذا كان يتم استخدام SSL، اعتمادا على دعم الخادم. - تعطيل: تم تعطيل SSL. إذا كان الخادم يتطلب SSL، فسيفشل الاتصال. - السماح: يفضل الاتصالات غير SSL إذا كان الخادم يسمح بها، ولكن يسمح باتصالات SSL. - الأفضل: يفضل اتصالات SSL إذا كان الخادم يسمح بها، ولكن يسمح بالاتصالات بدون SSL. - مطلوب: فشل الاتصال إذا كان الخادم لا يدعم SSL. - Verify-ca: فشل الاتصال إذا كان الخادم لا يدعم SSL. يتحقق أيضا من شهادة الخادم. - التحقق الكامل: فشل الاتصال إذا كان الخادم لا يدعم SSL. يتحقق أيضا من شهادة الخادم باسم المضيف. الخيارات: تعطيل (0) / السماح (1) / تفضيل (2) (افتراضي) / طلب (3) / تحقق من ca (4) / التحقق الكامل (5) |
لا |
نوع المصادقة | نوع المصادقة للاتصال بقاعدة البيانات. يدعم Basic فقط. | نعم |
connectVia | Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. | لا |
خصائص الاتصال الإضافية: | ||
Schema | تعيين مسار البحث في المخطط. | لا |
تجميع | ما إذا كان يجب استخدام تجمع الاتصال أم لا. | لا |
connectionTimeout | وقت الانتظار (بالثوان) أثناء محاولة إنشاء اتصال قبل إنهاء المحاولة وإنشاء خطأ. | لا |
commandTimeout | وقت الانتظار (بالثوان) أثناء محاولة تنفيذ أمر قبل إنهاء المحاولة وإنشاء خطأ. تعيين إلى صفر للنهاية. | لا |
trustServerCertificate | ما إذا كنت تريد الوثوق بشهادة الخادم دون التحقق من صحتها. | لا |
sslCertificate | موقع شهادة عميل ليتم إرسالها إلى الخادم. | لا |
sslKey | موقع مفتاح عميل لشهادة عميل ليتم إرسالها إلى الخادم. | لا |
كلمة مرور ssl | كلمة المرور لمفتاح لشهادة عميل. | لا |
readBufferSize | تحديد حجم المخزن المؤقت الداخلي الذي يستخدمه Npgsql عند القراءة. قد تؤدي الزيادة إلى تحسين الأداء إذا تم نقل قيم كبيرة من قاعدة البيانات. | لا |
logParameters | عند التمكين، يتم تسجيل قيم المعلمات عند تنفيذ الأوامر. | لا |
timezone | الحصول على المنطقة الزمنية للجلسة أو تعيينها. | لا |
الترميز | يحصل أو يعين ترميز .NET الذي سيتم استخدامه لترميز/فك ترميز بيانات سلسلة PostgreSQL. | لا |
إشعار
للحصول على التحقق الكامل من SSL عبر اتصال ODBC عند استخدام وقت تشغيل التكامل المستضاف ذاتيًا، يتعين استخدام اتصال نوع ODBC بدلاً من موصل PostgreSQL بشكل صريح، وإكمال التكوين التالي:
- إعداد DSN على أي خوادم SHIR.
- ضع الشهادة المناسبة ل PostgreSQL في C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt على خوادم SHIR. هذا هو المكان الذي يبحث > فيه برنامج تشغيل ODBC عن شهادة SSL للتحقق من وقت اتصاله بقاعدة البيانات.
- في اتصال مصنع البيانات، استخدم اتصال نوع ODBC، مع سلسلة الاتصال التي تشير إلى DSN الذي أنشأته على خوادم SHIR.
مثال:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
مثال: تخزين كلمة المرور في Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
خصائص مجموعة البيانات
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات. يقدم هذا القسم قائمة بالخصائص التي تدعمها مجموعة بيانات PostgreSQL.
لنسخ البيانات من PostgreSQL، يتم دعم الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية نوع مجموعة البيانات إلى: PostgreSqlV2Table | نعم |
Schema | اسم المخطط. | لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
طاولتنا | ضع اسمًا للجدول. | لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
مثال
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
إذا كنت تستخدم مجموعة البيانات المكتوبة RelationalTable
، فلا تزال مدعومة كما هي، بينما يُقترح عليك استخدام المجموعة الجديدة من الآن فصاعداً.
انسخ خصائص النشاط
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يوفر هذا القسم قائمة بالخصائص التي يدعمها مصدر PostgreSQL.
PostgreSQL كمصدر
لنسخ البيانات من PostgreSQL، يتم دعم الخصائص التالية في قسم source لنشاط النسخ:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية نوع مصدر نشاط النسخ إلى: PostgreSqlV2Source | نعم |
استعلام | استخدم استعلام SQL المخصص لقراءة البيانات. على سبيل المثال: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" . |
لا (إذا تم تحديد "tableName" في مجموعة البيانات) |
إشعار
تعتبر أسماء المخططات والجداول حساسة لحالة الأحرف. قم بتضمينها في ""
(علامات الاقتباس المزدوجة) في الاستعلام.
مثال:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlV2Source",
"query": "SELECT * FROM \"MySchema\".\"MyTable\""
},
"sink": {
"type": "<sink type>"
}
}
}
]
إذا كنت تستخدم المصدر المصنف حسب النوع RelationalSource
، فلا يزال هذا المصدر مدعوماً كما هو، بينما نقترح عليك استخدام المصدر الجديد للمضي قدماً.
تعيين نوع البيانات ل PostgreSQL
عند نسخ البيانات من PostgreSQL، يتم استخدام التعيينات التالية من أنواع بيانات PostgreSQL إلى أنواع البيانات المؤقتة التي تستخدمها الخدمة داخليا. راجع تعيينات المخططات ونوع البيانات لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي.
نوع بيانات PostgreSql | نوع بيانات الخدمة المؤقتة | نوع بيانات الخدمة المؤقتة ل PostgreSQL (قديم) |
---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (الدقة <= 28) |
Decimal |
Decimal |
Decimal (الدقة > 28) |
إلغاء الدعم | String |
Numeric |
Decimal |
Decimal |
Real |
Single |
Single |
Double |
Double |
Double |
SmallSerial |
Int16 |
Int16 |
Serial |
Int32 |
Int32 |
BigSerial |
Int64 |
Int64 |
Money |
Decimal |
String |
Char |
String |
String |
Varchar |
String |
String |
Text |
String |
String |
Bytea |
Byte[] |
Byte[] |
Timestamp |
DateTime |
DateTime |
Timestamp with time zone |
DateTime |
String |
Date |
DateTime |
DateTime |
Time |
TimeSpan |
TimeSpan |
Time with time zone |
DateTimeOffset |
String |
Interval |
TimeSpan |
String |
Boolean |
Boolean |
Boolean |
Point |
String |
String |
Line |
String |
String |
Iseg |
String |
String |
Box |
String |
String |
Path |
String |
String |
Polygon |
String |
String |
Circle |
String |
String |
Cidr |
String |
String |
Inet |
String |
String |
Macaddr |
String |
String |
Macaddr8 |
String |
String |
Tsvector |
String |
String |
Tsquery |
String |
String |
UUID |
Guid |
Guid |
Json |
String |
String |
Jsonb |
String |
String |
Array |
String |
String |
Bit |
Byte[] |
Byte[] |
Bit varying |
Byte[] |
Byte[] |
XML |
String |
String |
IntArray |
String |
String |
TextArray |
String |
String |
NumbericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
بحث عن خصائص النشاط
لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.
ترقية خدمة PostgreSQL المرتبطة
فيما يلي الخطوات التي تساعدك على ترقية خدمة PostgreSQL المرتبطة:
إنشاء خدمة PostgreSQL مرتبطة جديدة وتكوينها بالإشارة إلى خصائص الخدمة المرتبطة.
يختلف تعيين نوع البيانات لأحدث خدمة PostgreSQL المرتبطة عن تلك الخاصة بالإصدار القديم. لمعرفة أحدث تعيين لنوع البيانات، راجع تعيين نوع البيانات ل PostgreSQL.
الاختلافات بين PostgreSQL وPostgreSQL (قديم)
يعرض الجدول أدناه اختلافات تعيين نوع البيانات بين PostgreSQL وPostgreSQL (قديم).
نوع بيانات PostgreSQL | نوع بيانات الخدمة المؤقتة ل PostgreSQL | نوع بيانات الخدمة المؤقتة ل PostgreSQL (قديم) |
---|---|---|
Money | عدد عشري | السلسلة |
الطابع الزمني مع المنطقة الزمنية | DateTime | السلسلة |
الوقت مع المنطقة الزمنية | DateTimeOffset | السلسلة |
الفاصل الزمني | TimeSpan | السلسلة |
BigDecimal | غير مدعومة. كبديل، استخدم to_char() الدالة لتحويل BigDecimal إلى String. |
السلسلة |
المحتوى ذو الصلة
للحصول على قائمة بمخازن البيانات المدعومة من نشاط النسخ كمصادر ومواضع تلقي، راجع مخازن البيانات المدعومة.