تصميم إستراتيجية تحميل بيانات PolyBase لتجمع SQL مخصص
مقالة
تستخدم مستودعات البيانات التقليدية لنظام المعالجات المتعددة المتماثل (SMP) عملية استخراج وتحويل وتحميل (ETL) لتحميل البيانات. تجمع Azure SQL عبارة عن بنية معالجة متوازية على نطاق واسع (MPP) تستفيد من قابلية التوسع ومرونة موارد الحوسبة والتخزين.
في المقابل، يمكن لعملية الاستخراج والتحميل والتحويل (ELT) الاستفادة من قدرات معالجة الاستعلام الموزعة المضمنة والقضاء على الموارد اللازمة لتحويل البيانات قبل التحميل.
بينما يدعم تجمع SQL العديد من أساليب التحميل، بما في ذلك الخيارات غير Polybase مثل برنامج النسخ المجمع (bcp) وواجهة برمجة تطبيقات SQL BulkCopy، فإن أسرع طريقة وأكثرها قابلية للتوسع لتحميل البيانات هي من خلال PolyBase. PolyBase هي تقنية تصل إلى البيانات الخارجية المخزنة في تخزين Azure Blob أو Azure Data Lake Storage عبر لغة Transact-SQL (T-SQL).
تنفيذ Polybase ELT
الاستخراج والتحميل والتحويل (ELT) هي عملية يتم من خلالها استخراج البيانات من نظام المصدر، وتحميلها في مستودع بيانات، ثم تحويلها.
الخطوات الأساسية لتنفيذ PolyBase ELT لتجمع SQL المخصص هي:
يعتمد إخراج البيانات من نظام المصدر الخاص بك على موقع التخزين. الهدف هو نقل البيانات إلى ملفات نصية محددة مدعومة من PolyBase.
تنسيقات الملفات الخارجية PolyBase
يقوم PolyBase بتحميل البيانات من ملفات نصية محددة بترميز UTF-8 وUTF-16. يتم أيضاً تحميل PolyBase من تنسيقات ملفات Hadoop RC File وORC وParquet. يمكن لـ PolyBase أيضاً تحميل البيانات من ملفات Gzip وSnappy المضغوطة. لا يدعم PolyBase حاليا ASCII الموسع أو تنسيق ثابت العرض أو التنسيقات المتداخلة مثل WinZip وJSON وXML.
إذا كنت تقوم بالتصدير من SQL Server، فيمكنك استخدام أداة سطر أوامر bcp لتصدير البيانات إلى ملفات نصية محددة. يسرد الجدول التالي أنواع بيانات Parquet المعينة إلى Azure Synapse Analytics.
نوع بيانات Parquet
نوع بيانات SQL
Tinyint
Tinyint
Smallint
Smallint
العدد الصحيح
العدد الصحيح
عدد صحيح كبير
عدد صحيح كبير
boolean
بت
مزدوج
عائم
عائم
real
مزدوج
money
مزدوج
smallmoney
سلسلة
nchar
سلسلة
nvarchar
سلسلة
حرف
سلسلة
حروف متنوعة
binary
binary
binary
varbinary
الطابع الزمني
date
الطابع الزمني
smalldatetime
الطابع الزمني
التاريخ والوقت2
الطابع الزمني
datetime
الطابع الزمني
time
date
date
عشري
عشري
نقل البيانات إلى تخزين Azure Blob أو Azure Data Lake Store
للحصول على البيانات في تخزين Azure، يمكنك نقلها إلى تخزين Azure Blob أو Azure Data Lake Storage. في أي من الموقعين، يجب تخزين البيانات في ملفات نصية. يمكن تحميل PolyBase من أي موقع.
يمكنك استخدام الأدوات والخدمات التالية لنقل البيانات إلى Azure Storage:
تعمل خدمة Azure ExpressRoute على تحسين معدل نقل الشبكة وأدائها وإمكانية توقعها. ExpressRoute هي خدمة تقوم بتوجيه بياناتك عبر اتصال خاص مخصص إلى Azure. لا توجه اتصالات ExpressRoute البيانات عبر الإنترنت العام. توفر الاتصالات مزيدًا من الموثوقية وسرعات أسرع وأوقات انتقال أقل وأمانًا أعلى من الاتصالات العادية عبر الإنترنت العام.
تنقل الأداة المساعدة AzCopy البيانات إلى Azure Storage عبر الإنترنت العام. يعمل هذا إذا كانت أحجام بياناتك أقل من 10 تيرابايت. لإجراء الأحمال بانتظام باستخدام AzCopy، اختبر سرعة الشبكة لمعرفة ما إذا كانت مقبولة.
قد تحتاج إلى إعداد وتنظيف البيانات في حساب التخزين الخاص بك قبل تحميلها في مجمع SQL المخصص. يمكن إجراء إعداد البيانات أثناء وجود بياناتك في المصدر، أثناء تصدير البيانات إلى الملفات النصية، أو بعد أن تكون البيانات في تخزين Azure. من الأسهل العمل مع البيانات في وقت مبكر من العملية قدر الإمكان.
تحديد الجداول الخارجية
قبل أن تتمكن من تحميل البيانات، تحتاج إلى تحديد الجداول الخارجية في مستودع البيانات الخاص بك. يستخدم PolyBase جداول خارجية لتحديد البيانات والوصول إليها في Azure Storage. يشبه الجدول الخارجي طريقة عرض قاعدة البيانات. يحتوي الجدول الخارجي على مخطط الجدول ويشير إلى البيانات المخزنة خارج مستودع البيانات.
يتضمن تعريف الجداول الخارجية تحديد مصدر البيانات وتنسيق الملفات النصية وتعريفات الجدول. فيما يلي مواضيع بناء جملة T-SQL التي تحتاج إليها:
بمجرد تحديد العناصر الخارجية، ستحتاج إلى محاذاة صفوف الملفات النصية مع الجدول الخارجي وتعريف تنسيق الملف. يجب أن تتماشى البيانات الموجودة في كل صف من الملف النصي مع تعريف الجدول.
لتنسيق الملفات النصية:
إذا كانت بياناتك تأتي من مصدر غير علائقي، فستحتاج إلى تحويلها إلى صفوف وأعمدة. سواء كانت البيانات من مصدر علائقي أو غير علائقي، يجب تحويل البيانات لتتماشى مع تعريفات العمود للجدول الذي تخطط لتحميل البيانات فيه.
تنسيق البيانات في ملف نصي لمحاذاة الأعمدة وأنواع البيانات في جدول وجهة تجمّع SQL. يؤدي المحاذاة غير الصحيحة بين أنواع البيانات في الملفات النصية الخارجية وجدول مستودع البيانات إلى رفض الصفوف أثناء التحميل.
افصل الحقول في الملف النصي باستخدام فاصل. تأكد من استخدام حرف أو تسلسل أحرف غير موجود في البيانات المصدر. استخدم حرف النهاية الذي حددته باستخدام CREATE EXTERNAL FILE FORMAT.
تحميل البيانات في جداول مخصصة للتقسيم المرحلي لتجمع SQL باستخدام PolyBase
من أفضل الممارسات تحميل البيانات في جدول مرحلي. تسمح لك جداول التدريج بمعالجة الأخطاء دون التدخل في جداول الإنتاج. يمنحك الجدول المرحلي أيضاً الفرصة لاستخدام إمكانات معالجة الاستعلام الموزع المضمنة في تجمّع SQL لتحويلات البيانات قبل إدراج البيانات في جداول الإنتاج.
خيارات للتحميل مع PolyBase
لتحميل البيانات باستخدام PolyBase، يمكنك استخدام أي من خيارات التحميل التالية:
يعمل PolyBase مع T-SQL بشكل جيد عندما تكون بياناتك في تخزين Azure Blob أو Azure Data Lake Storage. يمنحك أقصى قدر من التحكم في عملية التحميل، ولكنه يتطلب منك أيضاً تحديد عناصر البيانات الخارجية. تحدد الطرق الأخرى هذه العناصر خلف الكواليس أثناء قيامك بتعيين جداول المصدر إلى جداول الوجهة. لتنسيق تحميلات T-SQL، يمكنك استخدام Azure Data Factory أو SSIS أو Azure Functions.
يعمل PolyBase مع SQL Server Integration Services (SSIS) بشكل جيد عندما تكون بيانات المصدر الخاصة بك في SQL Server. يحدد SSIS تعيينات الجدول من المصدر إلى الوجهة، وينسق أيضا الحمل. إذا كان لديك بالفعل حزم SSIS، يمكنك تعديل الحزم للعمل مع وجهة مستودع البيانات الجديدة.
ينقلPolyBase مع Azure Databricks البيانات من جدول Azure Synapse Analytics إلى إطار بيانات Databricks و/أو يكتب البيانات من إطار بيانات Databricks إلى جدول Azure Synapse Analytics باستخدام PolyBase.
خيارات تحميل غير PolyBase
إذا كانت بياناتك غير متوافقة مع PolyBase، يمكنك استخدام bcp أو واجهة برمجة تطبيقات SQLBulkCopy. يتم تحميل BCP مباشرة إلى تجمع SQL المخصص دون المرور عبر موقع تخزين Azure Blob، وهو مخصص للأحمال الصغيرة فقط. لاحظ أن أداء التحميل لهذه الخيارات أبطأ من PolyBase.
تحويل البيانات
في أثناء وجود البيانات في الجدول المرحلي، قم بإجراء التحويلات التي يتطلبها حمل العمل الخاص بك. ثم انقل البيانات إلى جدول الإنتاج.
إدراج البيانات في جداول الإنتاج
INSERT INTO ... SELECT تنقل العبارة البيانات من الجدول المرحلي إلى الجدول الدائم.
في أثناء تصميم عملية ETL، حاول تشغيل العملية على عينة اختبار صغيرة. حاول استخراج 1000 صف من الجدول إلى ملف، ونقله إلى Azure، ثم حاول تحميله في جدول مرحلي.
حلول تحميل الشريك
العديد من شركائنا لديهم حلول تحميل. لمعرفة المزيد، راجع قائمة شركاء الحلول.