استخدام Apache Sqoop مع Apache Hadoop في HDInsight
تعرف على كيفية استخدام Apache Sqoop في HDInsight لاستيراد البيانات وتصديرها بين نظام مجموعة HDInsight وقاعدة بيانات Azure SQL.
على الرغم من أن Apache Hadoop هو خيار طبيعي لمعالجة البيانات غير المنظمة وشبه المنظمة ، مثل السجلات والملفات، قد تكون هناك حاجة أيضا لمعالجة البيانات المنظمة المخزنة في قواعد البيانات الارتباطية.
Apache Sqoop هي أداة مصممة لنقل البيانات بين نظام مجموعة Hadoop وقواعد البيانات الارتباطية. يمكنك استخدامه لاستيراد البيانات من نظام إدارة قواعد البيانات الارتباطية (RDBMS) مثل SQL Server أو الخلية أو Oracle إلى نظام الملفات الموزعةHadoop (HDFS)، وتحويل البيانات في Hadoop مع MapReduce أو Apache Hive، ثم تصدير البيانات مرة أخرى إلى RDBMS. في هذه المقالة، تستخدم قاعدة بيانات Azure SQL لقاعدة البيانات ارتباطية.
هام
في هذه المقالة نستعرض كيفية إعداد بيئة اختبار لتنفيذ نقل البيانات. ثم تختار أسلوب نقل البيانات لهذه البيئة من إحدى الطرق في القسم تشغيل مهام Sqoop.
للحصول على إصدارات Sqoop المدعومة من نظام مجموعة HDInsight، راجع ما الجديد في إصدارات نظام مجموعة HDInsight؟
يوفر نظام مجموعة HDInsight بعض البيانات كعينة. حيث يمكنك استخدام العينتين التاليتين:
- ملف سجل Apache
Log4j
، الموجود في/example/data/sample.log
. وتستخرج السجلات التالية من الملف:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
جدول Hive يسمى
hivesampletable
، يحتوي على إشارة مرجعية لملف البيانات الموجود في/hive/warehouse/hivesampletable
. يحتوي الجدول على بعض بيانات الجهاز المحمول.الحقل نوع البيانات clientid سلسلة وقت الاستعلام سلسلة السوق سلسلة الجهاز/النظام الأساسي سلسلة جهاز/منشأ سلسلة طراز الجهاز سلسلة state سلسلة البلد سلسلة وقت طلب الاستعلام مزدوج sessionid
عدد صحيح كبير عرض صفحة الجلسة عدد صحيح كبير
في هذه المقالة، يمكنك استخدام قاعدتي البيانات التاليتين لعمل اختبار استيراد Sqoop وتصديرها.
يتم إنشاء نظام مجموعة قاعدة بيانات SQL والعناصر الأخرى من خلال مدخل Microsoft Azure باستخدام قالب إدارة موارد Azure. يمكن العثور على القالب في قوالب Azure Quickstart. يستدعي قالب Resource Manager حزمة bacpac لنشر مخططات الجدول إلى قاعدة بيانات SQL. إذا كنت ترغب في استخدام حاوية خاصة لملفات bacpac، استخدم القيم التالية في القالب:
"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",
ملاحظة
الاستيراد باستخدام قالب أو مدخل Azure لا يدعم إلا استيراد ملف BACPAC من تخزين كائن ثنائي كبير الحجم Azure.
حدد الصورة التالية لفتح القالب فيAzure Resource Manager في مدخل Microsoft Azure.
أدخل الخصائص التالية:
الحقل القيمة الاشتراك حدد اشتراك Azure من القائمة المنسدلة. مجموعة الموارد حدد مجموعة الموارد الخاصة بك ضمن القائمة المنسدلة، أو أنشئ مجموعة موارد جديدة الموقع حدد المنطقة من القائمة المنسدلة. اسم المجموعة أدخل اسمًا لمجموعة Hadoop. استخدم أحرف صغيرة فقط. اسم مستخدم تسجيل الدخول إلى نظام المجموعة احتفظ بالقيمة admin
المكتظة مسبقا.كلمة مرور تسجيل الدخول إلى نظام المجموعة إدخال «password». اسم مستخدم Ssh احتفظ بالقيمة sshuser
المكتظة مسبقا.كلمة مرور Ssh إدخال «password». تسجيل دخول مسؤول Sql احتفظ بالقيمة sqluser
المكتظة مسبقا.كلمة مرور مسؤول Sql إدخال «password». _artifacts Location استخدم القيمة الافتراضية إلا إذا كنت تريد استخدام ملف bacpac الخاص بك في موقع مختلف. رمز Sas لموقع البيانات الاصطناعية اترك فراغاً. اسم ملف Bacpac استخدم القيمة الافتراضية إلا إذا كنت تريد استخدام ملف bacpac الخاص بك في موقع مختلف. الموقع استخدم القيمة الافتراضية. اسم خادم SQL المنطقي هو
<ClusterName>dbserver
. اسم قاعدة البيانات هو<ClusterName>db
. اسم حساب التخزين الافتراضي هوe6qhezrh2pdqu
.حدد أوافق على الشروط والأحكام المذكورة أعلاه.
حدد شراء. تشاهد صورة مصغرة من الخريطة بعنوان إرسال نشر لنشر قالب. يستغرق الأمر 20 دقيقة لإنشاء نظام مجموعة قاعدة بيانات SQL.
يمكن ل HDInsight تشغيل مهام Sqoop باستخدام أساليب مختلفة. استخدم الجدول التالي لتحديد الطريقة المناسبة لك ثم اتبع الارتباط للإرشادات التفصيلية.
استخدم هذا إذا أردت... | ... shell التفاعلية | ... معالجة دفعية | ...من هذا نظام تشغيل العميل |
---|---|---|---|
SSH | ? | ? | Linux أو Unix أو macOS X أو Windows |
.NET SDK for Hadoop | ? | Windows (في الوقت الحالي) | |
Azure PowerShell | ? | Windows |
- تصدير كمية كبيرة- مع HDInsight المستندة إلى لينكس، موصل Sqoop المستخدم لتصدير البيانات إلى Microsoft SQL Server أو قاعدة بيانات SQL لا تدعم حاليا إدراج كميات كبيرة.
- إرسال في دفعات- مع HDInsight المستندة إلى Linux، عند استخدام مفتاح التبديل
-batch
عند تنفيذ الإدراجات، يقوم Sqoop بإدراجات متعددة بدلا من الإرسال في دفعات.
لقد تعلمت الآن كيفية استخدام Sqoop. لمعرفة المزيد، راجع:
- استخدام Apache Hive مع HDInsight
- تحميل البيانات إلى HDInsight: البحث عن طرق أخرى لتحميل البيانات إلى تخزين HDInsight / Azure Blob.
- استخدام Apache Sqoop لاستيراد وتصدير البيانات بين Apache Hadoop على HDInsight وقاعدة بيانات SQL