تصميم إستراتيجية تحميل بيانات PolyBase لتجمع SQL مخصص في Azure Synapse Analytics
تستخدم مستودعات بيانات SMP التقليدية عملية استخراج وتحويل وتحميل (ETL) لتحميل البيانات. تجمع Azure SQL عبارة عن بنية معالجة متوازية على نطاق واسع (MPP) تستفيد من قابلية التوسع ومرونة موارد الحوسبة والتخزين. يمكن لعملية الاستخراج والتحميل والتحويل (ELT) الاستفادة من إمكانات معالجة الاستعلام الموزع المضمنة والقضاء على الموارد اللازمة لتحويل البيانات قبل التحميل.
بينما يدعم مجمع SQL العديد من طرق التحميل بما في ذلك خيارات غير Polybase مثل BCP وSQL BulkCopy API، فإن الطريقة الأسرع والأكثر قابلية للتوسع لتحميل البيانات هي من خلال PolyBase. تعد PolyBase تقنية تصل إلى البيانات الخارجية المخزنة في موقع تخزين Azure Blob أو Azure Data Lake Store عبر لغة T-SQL.
الاستخراج والتحميل والتحويل (ELT)
الاستخراج والتحميل والتحويل (ELT) هي عملية يتم من خلالها استخراج البيانات من نظام المصدر، وتحميلها في مستودع بيانات، ثم تحويلها.
الخطوات الأساسية لتنفيذ PolyBase ELT لتجمع SQL المخصص هي:
- استخراج البيانات المصدر في ملفات نصية.
- وضع البيانات في موقع تخزين Azure Blob أو Azure Data Lake Store.
- تحضير البيانات للتحميل.
- قم بتحميل البيانات في جداول مرحلية مخصصة لتجمع SQL باستخدام PolyBase.
- تحويل البيانات.
- إدراج البيانات في جداول إنتاج «Production tables».
للحصول على برنامج تعليمي للتحميل، راجع استخدام PolyBase لتحميل البيانات من موقع تخزين Azure Blob إلى Azure Synapse Analytics.
لمزيد من المعلومات، راجع تحميل مدونة الأنماط.
1. استخراج البيانات المصدر في ملفات نصية
يعتمد إخراج البيانات من نظام المصدر الخاص بك على موقع التخزين. الهدف هو نقل البيانات إلى ملفات نصية محددة مدعومة من PolyBase.
تنسيقات الملفات الخارجية PolyBase
يقوم PolyBase بتحميل البيانات من ملفات نصية محددة بترميز UTF-8 وUTF-16. يتم أيضاً تحميل PolyBase من تنسيقات ملفات Hadoop RC File وORC وParquet. يمكن لـ PolyBase أيضاً تحميل البيانات من ملفات Gzip وSnappy المضغوطة. لا يدعم PolyBase حالياً تنسيق ASCII الممتد، وتنسيق العرض الثابت، والتنسيقات المتداخلة مثل WinZip وJavaScript Object Notation وXML.
إذا كنت تقوم بالتصدير من SQL Server، فيمكنك استخدام أداة سطر أوامر bcp لتصدير البيانات إلى ملفات نصية محددة. يكون تعيين نوع بيانات Parquet to Azure Synapse Analytics كما يلي:
نوع بيانات Parquet | نوع بيانات SQL |
---|---|
Tinyint | Tinyint |
Smallint | Smallint |
Int | Int |
Bigint | Bigint |
منطقي | بت |
مزدوج | حُر |
حُر | حقيقي |
مزدوج | المال |
مزدوج | smallmoney |
سلسلة | nchar |
سلسلة | nvarchar |
سلسلة | حرف |
سلسلة | varchar |
ثنائي | ثنائي |
ثنائي | ثنائي متغير |
طابع زمني | التاريخ |
طابع زمني | smalldatetime |
طابع زمني | التاريخ والوقت2 |
طابع زمني | التاريخ والوقت |
طابع زمني | الوقت |
التاريخ | التاريخ |
عشري | عشري |
2. ضع البيانات في موقع تخزين Azure Blob أو Azure Data Lake Store
لنقل البيانات إلى تخزين Azure، يمكنك نقلها إلى موقع تخزين Azure Blob أو Azure Data Lake Store. في أي من الموقعين، يجب تخزين البيانات في ملفات نصية. يمكن تحميل PolyBase من أي موقع.
الأدوات والخدمات التي يمكنك استخدامها لنقل البيانات إلى Azure Storage:
- تعمل خدمة Azure ExpressRoute على تحسين معدل نقل الشبكة وأدائها وإمكانية توقعها. ExpressRoute هي خدمة تقوم بتوجيه بياناتك عبر اتصال خاص مخصص إلى Azure. لا تقوم اتصالات ExpressRoute بتوجيه البيانات عبر الإنترنت العام. توفر الاتصالات مزيدًا من الموثوقية وسرعات أسرع وأوقات انتقال أقل وأمانًا أعلى من الاتصالات العادية عبر الإنترنت العام.
- تنقل الأداة المساعدة AzCopy البيانات إلى Azure Storage عبر الإنترنت العام. يعمل هذا إذا كانت أحجام بياناتك أقل من 10 تيرابايت. لإجراء عمليات تحميل على أساس منتظم باستخدام AzCopy، اختبر سرعة الشبكة لمعرفة ما إذا كانت مقبولة.
- يحتوي Azure Data Factory (ADF) على بوابة يمكنك تثبيته على الخادم المحلي. بعد ذلك، يمكنك إنشاء مسار لنقل البيانات من الخادم المحلي الخاص بك إلى Azure Storage. لاستخدام Data Factory مع مجموعة SQL المخصصة، راجع تحميل البيانات إلى تجمع SQL مخصص.
3. تحضير البيانات للتحميل
قد تحتاج إلى إعداد وتنظيف البيانات في حساب التخزين الخاص بك قبل تحميلها في مجمع SQL المخصص. يمكن إجراء تحضير البيانات أثناء وجود بياناتك في المصدر، أثناء تصدير البيانات إلى ملفات نصية، أو بعد أن تكون البيانات في Azure Storage. من الأسهل التعامل مع البيانات في وقت مبكر من العملية قدر الإمكان.
تحديد الجداول الخارجية
قبل أن تتمكن من تحميل البيانات، تحتاج إلى تحديد الجداول الخارجية في مستودع البيانات الخاص بك. يستخدم PolyBase جداول خارجية لتحديد البيانات والوصول إليها في Azure Storage. يشبه الجدول الخارجي طريقة عرض قاعدة البيانات. يحتوي الجدول الخارجي على مخطط الجدول ويشير إلى البيانات المخزنة خارج مستودع البيانات.
يتضمن تعريف الجداول الخارجية تحديد مصدر البيانات وتنسيق الملفات النصية وتعريفات الجدول. فيما يلي موضوعات بناء جملة T-SQL التي ستحتاج إليها:
تنسيق الملفات النصية
بمجرد تحديد العناصر الخارجية، ستحتاج إلى محاذاة صفوف الملفات النصية مع الجدول الخارجي وتعريف تنسيق الملف. يجب أن تتماشى البيانات الموجودة في كل صف من الملف النصي مع تعريف الجدول. لتنسيق الملفات النصية:
- إذا كانت بياناتك واردة من مصدر غير علائقي، فأنت بحاجة إلى تحويلها إلى صفوف وأعمدة. سواء كانت البيانات من مصدر علائقي أو غير علائقي، يجب تحويل البيانات لتتماشى مع تعريفات العمود للجدول الذي تخطط لتحميل البيانات فيه.
- تنسيق البيانات في ملف نصي لمحاذاة الأعمدة وأنواع البيانات في جدول وجهة تجمّع SQL. يؤدي المحاذاة غير الصحيحة بين أنواع البيانات في الملفات النصية الخارجية وجدول مستودع البيانات إلى رفض الصفوف أثناء التحميل.
- افصل الحقول في الملف النصي باستخدام فاصل. تأكد من استخدام حرف أو تسلسل أحرف غير موجود في بيانات المصدر. استخدم حرف النهاية الذي حددته باستخدام CREATE EXTERNAL FILE FORMAT.
4. قم بتحميل البيانات في جداول مرحلية مخصصة لتجمع SQL باستخدام PolyBase
من الأفضل تحميل البيانات في جدول مرحلي. تسمح لك جداول التدريج بمعالجة الأخطاء دون التدخل في جداول الإنتاج. يمنحك الجدول المرحلي أيضاً الفرصة لاستخدام إمكانات معالجة الاستعلام الموزع المضمنة في تجمّع SQL لتحويلات البيانات قبل إدراج البيانات في جداول الإنتاج.
خيارات للتحميل مع PolyBase
لتحميل البيانات باستخدام PolyBase، يمكنك استخدام أي من خيارات التحميل التالية:
- يعملPolyBase مع T-SQL بشكل جيد عندما تكون بياناتك في موقع تخزين Azure Blob أو Azure Data Lake Store. يمنحك أقصى قدر من التحكم في عملية التحميل، ولكنه يتطلب منك أيضاً تحديد عناصر البيانات الخارجية. تحدد الطرق الأخرى هذه العناصر خلف الكواليس أثناء قيامك بتعيين جداول المصدر إلى جداول الوجهة. لتنظيم عمليات تحميل T-SQL، يمكنك استخدام Azure Functions Data Factory أو SSIS أو Azure.
- يعملPolyBase مع SSIS بشكل جيد عندما تكون بيانات المصدر في SQL Server. يعرّف SSIS المصدر إلى تعيينات الجدول الوجهة، وينظم أيضًا الحمل. إذا كان لديك بالفعل حزم SSIS، يمكنك تعديل الحزم للعمل مع وجهة مستودع البيانات الجديدة.
- تعد PolyBase مع Azure Data Factory (ADF) أداة تنسيق أخرى. يحدد مسار التدفق وجدولة الوظائف.
- ينقلPolyBase مع Azure Databricks البيانات من جدول Azure Synapse Analytics إلى إطار بيانات Databricks و/أو يكتب البيانات من إطار بيانات Databricks إلى جدول Azure Synapse Analytics باستخدام PolyBase.
خيارات تحميل غير PolyBase
إذا كانت بياناتك غير متوافقة مع PolyBase، فيمكنك استخدام bcp أو SQLBulkCopy API. يتم تحميل BCP مباشرة إلى تجمع SQL المخصص دون المرور عبر موقع تخزين Azure Blob، وهو مخصص للأحمال الصغيرة فقط. لاحظ أن أداء التحميل لهذه الخيارات أبطأ من PolyBase.
5. تحويل البيانات
في أثناء وجود البيانات في الجدول المرحلي، قم بإجراء التحويلات التي يتطلبها حمل العمل الخاص بك. ثم انقل البيانات إلى جدول الإنتاج.
6. أدخل البيانات في جداول الإنتاج
تنقل عبارة INSERT INTO ... SELECT البيانات من الجدول المرحلي إلى الجدول الدائم.
في أثناء تصميم عملية ETL، حاول تشغيل العملية على عينة اختبار صغيرة. حاول استخراج 1000 صف من الجدول إلى ملف، ونقله إلى Azure، ثم حاول تحميله في جدول مرحلي.
حلول تحميل الشريك
العديد من شركائنا لديهم حلول تحميل. لمعرفة المزيد، راجع قائمة شركاء الحلول.
الخطوات التالية
للحصول على إرشادات التحميل، راجع إرشادات لتحميل البيانات.