نسخ البيانات من MySQL باستخدام Azure Data Factory أو Synapse Analytics
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توضح هذه المقالة كيفية استخدام نسخ النشاط في Azure Data Factory وخطوط تدفق Synapse Analytics لنسخ البيانات من قاعدة بيانات MySQL. تعتمد هذه المقالة على مقالة نظرة عامة على نشاط النسخ التي تقدم نظرة عامة على نشاط النسخ.
إشعار
لنسخ البيانات من أو إلى خدمة Azure Database for MySQL، استخدم قاعدة بيانات Azure للموصل MySQL.
هام
يوفر موصل MySQL باستخدام إصدار برنامج التشغيل الموصى به دعما أصليا محسنا ل MySQL. إذا كنت تستخدم الموصل مع إصدار برنامج التشغيل القديم، فيرجى ترقيته قبل 31 أكتوبر 2024. راجع هذا القسم للحصول على تفاصيل حول الفرق بين الإصدار القديم والإصدار الموصى به.
القدرات المدعومة
يعتمد موصل MySQL في الإمكانيات التالية:
القدرات المدعومة | IR |
---|---|
نشاط النسخ (مصدر/-) | (1) (2) |
نشاط البحث | (1) (2) |
① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا
للحصول على قائمة بمخازن البيانات المدعومة كمصادر/متلقيات بواسطة نشاط النسخ، راجع جدول مخازن البيانات المدعومة.
يدعم هذا الموصل إصدار MySQL 5.5 و5.6 و5.7 و8.0 و8.1 و8.2 ضمن إصدار برنامج التشغيل الجديد الموصى به v2 و5.6 و5.7 و8.0 لإصدار برنامج التشغيل القديم.
المتطلبات الأساسية
إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.
إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.
يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.
لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.
يوفر Integration Runtime برنامج تشغيل MySQL مدمجاً بدءاً من الإصدار 3.7، وبالتالي لا تحتاج إلى تثبيت أي برنامج تشغيل يدوياً.
الشروع في العمل
لتنفيذ نشاط النسخ باستخدام أحد المسارات، يمكنك استخدام إحدى الأدوات أو عدد تطوير البرامج التالية:
- أداة نسخ البيانات
- مدخل Azure
- The .NET SDK
- عدة تطوير برامج Python
- Azure PowerShell
- واجهة برمجة تطبيقات REST
- قالب Azure Resource Manager
إنشاء خدمة مرتبطة بـ MySQL باستخدام واجهة المستخدم
استخدم الخطوات التالية لإنشاء خدمة مرتبطة بـ MySQL في واجهة مستخدم مدخل Microsoft Azure.
استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":
ابحث عن MySQL وحدد موصل MySQL.
قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.
تفاصيل تكوين الموصل
توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بموصل MySQL.
خصائص الخدمة المرتبطة
إذا كنت تستخدم إصدار برنامج التشغيل الموصى به، يتم دعم الخصائص التالية لخدمة MySQL المرتبطة:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع إلى: MySql | نعم |
driverVersion | إصدار برنامج التشغيل عند تحديد إصدار برنامج التشغيل الموصى به. القيمة هي v2. | نعم |
الخادم | اسم خادم MySQL الخاص بك. | نعم |
المنفذ | رقم المنفذ للاتصال بخادم MySQL. | لا |
قاعدة بيانات | اسم قاعدة بيانات MySQL. | نعم |
اسم المستخدم | اسم المستخدم الخاص بك. | نعم |
كلمة المرور | كلمة المرور لاسم المستخدم. وضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن. أو يمكنك أيضًا الإشارة إلى سر مخزن في Azure Key Vault. | نعم |
sslMode | يحدد هذا الخيار ما إذا كان برنامج التشغيل يستخدم تشفير TLS والتحقق عند الاتصال بـ MySQL. على سبيل المثال، SSLMode=<0/1/2/3/4> .الخيارات: معطل (0) / مفضل (1) (افتراضي) / مطلوب (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
نعم |
useSystemTrustStore | يحدد هذا الخيار ما إذا كنت تريد استخدام شهادة CA من مخزن الثقة بالنظام، أو من ملف PEM محدد. على سبيل المثال UseSystemTrustStore=<0/1> ؛الخيارات: ممكن (1) / معطل (0) (افتراضي) |
لا |
connectVia | Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. | لا |
مثال:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
مثال: تخزين كلمة المرور في Azure Key Vault
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
إذا كنت تستخدم إصدار برنامج التشغيل القديم، يتم دعم الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع إلى: MySql | نعم |
سلسلة الاتصال | حدد المعلومات المطلوبة للاتصال بقاعدة بيانات Azure لمثيل MySQL. يمكنك أيضاً وضع كلمة مرور في Azure Key Vault وسحب تكوين password خارج سلسلة الاتصال. راجع النماذج التالية ومقال تخزين بيانات الاعتماد في Azure Key Vault لمزيد من التفاصيل. |
نعم |
connectVia | Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. | لا |
سلسلة الاتصال النموذجية هي Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. المزيد من الخصائص التي يمكنك تعيينها حسب حالتك:
الخاصية | الوصف | مطلوب |
---|---|---|
sslMode | يحدد هذا الخيار ما إذا كان برنامج التشغيل يستخدم تشفير TLS والتحقق عند الاتصال بـ MySQL. على سبيل المثال، SSLMode=<0/1/2/3/4> .الخيارات: معطل (0) / مفضل (1) (افتراضي) / مطلوب (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
نعم |
SSLCert | المسار الكامل واسم ملف.pem يحتوي على شهادة SSL المستخدمة لإثبات هوية العميل. لتحديد مفتاح خاص لتشفير هذه الشهادة قبل إرسالها إلى الخادم، استخدم الخاصية SSLKey . |
نعم، في حالة استخدام التحقق ثنائي الاتجاه SSL. |
SSLKey | المسار الكامل واسم الملف الذي يحتوي على المفتاح الخاص المستخدم لتشفير الشهادة من جانب العميل أثناء التحقق من SSL ثنائي الاتجاه. | نعم، في حالة استخدام التحقق ثنائي الاتجاه SSL. |
useSystemTrustStore | يحدد هذا الخيار ما إذا كنت تريد استخدام شهادة CA من مخزن الثقة بالنظام، أو من ملف PEM محدد. على سبيل المثال UseSystemTrustStore=<0/1> ؛الخيارات: ممكن (1) / معطل (0) (افتراضي) |
لا |
مثال:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
خصائص مجموعة البيانات
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات. يقدم هذا القسم قائمة بالخصائص التي تدعمها مجموعة بيانات MySQL.
لنسخ البيانات من MySQL، يتم دعم الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع لمجموعة البيانات على: MySqlTable | نعم |
اسم الجدول | اسم الجدول في قاعدة بيانات MySQL. | لا (إذا تم تحديد "الاستعلام" في مصدر النشاط) |
مثال
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
إذا كنت تستخدم RelationalTable
مجموعة بيانات مُصنفة حسب النوع، فإنها لا تزال مدعومة كما هي، بينما نقترح عليك استخدام مجموعة البيانات الجديدة للمضي قدماً.
انسخ خصائص النشاط
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يقدم هذا القسم قائمة بالخصائص التي يدعمها مصدر MySQL.
MySQL كمصدر
لنسخ البيانات من MySQL، يتم دعم الخصائص التالية في قسم المصدر لنشاط النسخ:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع لمصدر نشاط النسخ على: MySqlSource | نعم |
استعلام | استخدم استعلام SQL المخصص لقراءة البيانات. على سبيل المثال: "SELECT * FROM MyTable" . |
لا (إذا تم تحديد "tableName" في مجموعة البيانات) |
مثال:
"activities":[
{
"name": "CopyFromMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MySqlSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
إذا كنت تستخدم المصدر المصنف حسب النوع RelationalSource
، فلا يزال هذا المصدر مدعوماً كما هو، بينما نقترح عليك استخدام المصدر الجديد للمضي قدماً.
تعيين نوع البيانات لـ MySQL
عند نسخ البيانات من MySQL، يتم استخدام التعيينات التالية من أنواع بيانات MySQL إلى أنواع البيانات المؤقتة التي تستخدمها الخدمة داخلياً. راجع تعيينات المخططات ونوع البيانات لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي.
نوع بيانات MySQL | نوع بيانات الخدمة المؤقتة | نوع بيانات الخدمة المؤقتة (لإصدار برنامج التشغيل القديم) |
---|---|---|
bigint |
Int64 |
Int64 |
bigint unsigned |
Decimal |
Decimal |
bit(1) |
UInt64 |
Boolean |
bit(M), M>1 |
UInt64 |
Byte[] |
blob |
Byte[] |
Byte[] |
bool |
Boolean (إذا كانت TreatTinyAsBoolean=false، يتم تعيينها ك SByte . TreatTinyAsBoolean صحيح بشكل افتراضي ) |
Int16 |
char |
String |
String |
date |
Datetime |
Datetime |
datetime |
Datetime |
Datetime |
decimal |
Decimal |
Decimal, String |
double |
Double |
Double |
double precision |
Double |
Double |
enum |
String |
String |
float |
Single |
Single |
int |
Int32 |
Int32 |
int unsigned |
Int64 |
Int64 |
integer |
Int32 |
Int32 |
integer unsigned |
Int64 |
Int64 |
JSON |
String |
- |
long varbinary |
Byte[] |
Byte[] |
long varchar |
String |
String |
longblob |
Byte[] |
Byte[] |
longtext |
String |
String |
mediumblob |
Byte[] |
Byte[] |
mediumint |
Int32 |
Int32 |
mediumint unsigned |
Int64 |
Int64 |
mediumtext |
String |
String |
numeric |
Decimal |
Decimal |
real |
Double |
Double |
set |
String |
String |
smallint |
Int16 |
Int16 |
smallint unsigned |
Int32 |
Int32 |
text |
String |
String |
time |
TimeSpan |
TimeSpan |
timestamp |
Datetime |
Datetime |
tinyblob |
Byte[] |
Byte[] |
tinyint |
SByte ( tinyint(1) تم تعيينه إلى Boolean ) |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
بحث عن خصائص النشاط
لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.
ترقية موصل MySQL
فيما يلي الخطوات التي تساعدك على ترقية موصل MySQL:
في صفحة تحرير الخدمة المرتبطة، حدد مستحسن ضمن إصدار برنامج التشغيل وقم بتكوين الخدمة المرتبطة بالإشارة إلى خصائص الخدمة المرتبطة.
يختلف تعيين نوع البيانات لأحدث خدمة مرتبطة MySQL عن تلك الخاصة بالإصدار القديم. لمعرفة أحدث تعيين لنوع البيانات، راجع تعيين نوع البيانات ل MySQL.
يدعم أحدث إصدار برنامج تشغيل الإصدار 2 المزيد من إصدارات MySQL. لمزيد من المعلومات، راجع القدرات المدعومة.
أفضل الممارسات للإصدار الموصى به لموصل MySQL
يقدم هذا القسم أفضل الممارسات للإصدار الموصى به لموصل MySQL.
يتعذر تحميل مفتاح SSL
الأعراض: إذا كنت تستخدم الإصدار الموصى به لموصل MySQL مع مفتاح SSL كخاصية اتصال، فقد تفي برسالة الخطأ التالية:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----
السبب: لا يمكن للإصدار الموصى به فك تشفير تنسيق PCKS#8.
التوصية: تحويل تنسيق PEM إلى PCKS#1.
الاختلافات بين إصدار برنامج التشغيل الموصى به وإصدار برنامج التشغيل القديم
يعرض الجدول أدناه اختلافات تعيين نوع البيانات بين MySQL باستخدام إصدار برنامج التشغيل الموصى به وإصدار برنامج التشغيل القديم.
نوع بيانات MySQL | نوع بيانات الخدمة المؤقتة (باستخدام إصدار برنامج التشغيل الموصى به) | نوع بيانات الخدمة المؤقتة (باستخدام إصدار برنامج التشغيل القديم) |
---|---|---|
بت(1) | UInt64 | Boolean |
bit(M), M>1 | UInt64 | بايت [] |
منطقي | Boolean | Int16 |
JSON | السلسلة | بايت [] |
المحتوى ذو الصلة
للحصول على قائمة بمخازن البيانات المدعومة من نشاط النسخ كمصادر ومواضع تلقي، راجع مخازن البيانات المدعومة.