نسخ البيانات من Cassandra باستخدام Azure Data Factory أو Synapse Analytics

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

تلميح

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

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

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

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

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

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

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

على وجه التحديد، يدعم موصل Cassandra هذا:

  • Cassandra الإصداران 2.x و3.x.
  • نسخ البيانات باستخدام مصادقة أساسية أو مجهولة.

إشعار

بالنسبة للنشاط الذي يتم تشغيله على وقت تشغيل التكامل المستضاف ذاتياً Integration Runtime، يتم دعم Cassandra 3.x منذ إصدار IR 3.7 والإصدارات الأحدث.

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

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

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

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

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

يوفر Integration Runtime برنامج تشغيل Cassandra مدمجاً، وبالتالي لا تحتاج إلى تثبيت أي برنامج تشغيل يدوياً عند نسخ البيانات من/إلى Cassandra.

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

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

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

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

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

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

    Screenshot of the Cassandra connector.

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

    Screenshot of linked service configuration for Cassandra.

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

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد كيانات Data Factory الخاصة بموصل Cassandra.

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

الخصائص التالية مدعومة لخدمة Cassandra المرتبطة:

الخاصية الوصف مطلوب
النوع وجوب تعيين خاصية النوع على: Cassandra ‏‏نعم‬
مضيف واحد أو أكثر من عناوين IP أو أسماء المضيف لخوادم Cassandra.
حدد قائمة مفصولة بفواصل لعناوين IP أو أسماء المضيف للاتصال بجميع الخوادم في وقت واحد.
‏‏نعم‬
المنفذ منفذ TCP الذي يستخدمه خادم Cassandra للاستماع إلى اتصالات العميل. لا (الافتراضي هو 9042)
نوع المصادقة نوع المصادقة المستخدمة للاتصال بقاعدة بيانات Cassandra.
القيم المسموح بها هي: Basic، وAnonymous.
‏‏نعم‬
اسم المستخدم حدد اسم المستخدم لحساب المستخدم. نعم، إذا تم تعيين authenticationType إلى أساسي.
كلمة المرور تحديد كلمة المرور لحساب المستخدم. ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو قم بالإشارة إلى بيانات سرية مخزنة في Azure Key Vault. نعم، إذا تم تعيين authenticationType إلى أساسي.
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

إشعار

الاتصال حالياً بـ Cassandra باستخدام TLS غير مدعوم.

مثال:

{
    "name": "CassandraLinkedService",
    "properties": {
        "type": "Cassandra",
        "typeProperties": {
            "host": "<host>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

لنسخ البيانات من Cassandra، عيّن خاصية النوع لمجموعة البيانات إلى CassandraTable. تدعم الخصائص التالية:

الخاصية الوصف مطلوب
النوع جوب تعيين خاصية النوع لمجموعة البيانات على: CassandraTable ‏‏نعم‬
keyspace اسم مسافة المفاتيح أو المخطط في قاعدة بيانات Cassandra. لا (إذا تم تحديد "استعلام" عن "CassandraSource")
اسم الجدول اسم الجدول في قاعدة بيانات Cassandra. لا (إذا تم تحديد "استعلام" عن "CassandraSource")

مثال:

{
    "name": "CassandraDataset",
    "properties": {
        "type": "CassandraTable",
        "typeProperties": {
            "keySpace": "<keyspace name>",
            "tableName": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Cassandra linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

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

Cassandra كمصدر

لنسخ البيانات من Cassandra، اضبط نوع المصدر في نشاط النسخ على CassandraSource. تُدعم الخصائص التالية في قسم مصدر نشاط النسخ:

الخاصية الوصف مطلوب
النوع وجوب تعيين خاصية النوع لمصدر نشاط النسخ على: CassandraSource ‏‏نعم‬
استعلام قم باستخدام الاستعلام المخصص لقراءة البيانات. استعلام SQL-92 أو استعلام CQL. راجع مرجع CQL.

عند استخدام استعلام SQL، حدد اسم keyspace لمساحة المفتاح لتمثيل الجدول الذي تريد الاستعلام عنه.
لا (إذا تم تحديد "tableName" و"keyspace" في مجموعة البيانات).
consistencyLevel يحدد مستوى التناسق عدد النسخ المتماثلة التي يجب أن تستجيب لطلب القراءة قبل إرجاع البيانات إلى تطبيق العميل. يتحقق Cassandra العدد المحدد من النسخ المتماثلة للبيانات لتلبية طلب القراءة. راجع Configuring data consistency للحصول على التفاصيل.

القيم المسموح بها هي: ONE، TWO، THREE، QUORUM، ALL، LOCAL_QUORUM وEACH_QUORUM وLOCAL_ONE.
لا (الافتراضي هو ONE)

مثال:

"activities":[
    {
        "name": "CopyFromCassandra",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cassandra input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CassandraSource",
                "query": "select id, firstname, lastname from mykeyspace.mytable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

تعيين نوع البيانات لـ Cassandra

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

نوع بيانات Cassandra نوع بيانات الخدمة المؤقتة
ASCII السلسلة‬
BIGINT Int64
BLOB بايت []
BOOLEAN قيمة منطقية
عشري عدد عشري
مزدوج مزدوج
حُر فردي
INET السلسلة‬
INT Int32
TEXT السلسلة‬
الطابع الزمني DateTime
TIMEUUID Guid
Uuid Guid
VARCHAR السلسلة‬
VARINT عدد عشري

إشعار

بالنسبة لأنواع المجموعات (خريطة، مجموعة، قائمة، إلخ)، راجع قسم Work with Cassandra collection types using virtual table.

الأنواع المعرفة من قِبل المستخدم غير مدعومة.

لا يمكن أن يكون طول أطوال العمود الثنائي وعمود السلسلة أكبر من 4000.

العمل مع المجموعات باستخدام الجدول الظاهري

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

  • جدول أساسي، والذي يحتوي على نفس البيانات الموجودة في الجدول الحقيقي باستثناء أعمدة المجموعة. يستخدم الجدول الأساسي نفس اسم الجدول الحقيقي الذي يمثله.
  • الجدول الظاهري لكل عمود مجموعة يوسع البيانات المتداخلة. تتم تسمية الجداول الظاهرية التي تمثل المجموعات باستخدام اسم الجدول الحقيقي، والفاصل "vt" واسم العمود.

تشير الجداول الافتراضية إلى البيانات الموجودة في الجدول الحقيقي، ما يتيح للسائق الوصول إلى البيانات غير الطبيعية. انظر قسم المثال للحصول على التفاصيل. يمكنك الوصول إلى محتوى مجموعات Cassandra من خلال الاستعلام عن الجداول الافتراضية والانضمام إليها.

مثال

على سبيل المثال، "ExampleTable" التالية هي جدول قاعدة بيانات Cassandra الذي يحتوي على عدد صحيح من عمود المفتاح الأساسي المسمى "pk_int"، وعمود نص باسم القيمة، وعمود قائمة، وعمود خريطة، وعمود مجموعة (يسمى "StringSet").

pk_int القيمة‬ قائمة الخريطة StringSet
1 "sample value 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"A", "B", "C"}
3 "sample value 3" ["100", "101", "102", "105"] {"S1": "t"} {"A", "E"}

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

الجدول الظاهري الأول هو الجدول الأساسي المسمى "ExampleTable" ويظهر في الجدول التالي:

pk_int القيمة‬
1 "sample value 1"
3 "sample value 3"

يحتوي الجدول الأساسي على نفس البيانات الموجودة في جدول قاعدة البيانات الأصلي باستثناء المجموعات التي تم حذفها من هذا الجدول وتم توسيعها في جداول ظاهرية أخرى.

تُظهر الجداول التالية الجداول الظاهرية التي تعيد تنسيق البيانات من أعمدة القائمة والخريطة وStringSet. تشير الأعمدة ذات الأسماء التي تنتهي بـ "فهرس" أو "مفتاح" إلى موضع البيانات داخل القائمة أو الخريطة الأصلية. تحتوي الأعمدة ذات الأسماء التي تنتهي بـ "_value" على البيانات الموسعة من المجموعة.

جدول "ExampleTable_vt_List":

pk_int List_index List_value
1 0 1
1 1 2
1 2 3
3 0 100
3 1 101
3 2 102
3 3 103

جدول "ExampleTable_vt_Map":

pk_int Map_key Map_value
1 S1 و
1 S2 ب
3 S1 الوقت

جدول "ExampleTable_vt_StringSet":

pk_int StringSet_value
1 و
1 مضمن
1 C
3 ش
3 E

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

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

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