إنشاء جدول خارجي كمحدد (CETAS)

مكتمل

تلقي هذه الوحدة نظرة فاحصة على الأمر CREATE EXTERNAL TABLE AS SELECT (CETAS) والفوائد التي توفرها.

يدعم CETAS Azure Blob Storage وAzure Data Lake Storage وتخزين الكائنات المتوافق مع S3 وقواعد البيانات الخارجية. يدعم CETAS أيضا تصدير تنسيقات الملفات كملفات CSV أو Parquet.

القدرة الأقوى ل CETAS هي الجمع مع عمليات SELECT الأخرى، مثل الجمع مع OPENROWSET أو مع جداول خارجية أخرى. تسمح هذه المجموعة باستخدام CETAS بطرق مختلفة ومرنة.

حالات الاستخدام ل CETAS

هناك العديد من حالات الاستخدام المختلفة ل CETAS، ولكن الحالات الرئيسية الثلاثة هي:

  • تقريري
  • ترتيب البيانات أو إلغاء تحميلها
  • مركز تصدير البيانات

تقريري

إن حالة الاستخدام الأكثر وضوحا ل CETAS هي تبسيط إعداد التقارير باستخدام جميع إمكانيات مرونة PolyBase وSQL Server. يمكنك الاتصال بأي مصدر بيانات أو جدول أو ملف مدعوم، واستخدام T-SQL لمعالجة النتائج وتصديرها. على سبيل المثال، بدلا من توصيل أدوات التقارير ب SQL Server، يمكنك استخدام CETAS لتنفيذ جميع الاستعلامات الضرورية، وتصدير النتيجة كملف Parquet، وإشارة أداة إعداد التقارير إلى البيانات المصدرة.

ترتيب البيانات أو إلغاء تحميلها

سيناريو شائع آخر هو تصدير الأرشيف أو البيانات للقراءة فقط من جداول SQL Server إلى التخزين البعيد، ولكن لا يزال الاستعلام عنها عادة من خلال الجداول الخارجية. بهذه الطريقة، يمكنك الاحتفاظ بالبيانات النشطة فقط على SQL Server، وحفظ الموارد، ولكن لا يزال الوصول إلى البيانات بطريقة شفافة كلما لزم الأمر. من وجهة نظر التطبيق، إنه تماما مثل الوصول إلى جدول SQL Server عادي.

على سبيل المثال، تخيل أن جدول order يحتوي على بيانات تاريخية للسنوات الماضية لا تتغير، ولكنك لا تزال بحاجة إلى الوصول إليها بالكامل. يمكن أن تساعد CETAS في تصدير جميع بيانات الجدول order إلى موقع آخر، ما يقلل من حجم قاعدة البيانات ووقت الصيانة المطلوب. باستخدام جدول خارجي، تتصرف البيانات المصدرة تماما مثل الجدول العادي.

مركز تصدير البيانات

باستخدام SQL Server 2025 كمركز بيانات، يمكنك دمج CETAS مع جميع إمكانات PolyBase الحالية، بما في ذلك الاتصال بمصادر بيانات أخرى مثل Oracle أو Teradata أو ODBC أو إصدارات أخرى من SQL Server.

متطلبات CETAS

لاستخدام CETAS في SQL Server 2025، تحتاج إلى تمكين الخاصية ALLOW POLYBASE EXPORT باستخدام sp_configure. للحصول على التفاصيل، راجع التمرين التالي.

أذونات CETAS

لاستخدام CETAS، تحتاج إلى ثلاثة مستويات مختلفة من الإذن:

  • إذن الوصول إلى مصدر البيانات وقراءته. إذا كانت البيانات موجودة خارج SQL Server، إما على مشاركة شبكة اتصال أو خادم قاعدة بيانات آخر، يجب أن يكون لحساب خدمة SQL Server إذن للوصول إلى مصدر البيانات.

  • إذن على SQL Server 2025 لاستخدام الأمر CETAS. لكي يقوم مستخدم قاعدة البيانات بتنفيذ الأمر CETAS، يحتاج إدارة العمليات المجمعة، تغيير أي مصدر بيانات خارجي، تغيير أي أذونات تنسيق ملف خارجي.

  • إذن الكتابة على الوجهة لكتابة نتائج CETAS. لكي تتمكن من الكتابة إلى ملف الوجهة أو Parquet أو CSV، يحتاج المستخدم إلى أذونات الكتابة على الوجهة. على سبيل المثال، للكتابة إلى Azure Blob Storage أو Azure Data Lake Storage، يحتاج المستخدم LIST، READ، CREATE، وأذونات WRITE على تلك الوجهات.

لمزيد من المعلومات حول أذونات CETAS، راجع إنشاء جدول خارجي كأذونات SELECT (CETAS).

تنسيقات CETAS المدعومة

يتلقى CETAS دفق بيانات، باستخدام أمر SELECT كإدخال، ويصدر النتائج بتنسيق CSV أو Parquet. يدعم الإدخال نفس تنسيقات الأمر SELECT، بما في ذلك نتائج OPENROWSET.

يمكن أن يكون الإدخال جدولا يعمل محليا على مثيل SQL Server الخاص بك، أو ملف شبكة يتم الوصول إليه من خلال عملية OPENROWSET، أو جدول في نظام قاعدة بيانات آخر، أو ملف Delta مخزن على Azure Blob Storage أو Azure Data Lake Storage أو تخزين كائن متوافق مع S3.

بنية CETAS T-SQL

لفهم CETAS بشكل أفضل، يمكنك تقسيم بناء جملة T-SQL الكلي. تتبع بنية CETAS T-SQL نهجا منطقيا من أسفل لأعلى. من الأسهل البدء في نهاية العبارة، ثم العمل في طريقك إلى أعلى عبارة T-SQL.

صورة لبنية T-SQL ل CREATE EXTERNAL TABLE كبيان SELECT.

  • يحتوي الجزء السفلي من بنية CETAS على عبارة SELECT التي تستخدمها لتحديد البيانات المراد تصديرها.
  • في المنتصف، هناك معلمات اختيارية يمكنك استخدامها لرفض البيانات التي لا تريد تصديرها.
  • في أعلى عبارة CETAS، بعد الإعلان عن CREATE EXTERNAL TABLE، يمكنك إضافة معلومات حول موقع الوجهة واسم الملف وتنسيق الملف.

تسمح هذه البنية بدمج CETAS مع أي عبارة SELECT للاستعلام عن البيانات خارج SQL Server أو داخل SQL Server أو من أي قاعدة بيانات أخرى مدعومة. يقوم SQL Server 2025 تلقائيا بإنشاء اسم الملف وتقسيم النتائج في ملفات متعددة للتحسين. على سبيل المثال، يمكن لجدول تم تصديره ك Parquet إنشاء عدة ملفات، اعتمادا على حجم البيانات المصدرة. تحدد عبارة التحديد تعريف عمود الجدول الخارجي ونوعه.

تصدير جدول من SQL Server ك Parquet

يستخدم المثال التالي CETAS لتصدير جدول من SQL Server ك Parquet:

CREATE EXTERNAL TABLE ext_sales
WITH (
      LOCATION = '/cetas',
      DATA_SOURCE = s3_eds,
      FILE_FORMAT = ParquetFileFormat
     ) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];

قراءة ملف Delta وتصديره ك Parquet

يستخدم المثال التالي CETAS لقراءة ملف Delta وتصديره ك Parquet:

CREATE EXTERNAL TABLE Delta_to_Parquet
WITH (
        LOCATION = N'/backup/sales',
        DATA_SOURCE = s3_parquet,
        FILE_FORMAT = ParquetFileFormat
      ) AS
SELECT *
FROM OPENROWSET(BULK N'/delta/sales_fy22/',
FORMAT = 'DELTA',
DATA_SOURCE = 's3_delta') AS [r];

في التمرين التالي، يمكنك استخدام CETAS من أجل:

  • تصدير جدول ك Parquet.
  • نقل البيانات الباردة من قاعدة البيانات إلى التخزين.
  • إنشاء جدول خارجي للوصول إلى البيانات المخزنة.
  • استخدم طرق العرض والبحث عن أحرف البدل والتخلص من المجلدات وبيانات التعريف كاستراتيجيات استعلام.