انسخ البيانات من Amazon RDS لـ Oracle باستخدام Azure Data Factory أو Azure Synapse Analytics

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

تلميح

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

توضح هذه المقالة كيفية استخدام نشاط النسخ في Azure Data Factory لنسخ البيانات من Amazon RDS لقاعدة بيانات Oracle. وهو يعتمد على نظرة عامة على نشاط النسخ.

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

يتم دعم موصل Amazon RDS لـ Oracle للإمكانيات التالية:

القدرات المدعومة IR
نشاط النسخ (مصدر/-) ① ②
نشاط البحث ① ②

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

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

على وجه التحديد، يدعم موصل Amazon RDS لـ Oracle:

  • الإصدارات التالية من قاعدة بيانات Amazon RDS ل Oracle:
    • Amazon RDS لـ Oracle 19c R1 (19.1) والإصدارات الأحدث
    • Amazon RDS لـ Oracle 18c R1 (18.1) والإصدارات الأحدث
    • Amazon RDS لـ Oracle 12c R1 (12.1) والإصدارات الأحدث
    • Amazon RDS لـ Oracle 11g R1 (11.1) والإصدارات الأحدث
  • النسخ المتوازي من Amazon RDS لمصدر Oracle. راجع قسم النسخ المتوازي من Amazon RDS for Oracle للحصول على التفاصيل.

إشعار

Amazon RDS لخادم وكيل Oracle غير مدعوم.

المتطلبات الأساسية

إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.

إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.

يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.

يوفر وقت تشغيل التكامل برنامج Amazon RDS مضمنا لبرنامج Oracle. لذلك، لا تحتاج إلى تثبيت برنامج تشغيل يدوياً عند نسخ البيانات من Amazon RDS لـ Oracle.

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

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

قم بإنشاء خدمة مرتبطة بـ Amazon RDS لـ Oracle باستخدام واجهة المستخدم

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

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

  2. ابحث عن Amazon RDS لـ Oracle وحدد موصل Amazon RDS لـ Oracle.

    Screenshot of the Amazon RDS for Oracle connector.

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

    Screenshot of linked service configuration for Amazon RDS for Oracle.

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

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد الكيانات الخاصة لموصلAmazon RDS Oracle.

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

تدعم خدمة Amazon RDS for Oracle المرتبطة الخصائص التالية:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AmazonRdsForOracle. ‏‏نعم‬
سلسلة الاتصال تحديد المعلومات المطلوبة للاتصال بمثيل Oracle DatabaseDatabase في Amazon.
يمكنك أيضاً وضع كلمة مرور في Azure Key Vault وسحبpassword التكوين من سلسلة الاتصال. راجع العينات التالية وبيانات اعتماد المخزن في Azure Key Vault لمزيد من التفاصيل.

نوع الاتصال المدعوم: يمكنك استخدام Amazon RDS ل Oracle SID أو Amazon RDS لاسم خدمة Oracle لتحديد قاعدة البيانات الخاصة بك:
- إذا كنت تستخدم معرف الأمان: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- إذا كنت تستخدم اسم الخدمة: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
بالنسبة لخيارات اتصال Amazon RDS الأصلية المتقدمة ل Oracle، يمكنك اختيار إضافة إدخال في TNSNAMES. ملف ORA على خادم Amazon RDS ل Oracle، وفي Amazon RDS لخدمة Oracle المرتبطة، اختر استخدام Amazon RDS لنوع اتصال اسم خدمة Oracle وتكوين اسم الخدمة المقابل.
‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم التحديد، يتم استخدام وقت تشغيل تكامل Azure الافتراضي. لا

إذا كان لديك العديد من مثيلات Amazon RDS ل Oracle لسيناريو تجاوز الفشل، يمكنك إنشاء Amazon RDS لخدمة Oracle المرتبطة وملء المضيف الأساسي والمنفذ واسم المستخدم وكلمة المرور وما إلى ذلك، وإضافة "خصائص اتصال إضافية" جديدة باسم الخاصية كقيمة AlternateServers ك (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) - لا تفوت الأقواس وادفع الانتباه إلى النقطتين (:) كفاصل. على سبيل المثال، القيمة التالية من خواتم بديلة تحدد تعريف اثنين من خوادم قاعدة بيانات بديلين لتجاوز فشل الاتصال: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

خصائص اتصال أكثر يمكنك تعيينها في سلسلة اتصال لكل حالة:

الخاصية ‏‏الوصف القيم المسموح بها
حجم الصفائف عدد وحدات البايت التي يمكن للموصل جلبها في رحلة واحدة ذهابا وإيابا عبر الشبكة. على سبيل المثال، ArraySize=‭10485760‬

تزيد القيم الأكبر معدل النقل عن طريق تقليل عدد المرات لإحضار البيانات عبر شبكة الاتصال. تزيد القيم الأصغر وقت الاستجابة، حيث إن هناك تأخيرا أقل في انتظار أن يقوم الخادم بإرسال البيانات.
عدد صحيح من 1 إلى 4294967296 (4 غيغابايت). القيمة الافتراضية هي 60000. لا تعرف القيمة 1 عدد وحدات البايت، ولكنها تشير بالتحديد إلى تخصيص مساحة لصف واحد من البيانات.

لتمكين التشفير على Amazon RDS للاتصال Oracle، لديك خيارين:

  • لاستخدام تشفير Triple-DES (3DES) ومقاييس التشفير المتقدمة (AES)، على جانب خادم Amazon RDS ل Oracle، انتقل إلى Oracle Advanced Security (OAS) وقم بتكوين إعدادات التشفير. للحصول على تفاصيل، راجع وثائق Oracleهذه. يفاوض موصل Amazon RDS for Oracle Application Development Framework (ADF) تلقائياً طريقة التشفير لاستخدام الطريقة التي تقوم بتكوينها في OAS عند إنشاء اتصال بـ Amazon RDS لـ Oracle.

  • لاستخدام بروتوكول أمان طبقة النقل (TLS):

    1. يجب الحصول على معلومات شهادة TLS/SSL. الحصول على قواعد الترميز المميز (DER) ترميز معلومات شهادة TLS / SSL وحفظ الإخراج (----- Begin Certificate… End Certificate -----) كملف نصي.

      openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
      

      مثال: استخراج معلومات عن الشهادة من DERcert.cer، ومن ثم حفظ الإخراج إلى cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. تحديث الإصدار keystore أو truststore. الأمر التالي يتمثل في إنشاء الملف truststore، مع أو بدون كلمة مرور، بتنسيق PKCS-12.

      openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
      

      مثال: إنشاء ملف PKCS12، truststore المسمى بـ MyTrustStoreFile، مع كلمة مرور.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. ضع truststore الملف على جهاز بوقت تشغيل التكامل المستضاف ذاتياً. على سبيل المثال، ضع الملف في C:\MyTrustStoreFile.

    4. في الخدمة، قم بتكوين Amazon RDS ل Oracle سلسلة الاتصال مع EncryptionMethod=1 والقيمة المقابلة/TrustStoreTrustStorePassword. على سبيل المثال، Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>

مثال:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

لنسخ البيانات من Amazon RDS ل Oracle، قم بتعيين خاصية نوع مجموعة البيانات إلى AmazonRdsForOracleTable. تدعم الخصائص التالية.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلىAmazonRdsForOracleTable. ‏‏نعم‬
Schema اسم المخطط. لا
طاولتنا اسم الجدول/طريقة العرض. لا
اسم الجدول اسم الجدول/طريقة العرض مع المخطط. هذه الخاصية مدعومة للتوافق مع الإصدارات السابقة. بالنسبة لحمل العمل الجديد، استخدم schema وtable. لا

مثال:

{
    "name": "AmazonRdsForOracleDataset",
    "properties":
    {
        "type": "AmazonRdsForOracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

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

Amazon RDS لـ Oracle كمصدر

تلميح

لتحميل البيانات من Amazon RDS ل Oracle بكفاءة باستخدام تقسيم البيانات، تعرف على المزيد من النسخ المتوازي من Amazon RDS ل Oracle.

لنسخ البيانات من Amazon RDS ل Oracle، قم بتعيين نوع المصدر في نشاط النسخ إلى AmazonRdsForOracleSource. يتم دعم الخصائص التالية في قسم المصدر لنشاط النسخ.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى AmazonRdsForOracleSource. ‏‏نعم‬
oracleReaderQuery استخدم استعلام SQL المخصص لقراءة البيانات. مثال على ذلك "SELECT * FROM MyTable" .
عند تمكين التحميل المقسم، ستحتاج إلى ربط أي معلمات التقسيم المدرجة المقابلة في الاستعلام الخاص بك. للحصول على أمثلة، راجع قسم النسخة المتوازية من Amazon RDS ل Oracle .
لا
خيارات التقسيم يحدد خيارات تقسيم البيانات المستخدمة لتحميل البيانات من Amazon RDS لـ Oracle.
القيم المسموح بها هي: None (افتراضي)، وPhysicalPartitionsOfTable، وDynamicRange.
عند تمكين خيار قسم (أي، ليس None)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من قاعدة بيانات Amazon RDS ل Oracle بواسطة parallelCopies الإعداد في نشاط النسخ.
لا
partitionSettings حدد مجموعة الإعدادات الخاصة بتقسيم البيانات.
تطبيق عندما لا يكون خيار التقسيم None.
لا
أسماء أقسام قائمة الأقسام المادية التي يجب نسخها.
تُطبق عندما يكون خيار التقسيم هو PhysicalPartitionsOfTable. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfTabularPartitionName في عبارة WHERE. على سبيل المثال، راجع قسم النسخة المتوازية من Amazon RDS ل Oracle .
لا
partitionColumnName حدد اسم عمود المصدر بنوع عدد صحيح الذي سيتم استخدامه عن طريق تقسيم النطاق للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف المفتاح الأساسي للجدول تلقائياً واستخدامه كعمود قسم.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionColumnName في عبارة WHERE. على سبيل المثال، راجع قسم النسخة المتوازية من Amazon RDS ل Oracle .
لا
التقسيم الحد الأقصى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionUpbound في عبارة WHERE. على سبيل المثال، راجع قسم النسخة المتوازية من Amazon RDS ل Oracle .
لا
partitionLowerBound الحد الأدنى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionLowbound في عبارة WHERE. على سبيل المثال، راجع قسم النسخة المتوازية من Amazon RDS ل Oracle .
لا

مثال: نسخ البيانات باستخدام استعلام أساسي بدون قسم

"activities":[
    {
        "name": "CopyFromAmazonRdsForOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for Oracle input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForOracleSource",
                "oracleReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

نسخة موازية من Amazon RDS لـ Oracle

يوفر موصل Amazon RDS لـ Oracle تقسيماً مضمناً للبيانات لنسخ البيانات من Amazon RDS لـ Oracle بالتوازي. يمكنك العثور على خيارات تقسيم البيانات في علامة التبويب Source لنشاط النسخ.

Screenshot of partition options.

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

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

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

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

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

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

تلميح

عند نسخ البيانات من جدول غير مقسمة، يمكنك استخدام خيار قسم "النطاق الديناميكي" للتقسيم مقابل عمود العدد الصحيح. إذا لم يكن لديك مثل هذا النوع من العمود، يمكنك الاستفادة من وظيفة ORA_HASH في استعلام المصدر لإنشاء عمود واستخدامه كعمود للقسم.

مثال: الاستعلام مع القسم الفعلي

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

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

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

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

لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.

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