نسخ البيانات من SAP HANA باستخدام Azure Data Factory أو تحليلات Synapse

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

تلميح

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

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

تلميح

للتعرف على الدعم الكلي لسيناريو تكامل بيانات SAP، راجع المستند الفني لتكامل بيانات SAP مع مقدمة مفصلة حول كل موصل SAP والمقارنة والتوجيه.

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

يتم دعم موصل SAP HANA هذا للإمكانيات التالية:

القدرات المدعومة IR
Copy activity (المصدر/المتلق)
نشاط البحث

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

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

وبشكل خاص، يدعم موصل SAP HANA هذا ما يلي:

  • نسخ البيانات من أي إصدار من قاعدة بيانات SAP HANA.
  • نسخ البيانات من نماذج معلومات HANA (مثل طرق العرض التحليلية والحسابية) وجداول الصفوف/الأعمدة.
  • نسخ البيانات باستخدام مصادقة Basic أو Windows.
  • النسخ المتوازي من مصدر SAP HANA. راجع قسم النسخ المتوازي من SAP HANA للمزيد على التفاصيل.

تلميح

لنسخ البيانات إلى مخزن بيانات SAP HANA، استخدم موصل ODBC عام. انظر قسم متلقي SAP HANA بالتفاصيل. لاحظ أن الخدمات المرتبطة لموصل SAP HANA وموصل ODBC تكون مع نوع مختلف وبالتالي لا يمكن إعادة استخدامها.

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

لاستخدام موصل SAP HANA هذا، تحتاج إلى:

  • إعداد وقت تشغيل تكامل مستضاف ذاتياً. راجع مقالة وقت تشغيل التكامل المستضاف ذاتياً للحصول على التفاصيل.
  • تثبيت برنامج تشغيل SAP HANA ODBC على جهاز وقت التشغيل التكامل. يمكنك تنزيل برنامج تشغيل SAP Hana ODBC من مركز تنزيل برامج SAP . ابحث باستخدام الكلمة الأساسية SAP Hana CLIENT لنظام التشغيل النوافذ .

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

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

إنشاء خدمة مرتبطة بـ SAP HANA باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة إلى SAP HANA في واجهة مستخدم مدخل Microsoft Azure.

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

  2. ابحث عن SAP وحدد موصل SAP HANA.

    Screenshot of the SAP HANA connector.

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

    Screenshot of linked service configuration for SAP HANA.

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

توفر المقاطع التالية تفاصيل حول الخصائص المستخدمة لتعريف كيانات مصنع البيانات الخاصة بموصل SAP HANA.

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

يتم دعم الخصائص التالية لخدمة SAP HANA المرتبطة:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: SapHana ‏‏نعم‬
سلسلة الاتصال حدد المعلومات المطلوبة للاتصال بـ SAP HANA باستخدام إما المصادقة الأساسية أو المصادقة المتكاملة في Windows. الرجوع إلى العينات التالية.
في سلسلة الاتصال، الخادم/المنفذ إلزامي (المنفذ الافتراضي هو 30015)، واسم المستخدم وكلمة المرور إلزامية عند استخدام المصادقة الأساسية. للحصول على إعدادات متقدمة إضافية، راجع خصائص اتصال SAP HANA ODBC
يمكنك أيضاً وضع كلمة المرور في Azure Key Vault وسحب تكوين كلمة المرور من سلسلة الاتصال. راجع مقالة تخزين بيانات الاعتماد في Azure Key Vault للحصول على المزيد من التفاصيل.
‏‏نعم‬
userName حدد اسم المستخدم عند استخدام المصادقة المتكاملة في Windows. مثال: user@domain.com لا
كلمة المرور تحديد كلمة المرور لحساب المستخدم. ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو قم بالإشارة إلى بيانات سرية مخزنة في Azure Key Vault. لا
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. وقت تشغيل التكامل المستضاف ذاتيًا مطلوب كما هو مذكور في المتطلبات الأساسية. ‏‏نعم‬

مثال: استخدام المصادقة الأساسية

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;UID=<userName>;PWD=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: استخدام المصادقة المتكاملة في Windows

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;",
            "userName": "<username>", 
            "password": { 
                "type": "SecureString", 
                "value": "<password>" 
            } 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

إذا كنت تستخدم خدمة SAP HANA المرتبطة مع البيانات الأساسية التالية، فإنها لا تزال مدعومة كما هي، بينما نقترح عليك استخدام الخدمة الجديدة للمضي قدماً.

مثال:

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "server": "<server>:<port (optional)>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

لنسخ البيانات من SAP HANA، يتم دعم الخصائص التالية:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى: SapHanaTable ‏‏نعم‬
Schema اسم المخطط في قاعدة بيانات SAP HANA. لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)
طاولتنا اسم الجدول في قاعدة بيانات SAP HANA. لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)

مثال:

{
    "name": "SAPHANADataset",
    "properties": {
        "type": "SapHanaTable",
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP HANA linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

إذا كنت تستخدم RelationalTable مجموعة بيانات مُصنفة حسب النوع، فإنها لا تزال مدعومة كما هي، بينما نقترح عليك استخدام مجموعة البيانات الجديدة للمضي قدماً.

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

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

SAP HANA كمصدر

تلميح

لاستيعاب البيانات من SAP HANA بكفاءة باستخدام تقسيم البيانات، تعرف على المزيد من قسم النسخ المتوازي من SAP HANA.

لنسخ البيانات من SAP HANA، يتم دعم الخصائص التالية في قسم مصدر نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى: SapHanaSource ‏‏نعم‬
استعلام يحدد استعلام SQL لقراءة البيانات من مثيل SAP Hana. ‏‏نعم‬
خيارات التقسيم تحديد خيارات تقسيم البيانات المستخدمة في استيعاب البيانات من SAP HANA. تعرف على المزيد من قسم النسخ المتوازي من SAP HANA.
القيم المسموحة هي:بدون (افتراضي)، وPhysicalPartitionsOfTable وSapHanaDynamicRange. تعرف على المزيد من قسم النسخ المتوازي من SAP HANA. PhysicalPartitionsOfTable يمكن استخدامها فقط عند نسخ البيانات من جدول ولكن ليس استعلام.
عند تمكين خيار تقسيم (أي، None لا)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من SAP HANA بواسطة parallelCopies الإعداد على نشاط النسخ.
كاذبه
partitionSettings حدد مجموعة الإعدادات الخاصة بتقسيم البيانات.
تُطبق عندما يكون خيار التقسيم هو SapHanaDynamicRange.
كاذبه
partitionColumnName حدد اسم العمود المصدر الذي سيتم استخدامه بواسطة التقسيم للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف الفهرس أو المفتاح الأساسي للجدول تلقائياً واستخدامهما كعمود للتقسيم.
تُطبق عندما يكون خيار التقسيم هو SapHanaDynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfHanaDynamicRangePartitionCondition في عبارة WHERE. انظر المثال في قسم النسخ المتوازي من SAP HANA.
نعم عند استخدام SapHanaDynamicRange القسم. 
packetSize تحديد حجم حزمة الشبكة (بالكيلو بايت) لتقسيم البيانات إلى كتل متعددة. إذا كان لديك كمية كبيرة من البيانات لنسخها، يمكن أن يزيد حجم الحزمة المتزايدة من سرعة القراءة من SAP HANA في معظم الحالات. يوصى باختبار الأداء عند ضبط حجم الحزمة. ‏‏لا.
القيمة الافتراضية هي 2048 (2MB).

مثال:

"activities":[
    {
        "name": "CopyFromSAPHANA",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP HANA input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapHanaSource",
                "query": "<SQL query for SAP HANA>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

إذا كنت تستخدم RelationalSource مصدر النسخ المكتوب، فإنه لا يزال مدعوماً كما هو، بينما يقترح عليك استخدام النسخة الجديدة للمضي قدماً.

نسخ متوازي من SAP HANA

يوفر موصل SAP HANA تقسيم البيانات المضمن لنسخ البيانات من SAP HANA بالتوازي. يمكنك العثور على خيارات تقسيم البيانات في الجدول Source لنشاط النسخ.

Screenshot of partition options

عند تمكين نسخة مقسمة، تُشغِّل الخدمة استعلامات متوازية مقابل مصدر SAP HANA لاسترداد البيانات حسب التقسيمات. يتم التحكم في الدرجة المتوازية بواسطة parallelCopies الإعداد على نشاط النسخ. على سبيل المثال، إذا قمت بتعيين parallelCopies إلى أربعة، تنشئ الخدمة بشكل متزامن وتشغل أربعة استعلامات استناداً إلى خيار القسم المحدد والإعدادات، ويقوم كل استعلام باسترداد جزء من البيانات من SAP HANA الخاص بك.

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

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

أثناء التنفيذ، تكتشف الخدمة تلقائياً نوع القسم الفعلي لجدول SAP HANA المحدد، وتختار إستراتيجية القسم المقابلة:
- تقسيم النطاق: قم بتعريف عمود التقسيم ونطاقات التقسيم للجدول، ثم انسخ البيانات حسب النطاق.
- تجزئة التقسيم: استخدم التقسيم المجزأ كعمود تقسيم ثم قسِّم وانسخ البيانات استناداً إلى نطاقات محسوبة من قبل الخدمة.
- تقسيم Round-Robin أو لا تقسيم:استخدم المفتاح الأساسي كعمود تقسيم، ثم قسِّم وانسخ البيانات استناداً إلى النطاقات المحسوبة بواسطة الخدمة.
تحميل كمية كبيرة من البيانات باستخدام استعلام مخصص. خيار التقسيم: تقسيم النطاق الديناميكي.
استعلام: SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>.
عمود التقسيم: حدد العمود المستخدم لتطبيق تقسيم النطاق الديناميكي.

أثناء التنفيذ، تقوم الخدمة أولاً بحساب نطاقات القيمة لعمود التقسيم المحدد، وذلك بتوزيع الصفوف بالتساوي في عدد من المستودعات وفقاً لعدد قيم عمود التقسيم المميزة لإعداد النسخ المتوازي، ثم تستبدلها?AdfHanaDynamicRangePartitionCondition بتصفية نطاق قيمة عمود التقسيم لكل قسم، وإرسالها إلى SAP HANA.

إذا كنت تريد استخدام أعمدة متعددة كأعمدة أقسام، يمكنك سَلسَلة قيم كل عمود كعمود واحد في الاستعلام وتحديده كعمود التقسيم، مثلSELECT * FROM (SELECT *, CONCAT(<KeyColumn1>, <KeyColumn2>) AS PARTITIONCOLUMN FROM <TABLENAME>) WHERE ?AdfHanaDynamicRangePartitionCondition.

مثال: الاستعلام مع أقسام فعلية لجدول

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

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

"source": {
    "type": "SapHanaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "SapHanaDynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<Partition_column_name>"
    }
}

تعيين نوع البيانات ل SAP HANA

عند نسخ البيانات من SAP HANA، يتم استخدام التعيينات التالية من أنواع بيانات SAP HANA إلى أنواع البيانات المؤقتة المستخدمة داخلياً داخل الخدمة. راجع تعيينات المخططات ونوع البيانات لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي.

نوع بيانات SAP HANA نوع بيانات الخدمة المؤقتة
أبجدي رقمي السلسلة‬
BIGINT Int64
ثنائي بايت []
BINTEXT السلسلة‬
BLOB بايت []
BOOL بايت
CLOB السلسلة‬
التاريخ DateTime
عشري عدد عشري
مزدوج مزدوج
حُر مزدوج
INTEGER Int32
NCLOB السلسلة‬
nvarchar السلسلة‬
حقيقي فردي
التاريخ الثاني DateTime
نص قصير السلسلة‬
رقم عشري صغير عدد عشري
smallint Int16
STGEOMETRYTYPE بايت []
STPOINTTYPE بايت []
TEXT السلسلة‬
TIME TimeSpan
TINYINT بايت
VARCHAR السلسلة‬
الطابع الزمني DateTime
VARBINARY بايت []

متلقي SAP HANA

حالياً، موصل SAP HANA غير مدعوم كمتلقٍ، بينما يمكنك استخدام موصل ODBC عام مع برنامج تشغيل SAP HANA لكتابة البيانات في SAP HANA.

اتبع المتطلبات الأساسية لإعداد وقت تشغيل التكامل المستضاف ذاتياً وتثبيت برنامج تشغيل SAP HANA ODBC أولاً. إنشاء خدمة مرتبطة ODBC للاتصال بمخزن البيانات SAP HANA كما هو موضح في المثال التالي، ثم إنشاء مجموعة البيانات ونسخ مصدر النشاط مع نوع ODBC وفقاً لذلك. تعرف على المزيد من مقالة موصل ODBC.

{
    "name": "SAPHANAViaODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "Driver={HDBODBC};servernode=<HANA server>.clouddatahub-int.net:30015",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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