نسخ البيانات وتحويلها من Hive باستخدام Azure Data Factory

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

تلميح

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

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

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

موصل Apache Hive مدعوم للقدرات التالية:

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

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

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

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

يدعم الموصل إصدارات Windows في هذه المقالة.

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

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

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

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

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

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

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

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

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

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

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

     حدد موصل الخلية.

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

     تكوين خدمة مرتبطة بـ Hive.

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

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

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع على: خلية ‏‏نعم‬
مضيف عنوان IP أو اسم المضيف لخادم Hive، مفصول بعلامة "؛" لمضيفات متعددة (فقط عند تمكين serviceDiscoveryMode). ‏‏نعم‬
المنفذ منفذ TCP الذي يستخدمه خادم Hive للاستماع لاتصالات العميل. إذا قمت بالاتصال بـ Azure HDInsight، فحدد المنفذ كـ 443. ‏‏نعم‬
serverType نوع خادم الخلية.
القيم المسموح بها هي: HiveServer1، HiveServer2، HiveThriftServer
لا
بروتوكول النقل التوفير بروتوكول النقل المراد استخدامه في طبقة التوفير.
القيم المسموح بها هي: ثنائي، SASL، HTTP
لا
نوع المصادقة طريقة المصادقة المستخدمة للوصول إلى خادم Hive.
القيم المسموح بها هي: Anonymous، Username، UsernameAndPassword، WindowsAzureHDInsightService. مصادقة Kerberos غير مدعومة الآن.
‏‏نعم‬
serviceDiscoveryMode صحيح للإشارة إلى استخدام خدمة ZooKeeper، خطأ لا. لا
اسم zooKeeper مساحة الاسم على ZooKeeper والتي يتم تحتها إضافة عقد Hive Server 2. لا
useNativeQuery يحدد ما إذا كان السائق يستخدم استعلامات HiveQL الأصلية، أو يحولها إلى نموذج مكافئ في HiveQL. لا
اسم المستخدم اسم المستخدم الذي تستخدمه للوصول إلى Hive Server. لا
كلمة المرور كلمة المرور الخاصة بالمستخدم. ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو قم بالإشارة إلى بيانات سرية مخزنة في Azure Key Vault. لا
httpPath عنوان URL الجزئي المقابل لخادم Hive. لا
enableSsl يحدد ما إذا كانت الاتصالات بالخادم مشفرة باستخدام TLS. القيمة الافتراضية هي false. لا
trustedCertPath المسار الكامل لملف .pem الذي يحتوي على شهادات CA موثوق بها للتحقق من الملقم عند الاتصال عبر TLS. يمكن تعيين هذه الخاصية فقط عند استخدام TLS على وقت تشغيل التكامل المستضاف ذاتيًا. القيمة الافتراضية هي ملف cacerts.pem المثبت مع وقت تشغيل التكامل. لا
useSystemTrustStore تحديد ما إذا كنت تريد استخدام شهادة CA من مخزن الثقة بالنظام أو من ملف PEM محدد. القيمة الافتراضية هي false. لا
allowHostNameCNMismatch تحدد ما إذا كنت تريد طلب اسم شهادة TLS / SSL الصادرة عن CA لمطابقة اسم مضيف الملقم عند الاتصال عبر TLS. القيمة الافتراضية هي false. لا
allowSelfSignedServerCert يحدد ما إذا كان سيتم السماح بشهادات موقعة ذاتياً من الخادم. القيمة الافتراضية هي false. لا
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا
التخزين مرجع للخدمة المرتبطة لحساب التخزين المستخدم في تنظيم البيانات في تعيين تدفق البيانات. هذا مطلوب فقط عند استخدام خدمة Hive المرتبطة في تعيين تدفق البيانات لا

مثال:

{
    "name": "HiveLinkedService",
    "properties": {
        "type": "Hive",
        "typeProperties": {
            "host" : "<cluster>.azurehdinsight.net",
            "port" : "<port>",
            "authenticationType" : "WindowsAzureHDInsightService",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

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

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمجموعة البيانات على: HiveObject ‏‏نعم‬
Schema اسم المخطط. لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)
طاولتنا ضع اسمًا للجدول. لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)
اسم الجدول اسم الجدول بما في ذلك جزء المخطط. هذه الخاصية مدعومة للتوافق مع الإصدارات السابقة. بالنسبة لحمل العمل الجديد، استخدم schema وtable. لا (إذا تم تحديد "الاستعلام" في مصدر النشاط)

مثال

{
    "name": "HiveDataset",
    "properties": {
        "type": "HiveObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Hive linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

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

HiveSource كمصدر

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع لمصدر نشاط النسخ على: HiveSource ‏‏نعم‬
استعلام استخدم استعلام SQL المخصص لقراءة البيانات. على سبيل المثال: "SELECT * FROM MyTable". لا (إذا تم تحديد "tableName" في مجموعة البيانات)

مثال:

"activities":[
    {
        "name": "CopyFromHive",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Hive input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HiveSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

تعيين خصائص تدفق البيانات

يتم دعم موصل الخلية كمصدر لمجموعة بيانات مضمنة في تعيين تدفقات البيانات. اقرأ باستخدام استعلام أو مباشرة من جدول Hive في HDInsight. يتم تنظيم بيانات الخلية في حساب تخزين كملفات باركيه قبل أن يتم تحويلها كجزء من تدفق البيانات.

خصائص المصدر

يسرد الجدول أدناه الخصائص التي يدعمها مصدر خلية. يمكنك تحرير هذه الخصائص في علامة التبويب "Source options".

Name ‏‏الوصف مطلوب القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
متجر يجب أن يكون المتجر hive yes hive المخزن
Format سواء كنت تقرأ من جدول أو استعلام yes table أو query format
اسم المخطط إذا كنت تقرأ من جدول، فإن مخطط الجدول المصدر نعم، إذا كان التنسيق هو table السلسلة‬ اسم المخطط
اسم الجدول إذا كنت تقرأ من جدول، اسم الجدول نعم، إذا كان التنسيق هو table السلسلة‬ اسم الجدول
الاستعلام إذا كان التنسيق هو query، فإن الاستعلام المصدر على الخدمة المرتبطة Hive نعم، إذا كان التنسيق هو query السلسلة‬ استعلام
نظم سيتم دائماً تنظيم جدول الخلية. yes true نظم
حاوية التخزين تستخدم حاوية التخزين لتنظيم البيانات قبل القراءة من Hive أو الكتابة إلى Hive. يجب أن يكون لمجموعة الخلية حق الوصول إلى هذه الحاوية. yes السلسلة‬ storageContainer
قاعدة بيانات التدريج مخطط / قاعدة البيانات حيث يمتلك حساب المستخدم المحدد في الخدمة المرتبطة حق الوصول إليه. يتم استخدامه لإنشاء جداول خارجية أثناء التدريج وإسقاطها بعد ذلك no true أو false انطلاق اسم قاعدة البيانات
نصوص SQL التمهيدية كود SQL ليتم تشغيله على جدول Hive قبل قراءة البيانات no السلسلة‬ preSQLs

مثال المصدر

يوجد أدناه مثال لتهيئة مصدر الخلية:

مثال على مصدر الخلية

تُترجم هذه الإعدادات إلى البرنامج النصي التالي لتدفق البيانات:

source(
    allowSchemaDrift: true,
    validateSchema: false,
    ignoreNoFilesFound: false,
    format: 'table',
    store: 'hive',
    schemaName: 'default',
    tableName: 'hivesampletable',
    staged: true,
    storageContainer: 'khive',
    storageFolderPath: '',
    stagingDatabaseName: 'default') ~> hivesource

القيود المعروفة

  • الأنواع المعقدة مثل المصفوفات والخرائط والبنى والوحدات غير مدعومة للقراءة.
  • يدعم موصل Hive جداول Hive فقط في Azure HDInsight من الإصدار 4.0 أو أعلى (Apache Hive 3.1.0)
  • بشكل افتراضي، يوفر برنامج تشغيل Hive "tableName.columnName" في المتلقي. إذا كنت لا ترغب في رؤية اسم الجدول في اسم العمود، فهناك طريقتان لإصلاح ذلك. أ. تحقق من الإعداد "hive.resultset.use.unique.column.names" في جانب خادم Hive وقم بتعيينه إلى false. ب. استخدم تعيين العمود لإعادة تسمية اسم العمود.

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

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

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