استراتيجيات تحميل البيانات لتجمع SQL مخصص في Azure Synapse Analytics

تستخدم تجمعات SQL المخصصة لـ SMP التقليدية عملية استخراج وتحويل وتحميل (ETL) لتحميل البيانات. يستخدم Synapse SQL، داخل Azure Synapse Analytics، بنية معالجة الاستعلامات الموزعة التي تستفيد من قابلية التوسع ومرونة لموارد الحوسبة والتخزين.

استخدام عملية الاستخراج والتحميل والتحويل (ELT) يستفيد من قدرات معالجة الاستعلامات الموزعة المضمنة ويزيل الموارد اللازمة لتحويل البيانات قبل التحميل.

بينما تدعم تجمعات SQL المخصصة العديد من أساليب التحميل، بما في ذلك خيارات SQL Server الشائعة مثل bcp وSqlBulkCopy API، فإن أسرع طريقة وأكثرها قابلية للتوسع لتحميل البيانات هي من خلال جداول PolyBase الخارجية وعبارة COPY.

باستخدام PolyBase وعبارةCOPY، يمكنك الوصول إلى البيانات الخارجية المخزنة في تخزين Azure Blob أو Azure Data Lake Store عبر لغة T-SQL. للحصول على أكبر قدر من المرونة عند التحميل، نوصي باستخدام عبارة COPY.

ما هو ELT؟

الاستخراج والتحميل والتحويل (ELT) هي عملية يتم من خلالها استخراج البيانات من نظام المصدر، وتحميلها في تجمع SQL مخصص، ثم تحويلها بعد ذلك.

الخطوات الأساسية لتنفيذ ELT هي:

  1. استخراج البيانات المصدر في ملفات نصية.
  2. وضع البيانات في موقع تخزين Azure Blob أو Azure Data Lake Store.
  3. تحضير البيانات للتحميل.
  4. تحميل البيانات في جداول التقسيم المرحلي باستخدام PolyBase أو الأمر COPY.
  5. تحويل البيانات.
  6. إدراج البيانات في جداول إنتاج «Production tables».

للحصول على برنامج تعليمي حول التحميل، راجع تحميل البيانات من تخزين Azure blob.

1. استخراج بيانات المصدر في ملفات نصية

يعتمد إخراج البيانات من نظام المصدر الخاص بك على موقع التخزين. يتمثل الهدف في نقل البيانات إلى النصوص المحددة المدعومة أو ملفات CSV.

تنسيقات الملفات المعتمدة

باستخدام PolyBase وعبارة COPY، يمكنك تحميل البيانات من النصوص المحددة أو ملفات CSV بترميز UTF-8 وUTF-16. بالإضافة إلى النصوص المحددة أو ملفات CSV، يتم تحميلها من تنسيقات ملفات Hadoop مثل ORC وParquet. يمكن لـ PolyBase وعبارة COPY أيضًا تحميل البيانات من ملفات Gzip وSnappy المضغوطة.

تنسيق ASCII الموسع وتنسيق العرض الثابت والتنسيقات المتداخلة مثل WinZip أو XML غير مدعومة. إن كنت تقوم بالتصدير من SQL Server، فإنه يمكنك استخدام أداة سطر أوامر bcp لتصدير البيانات إلى ملفات نصية محددة.

2. ضع البيانات في موقع تخزين Azure Blob أو Azure Data Lake Store

لنقل البيانات إلى تخزين Azure، يمكنك نقلها إلى موقع تخزين Azure Blob أو Azure Data Lake Store Gen2. في أي من الموقعين، يجب تخزين البيانات في ملفات نصية. يمكن تحميل PolyBase وعبارة COPY من أي من الموقعين.

الأدوات والخدمات التي يمكنك استخدامها لنقل البيانات إلى Azure Storage:

  • تعمل خدمة Azure ExpressRoute على تحسين معدل نقل الشبكة وأدائها وإمكانية توقعها. ExpressRoute هي خدمة تقوم بتوجيه بياناتك عبر اتصال خاص مخصص إلى Azure. لا تقوم اتصالات ExpressRoute بتوجيه البيانات عبر الإنترنت العام. توفر الاتصالات مزيدًا من الموثوقية وسرعات أسرع وأوقات انتقال أقل وأمانًا أعلى من الاتصالات العادية عبر الإنترنت العام.
  • تنقل الأداة المساعدة AzCopy البيانات إلى Azure Storage عبر الإنترنت العام. يعمل هذا إذا كانت أحجام بياناتك أقل من 10 تيرابايت. لإجراء عمليات تحميل على أساس منتظم باستخدام AzCopy، اختبر سرعة الشبكة لمعرفة ما إذا كانت مقبولة.
  • يحتوي Azure Data Factory (ADF) على بوابة يمكنك تثبيته على الخادم المحلي. بعد ذلك، يمكنك إنشاء مسار لنقل البيانات من الخادم المحلي الخاص بك إلى Azure Storage. لكي تستخدم Data Factory مع تجمعات SQL المخصصة، راجع تحميل البيانات لتجمعات SQL المخصصة.

3. تحضير البيانات للتحميل

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

تعريف الجداول

يجب أولاً تعريف الجداول التي تقوم بتحميلها في تجمع SQL المخصص عند استخدام عبارة COPY.

إذا كنت تستخدم PolyBase، فستحتاج إلى تعريف الجداول الخارجية في تجمع SQL المخصص قبل التحميل. يستخدم PolyBase جداول خارجية لتحديد البيانات والوصول إليها في Azure Storage. يشبه الجدول الخارجي طريقة عرض قاعدة البيانات. يحتوي الجدول الخارجي على مخطط الجدول ويشير إلى البيانات المخزنة خارج تجمع SQL المخصص.

يتضمن تعريف الجداول الخارجية تحديد مصدر البيانات وتنسيق الملفات النصية وتعريفات الجدول. المقالات المرجعية لبناء جملة T-SQL التي ستحتاج إليها هي:

استخدم تعيين نوع بيانات SQL التالي عند تحميل ملفات Parquet:

نوع Parquet نوع منطقي من Parquet (تعليق توضيحي) نوع بيانات SQL
BOOLEAN بت
BINARY / BYTE_ARRAY Varbinary
مزدوج حُر
حُر فعلي
INT32 Int
INT64 Bigint
INT96 datetime2
FIXED_LEN_BYTE_ARRAY ثنائي
ثنائي UTF8 nvarchar
ثنائي سلسلة nvarchar
ثنائي قائمة تعداد nvarchar
ثنائي Uuid Uniqueidentifier
ثنائي عشري عشري
ثنائي JSON nvarchar(MAX)
ثنائي BSON varbinary(حد أقصى)
FIXED_LEN_BYTE_ARRAY عشري عشري
BYTE_ARRAY الفاصل varchar(حد أقصى)،
INT32 INT(8، صحيح) Smallint
INT32 INT(16، صحيح) Smallint
INT32 INT(32، صحيح) Int
INT32 INT (8، خطأ) Tinyint
INT32 INT (16، خطأ) Int
INT32 INT (32، خطأ) Bigint
INT32 التاريخ التاريخ
INT32 عشري عشري
INT32 الوقت (MILLIS ) الوقت
INT64 INT(64، صحيح) Bigint
INT64 INT (64، خطأ) عشري(20، 0)
INT64 عشري عشري
INT64 الوقت (مللي ثانية) الوقت
INT64 TIMESTAMP (مللي ثانية) التاريخ والوقت2
نوع مركب قائمة varchar(max)
نوع مركب تعيين varchar(max)

هام

  • لا تدعم تجمعات SQL المخصصة حاليًا أنواع بيانات Parquet بدقة MICROS وNANOS.
  • قد تواجه الخطأ التالي إذا كانت الأنواع غير متطابقة بين Parquet وSQL أو إذا كان لديك أنواع بيانات Parquet غير مدعومة: HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: ClassCastException:...
  • تحميل قيمة خارج نطاق 0-127 في عمود tinyint لتنسيق ملف Parquet وORC غير معتمد.

للحصول على مثال لإنشاء عناصر خارجية، راجع إنشاء جداول خارجية.

تنسيق الملفات النصية

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

  • إذا كانت بياناتك واردة من مصدر غير علائقي، فأنت بحاجة إلى تحويلها إلى صفوف وأعمدة. سواء كانت البيانات من مصدر علائقي أو غير علائقي، يجب تحويل البيانات لتتماشى مع تعريفات العمود للجدول الذي تخطط لتحميل البيانات فيه.
  • تنسيق البيانات في ملف نصي لمحاذاة الأعمدة وأنواع البيانات في جدول وجهة. تؤدي المحاذاة غير الصحيحة بين أنواع البيانات في الملفات النصية الخارجية وجدول تجمع SQL إلى رفض الصفوف في أثناء التحميل.
  • افصل الحقول في الملف النصي باستخدام فاصل. تأكد من استخدام حرف أو تسلسل أحرف غير موجود في بيانات المصدر. استخدم حرف النهاية الذي حددته باستخدام CREATE EXTERNAL FILE FORMAT.

4. تحميل البيانات باستخدام PolyBase أو عبارة COPY

من الأفضل تحميل البيانات في جدول مرحلي. تسمح لك جداول التدريج بمعالجة الأخطاء دون التدخل في جداول الإنتاج. يمنحك الجدول المرحلي أيضًا الفرصة لاستخدام بنية المعالجة المتوازية لتجمع SQL المخصص لتحويلات البيانات قبل إدراج البيانات في جداول الإنتاج.

الخيارات الخاصة بالتحميل

لتحميل البيانات، يمكنك استخدام أي من خيارات التحميل التالية:

  • عبارة COPY هي أداة التحميل الموصى بها لأنها تُمكنك من تحميل البيانات بسلاسة ومرونة. تحتوي العبارة على العديد من إمكانيات التحميل الإضافية التي لا يوفرها PolyBase. راجع البرنامج التعليمي لعبارة COPY لسيارة الأجرة في مدينة نيويورك للتشغيل من خلال نموذج البرنامج التعليمي.
  • يتطلب PolyBase باستخدام T-SQL منك تعريف عناصر البيانات الخارجية.
  • تعد PolyBase وعبارة COPY مع Azure Data Factory (ADF) أداة تنسيق أخرى. يحدد خط التدفق وجدولة الوظائف.
  • يعملPolyBase مع SSIS بشكل جيد عندما تكون بيانات المصدر في SQL Server. يعرّف SSIS المصدر إلى تعيينات الجدول الوجهة، وينظم أيضًا الحمل. إذا كان لديك بالفعل حزم SSIS، فإنه يمكنك تعديل الحزم للعمل مع وجهة مستودع البيانات الجديدة.
  • ينقل PolyBase مع Azure Databricks البيانات من جدول إلى إطار بيانات Databricks و/أو يكتب البيانات من إطار بيانات Databricks إلى جدول باستخدام PolyBase.

الخيارات الأخرى للتحميل

بالإضافة إلى PolyBase وعبارة COPY، يمكنك استخدام bcp أو واجهة برمجة تطبيقات SqlBulkCopy. يتم تحميل BCP مباشرة إلى قاعدة بيانات دون المرور عبر موقع تخزين Azure Blob، وهو مخصص للأحمال الصغيرة فقط.

ملاحظة

أداء تحميل هذه الخيارات أبطأ من PolyBase وعبارة COPY.

5. تحويل البيانات

في أثناء وجود البيانات في الجدول المرحلي، قم بإجراء التحويلات التي يتطلبها حمل العمل الخاص بك. ثم انقل البيانات إلى جدول الإنتاج.

6. أدخل البيانات في جداول الإنتاج

تنقل عبارة INSERT INTO ... SELECT البيانات من الجدول المرحلي إلى الجدول الدائم.

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

حلول تحميل الشريك

العديد من شركائنا لديهم حلول تحميل. لمعرفة المزيد، راجع قائمة شركاء الحلول.

الخطوات التالية

لتحميل الإرشادات، راجع أفضل ممارسات تحميل البيانات.