مشاركة عبر


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

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

تلميح

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

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

هام

الإصدار 1.0 من موصل Cassandra في مرحلة الإزالة. يوصى بترقية موصل Cassandra من الإصدار 1.0 إلى 2.0.

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

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

القدرات المدعومة الاشعه تحت الحمراء
نشاط النسخ (مصدر/-) (1) (2)
نشاط البحث (1) (2)

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

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

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

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

إشعار

بالنسبة للنشاط الذي يتم تشغيله على وقت تشغيل التكامل المستضاف ذاتياً 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.

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

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

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

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

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

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

    لقطة شاشة لموصل Cassandra.

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

    لقطة شاشة لتكوين الخدمة المرتبطة في Cassandra.

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

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

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

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

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

إشعار

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

مثال: الإصدار 2.0

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

مثال: الإصدار 1.0

{
    "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 ‏‏نعم‬
مساحة المفتاح اسم مسافة المفاتيح أو المخطط في قاعدة بيانات 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 كمصدر

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

الخاصية الوصف مطلوب
النوع وجوب تعيين خاصية النوع لمصدر نشاط النسخ على: CassandraSource ‏‏نعم‬
استعلام قم باستخدام الاستعلام المخصص لقراءة البيانات. استعلام CQL، راجع مرجع CQL. لا (إذا تم تحديد "tableName" و"keyspace" في مجموعة البيانات).
مستوى التناسق يحدد مستوى التناسق عدد النسخ المتماثلة التي يجب أن تستجيب لطلب القراءة قبل إرجاع البيانات إلى تطبيق العميل. يتحقق 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",
                "consistencyLevel": "one"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

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

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

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

نوع بيانات Cassandra نوع بيانات الخدمة المؤقتة (للإصدار 2.0) نوع بيانات الخدمة المؤقتة (للإصدار 1.0)
ASCII السلسلة‬ السلسلة‬
BIGINT int64 int64
النقطه بايت [] بايت []
منطقيه قيمة منطقية قيمة منطقية
التاريخ التاريخ والوقت التاريخ والوقت
عشري عدد عشري عدد عشري
مزدوج مزدوج مزدوج
حُر فردي فردي
INET السلسلة‬ السلسلة‬
Int Int32 Int32
smallint قصير Int16
نص السلسلة‬ السلسلة‬
الطابع الزمني التاريخ والوقت التاريخ والوقت
TIMEUUID المعرف الفريد العمومي المعرف الفريد العمومي
TINYINT SByte Int16
Uuid المعرف الفريد العمومي المعرف الفريد العمومي
VARCHAR السلسلة‬ السلسلة‬
VARINT عدد عشري عدد عشري

إشعار

بالنسبة إلى أنواع المجموعات (الخريطة والمجموعة والقائمة وما إلى ذلك) ضمن الإصدار 1.0، راجع قسم العمل مع أنواع مجموعات Cassandra باستخدام الجدول الظاهري عند استخدام الإصدار 1.0 .

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

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

العمل مع المجموعات عند استخدام الإصدار 2.0

عند استخدام الإصدار 2.0 لنسخ البيانات من قاعدة بيانات Cassandra، لا يتم إنشاء جداول ظاهرية أنواع المجموعات. يمكنك نسخ جدول مصدر إلى المتلقي بنوعه الأصلي بتنسيق JSON.

مثال

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

pk_int القيمة‬ قائمة الخريطة StringSet
1 "عينة القيمة 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"أ" ، "ب" ، "ج"}
3 "عينة القيمة 3" ["100", "101", "102", "105"] {"S1": "ر"} {"أ"، "ه"}

يمكن قراءة البيانات مباشرة من جدول مصدر، ويتم الاحتفاظ بقيم العمود في أنواعها الأصلية بتنسيق JSON، كما هو موضح في الجدول التالي:

pk_int القيمة‬ قائمة الخريطة StringSet
1 "عينة القيمة 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} ["أ" ، "ب" ، "ج"]
3 "عينة القيمة 3" ["100", "101", "102", "105"] {"S1": "ر"} ["أ" ، "ه"]

العمل مع المجموعات باستخدام الجدول الظاهري عند استخدام الإصدار 1.0

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

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

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

مثال

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

pk_int القيمة‬ قائمة الخريطة StringSet
1 "عينة القيمة 1" ["1", "2", "3"] {"S1": "a", "S2": "b"} {"أ" ، "ب" ، "ج"}
3 "عينة القيمة 3" ["100", "101", "102", "105"] {"S1": "ر"} {"أ"، "ه"}

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

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

pk_int القيمة‬
1 "عينة القيمة 1"
3 "عينة القيمة 3"

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

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

جدول "ExampleTable_vt_List":

pk_int List_index List_value
1 1 1
1 1 2
1 2 3
3 1 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

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

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

ترقية موصل Cassandra

فيما يلي الخطوات التي تساعدك على ترقية موصل Cassandra:

  1. في صفحة تحرير الخدمة المرتبطة ، حدد الإصدار 2.0 وقم بتكوين الخدمة المرتبطة بالإشارة إلى خصائص الخدمة المرتبطة.

  2. في الإصدار 2.0، query يدعم في مصدر نشاط النسخ استعلام CQL فقط، وليس استعلام SQL-92. لمزيد من المعلومات، راجع Cassandra كمصدر.

  3. يختلف تعيين نوع البيانات للإصدار 2.0 عن تعيين الإصدار 1.0. لمعرفة أحدث تعيين لنوع البيانات، راجع تعيين نوع البيانات ل Cassandra.

الاختلافات بين Cassandra الإصدار 2.0 والإصدار 1.0

يوفر الإصدار 2.0 من موصل Cassandra وظائف جديدة ومتوافقة مع معظم ميزات الإصدار 1.0. يعرض الجدول أدناه اختلافات الميزات بين الإصدار 2.0 والإصدار 1.0.

الإصدار 2.0 الإصدار 1.0
دعم استعلام CQL. دعم استعلام SQL-92 أو استعلام CQL.
دعم التحديد keyspace وبشكل tableName منفصل في مجموعة البيانات. دعم التحرير keyspace عند تحديد إدخال اسم الجدول يدويا في مجموعة البيانات.
لم يتم إنشاء جداول ظاهرية لنوع المجموعة. لمزيد من المعلومات، راجع العمل مع المجموعات عند استخدام الإصدار 2.0. يتم إنشاء الجداول الظاهرية لنوع المجموعة. لمزيد من المعلومات، راجع العمل مع أنواع مجموعات Cassandra باستخدام الجدول الظاهري عند استخدام الإصدار 1.0.
يتم استخدام التعيينات التالية من أنواع بيانات Cassandra إلى نوع بيانات الخدمة المؤقتة.

SMALLINT -> قصير
تينينت -> SByte
يتم استخدام التعيينات التالية من أنواع بيانات Cassandra إلى نوع بيانات الخدمة المؤقتة.

SMALLINT -> Int16
TINYINT -> Int16

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