التحكم في الوصول إلى حساب التخزين لتجمع SQL بلا خادم في Azure Synapse Analytics

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

  • مستوى التخزين - يجب أن يكون لدى المستخدم إذن للوصول إلى ملفات التخزين الأساسية. يجب أن يسمح مسؤول التخزين الخاص بك لكيان Microsoft Entra بقراءة/كتابة الملفات، أو إنشاء مفتاح توقيع الوصول المشترك (SAS) الذي سيتم استخدامه للوصول إلى التخزين.
  • مستوى خدمة SQL - يجب أن يكون المستخدم قد منح الإذن لقراءة البيانات باستخدام جدول خارجي أو لتنفيذ الدالة OPENROWSET . اقرأ المزيد حول الأذونات المطلوبة في هذا القسم.

توضح هذه المقالة أنواع بيانات الاعتماد التي يمكنك استخدامها وكيفية تطبيق البحث عن بيانات الاعتماد لمستخدمي SQL وMicrosoft Entra.

أذونات التخزين

يمكن لتجمع SQL بلا خادم في مساحة عمل Synapse Analytics قراءة محتوى الملفات المخزنة في تخزين Azure Data Lake. تحتاج إلى تكوين أذونات بالتخزين لتمكين مستخدم يقوم بتنفيذ استعلام SQL لقراءة الملفات. هناك ثلاث طرق لتمكين الوصول إلى الملفات:

  • يمكنك التحكم في الوصول المستند إلى الدور (RBAC) من تعيين دور لبعض مستخدم Microsoft Entra في المستأجر حيث يتم وضع التخزين الخاص بك. يجب أن يكون القارئ عضوا في دور Storage Blob Data Reader أو Storage Blob Data Contributor أو Storage Blob Data Owner على حساب التخزين. يجب أن يكون المستخدم الذي يكتب البيانات في تخزين Azure عضوا في دور Storage Blob Data Contributor أو Storage Blob Data Owner. لا يعني دور مالك التخزين أن المستخدم هو أيضا مالك بيانات التخزين.
  • تمكنك قوائم التحكم بالوصول (ACL) من تحديد أذونات قراءة(R) وكتابة (W) وتنفيذ (X) دقيقة على الملفات والدلائل في تخزين Azure. يمكن تعيين ACL لمستخدمي Microsoft Entra. إذا كان القراء يريدون قراءة ملف على مسار في Azure Storage، يجب أن يكون تنفيذ (X) قوائم التحكم بالوصول على كل مجلد في مسار الملف، وقراءة (R) قوائم التحكم بالوصول على الملف. تعرف على المزيد حول كيفية تعيين أذونات ACL في طبقة التخزين.
  • يتيح توقيع الوصول المشترك (SAS) للقارئ الوصول إلى الملفات على تخزين Azure Data Lake باستخدام الرمز المميز المحدد زمنيا. لا يحتاج القارئ حتى إلى المصادقة كمستخدم Microsoft Entra. يحتوي الرمز المميز لتوقيع الوصول المشترك على الأذونات الممنوحة للقارئ، بالإضافة إلى الفترة التي يكون فيها الرمز المميز صالحًا. يعد رمز SAS المميز خيارا جيدا للوصول المقيد زمنيا إلى أي مستخدم لا يحتاج حتى إلى أن يكون في نفس مستأجر Microsoft Entra. يمكن تعريف الرمز المميز لتوقيع الوصول المشترك على حساب التخزين أو على دلائل معينة. تعرف على المزيد حول منح وصول محدود إلى موارد Azure Storage باستخدام توقيعات الوصول المشترك.

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

أنواع تخويل التخزين المعتمدة

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

إشعار

المرور من Microsoft Entra هو السلوك الافتراضي عند إنشاء مساحة عمل.

هوية المستخدم، والمعروفة أيضا باسم "Microsoft Entra pass-through"، هي نوع تخويل حيث يتم استخدام هوية مستخدم Microsoft Entra الذي قام بتسجيل الدخول إلى تجمع SQL بلا خادم لتخويل الوصول إلى البيانات. قبل الوصول إلى البيانات، يجب على مسؤول Azure Storage منح أذونات لمستخدم Microsoft Entra. كما هو موضح في أنواع التخويل المعتمدة لجدول مستخدمي قاعدة البيانات، فإنه غير مدعوم لنوع مستخدم SQL.

هام

قد يتم تخزين رمز مصادقة Microsoft Entra مؤقتا بواسطة تطبيقات العميل. على سبيل المثال، يقوم Power BI بذاكرة التخزين المؤقت الرموز المميزة ل Microsoft Entra وإعادة استخدام نفس الرمز المميز لمدة ساعة. قد تفشل الاستعلامات طويلة الأمد إذا انتهت صلاحية الرمز المميز في منتصف تنفيذ الاستعلام. إذا كنت تواجه حالات فشل في الاستعلام بسبب الرمز المميز للوصول إلى Microsoft Entra الذي تنتهي صلاحيته في منتصف الاستعلام، ففكر في التبديل إلى كيان خدمة أو هوية مدارة أو توقيع وصول مشترك.

يجب أن تكون عضوا في دور Storage Blob Data Owner أو Storage Blob Data Contributor أو Storage Blob Data Reader لاستخدام هويتك للوصول إلى البيانات. كبديل، يمكنك تحديد قواعد قائمة التحكم بالوصول التي تتطلب تركيزًا كبيرًا للوصول إلى الملفات والمجلدات. حتى إذا كنت مالكًا لحساب تخزين، فلا تزال بحاجة إلى إضافة نفسك إلى أحد أدوار بيانات للبيانات الثنائية الكبيرة للتخزين. لمعرفة المزيد حول التحكم في الوصول في Azure Data Lake Store Gen2، راجع مقالة التحكم في الوصول في Azure Data Lake Storage Gen2 .

سيناريوهات عبر المستأجرين

في الحالات التي يكون فيها Azure Storage في مستأجر مختلف عن تجمع Synapse serverless SQL، يكون التخويل عبر كيان الخدمة هو الأسلوب المُوصى به. تخويل توقيع الوصول المشترك (SAS) ممكن أيضاً، بينما تكون الهوية المُدارة غير مدعومة.

نوع التخويل التخزين المحمي بجدار الحماية تخزين غير محمي بجدار الحماية
ساس مدعوم مدعوم
كيان الخدمة غير معتمد مدعوم

إشعار

إذا كان Azure Storage محميا بواسطة جدار حماية Azure Storage، فلن يتم دعم كيان الخدمة .

أنواع التفويض المدعومة لمستخدمي قواعد البيانات

يوفر الجدول التالي أنواع تخويل Azure Storage المتوفرة لأساليب تسجيل الدخول المختلفة في نقطة نهاية SQL بلا خادم في Azure Synapse Analytics:

نوع التخويل مستخدم SQL مستخدم Microsoft Entra كيان الخدمة
هوية المستخدم غير معتمد مدعوم مدعوم
ساس مدعوم مدعوم مدعوم
كيان الخدمة مدعوم مدعوم مدعوم
الهوية المدارة مدعوم مدعوم مدعوم

أنواع التخزين والتخويل المعتمدة

يمكنك استخدام المجموعات التالية من أنواع التخويل وأنواع تخزين Azure:

نوع التخويل مخزن البيانات الثنائية الكبيرة ADLS Gen1 ADLS Gen2
ساس مدعوم غير مدعوم مدعوم
كيان الخدمة مدعوم مدعوم مدعوم
الهوية المدارة مدعوم مدعوم مدعوم
هوية المستخدم مدعوم مدعوم مدعوم

سيناريوهات عبر المستأجرين

في الحالات التي يكون فيها Azure Storage في مستأجر مختلف عن تجمع SQL بلا خادم في Azure Synapse Analytics، يكون التخويل عبر كيان الخدمة هو الأسلوب الموصى به. يمكن أيضا تخويل توقيع الوصول المشترك. هوية الخدمة المدارة غير مدعومة.

نوع التخويل التخزين المحمي بجدار الحماية تخزين غير محمي بجدار الحماية
ساس مدعوم مدعوم
كيان الخدمة غير معتمد مدعوم

إشعار

إذا كان Azure Storage محميا بواسطة جدار حماية Azure Storage وكان في مستأجر آخر، فلن يتم دعم كيان الخدمة. بدلا من ذلك، استخدم توقيع وصول مشترك (SAS).

تخزين جدار حماية التخزين

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

إشعار

ميزة جدار الحماية على Azure Storage في المعاينة العامة وهي متوفرة في جميع مناطق السحابة العامة.

يوفر الجدول التالي أنواع تخويل Azure Storage المحمية بجدار الحماية لأساليب تسجيل الدخول المختلفة في نقطة نهاية SQL بلا خادم في Azure Synapse Analytics:

نوع التخويل مستخدم SQL مستخدم Microsoft Entra كيان الخدمة
هوية المستخدم غير معتمد مدعوم مدعوم
ساس غير معتمد غير معتمد غير معتمد
كيان الخدمة غير معتمد غير معتمد غير معتمد
الهوية المدارة مدعوم مدعوم مدعوم

للوصول إلى التخزين المحمي بجدار الحماية عبر هوية مستخدم، يمكنك استخدام مدخل Microsoft Azure أو وحدة Az.Storage PowerShell النمطية.

تكوين جدار حماية Azure Storage عبر مدخل Microsoft Azure

  1. ابحث عن حساب التخزين الخاص بك في مدخل Azure.
  2. في قائمة التنقل الرئيسية، انتقل إلى Networking ضمن الإعدادات.
  3. في قسم Resource instances، أضف استثناء لمساحة عمل Azure Synapse.
  4. حدد Microsoft.Synapse/workspaces كنوع مورد.
  5. حدد اسم مساحة العمل كاسم مثيل.
  6. حدد حفظ.

تكوين جدار حماية تخزين Azure عبر PowerShell

اتبع هذه الخطوات لتكوين حساب التخزين الخاص بك وإضافة استثناء لمساحة عمل Azure Synapse.

  1. افتح PowerShell أو ثبت PowerShell.

  2. تثبيت أحدث إصدارات الوحدة النمطية Az.Storage والوحدة النمطية Az.Synapse، على سبيل المثال في البرنامج النصي التالي:

    Install-Module -Name Az.Storage -RequiredVersion 3.4.0
    Install-Module -Name Az.Synapse -RequiredVersion 0.7.0
    

    هام

    تأكد من استخدام الإصدار 3.4.0 على الأقل. يمكنك التحقق من إصدار Az.Storage الخاص بك عن طريق تشغيل هذا الأمر:

    Get-Module -ListAvailable -Name Az.Storage | Select Version
    
  3. الاتصال إلى مستأجر Azure:

    Connect-AzAccount
    
  4. تعريف المتغيرات في PowerShell:

    • اسم مجموعة الموارد - يمكنك العثور على هذا في مدخل Microsoft Azure في نظرة عامة على حساب التخزين الخاص بك.
    • اسم الحساب - اسم حساب التخزين المحمي بقواعد جدار الحماية.
    • معرف المستأجر - يمكنك العثور على هذا في مدخل Microsoft Azure في معرف Microsoft Entra، ضمن Properties، في خصائص المستأجر.
    • اسم مساحة العمل - اسم مساحة عمل Azure Synapse.
        $resourceGroupName = "<resource group name>"
        $accountName = "<storage account name>"
        $tenantId = "<tenant id>"
        $workspaceName = "<Azure Synapse workspace name>"
    
        $workspace = Get-AzSynapseWorkspace -Name $workspaceName
        $resourceId = $workspace.Id
        $index = $resourceId.IndexOf("/resourceGroups/", 0)
        # Replace G with g - /resourceGroups/ to /resourcegroups/
        $resourceId = $resourceId.Substring(0,$index) + "/resourcegroups/" ` 
            + $resourceId.Substring($index + "/resourceGroups/".Length)
    
        $resourceId
    

    هام

    يجب أن تتطابق قيمة التي $resourceid تم إرجاعها بواسطة البرنامج النصي PowerShell مع هذا القالب: /subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Synapse/workspaces/{name-of-workspace} من المهم كتابة مجموعات الموارد في حالة أقل.

  5. إضافة قاعدة شبكة حساب تخزين Azure:

        $parameters = @{
            ResourceGroupName = $resourceGroupName
            Name = $accountName
            TenantId = $tenantId 
            ResourceId = $resourceId
        }
    
        Add-AzStorageAccountNetworkRule @parameters
    
  6. تحقق من تطبيق قاعدة شبكة حساب التخزين في جدار حماية حساب التخزين الخاص بك. يقارن $resourceid البرنامج النصي PowerShell التالي المتغير من الخطوات السابقة إلى إخراج قاعدة شبكة حساب التخزين.

        $parameters = @{
            ResourceGroupName = $resourceGroupName
            Name = $accountName
        }
    
        $rule = Get-AzStorageAccountNetworkRuleSet @parameters
        $rule.ResourceAccessRules | ForEach-Object { 
            if ($_.ResourceId -cmatch "\/subscriptions\/(\w\-*)+\/resourcegroups\/(.)+") { 
                Write-Host "Storage account network rule is successfully configured." -ForegroundColor Green
                $rule.ResourceAccessRules
            } else {
                Write-Host "Storage account network rule is not configured correctly. Remove this rule and follow the steps in detail." -ForegroundColor Red
                $rule.ResourceAccessRules
            }
        }
    

بيانات الاعتماد

للاستعلام عن ملف موجود في Azure Storage، تحتاج نقطة نهاية تجمع SQL بلا خادم إلى بيانات اعتماد تحتوي على معلومات المصادقة. نوعين من بيانات الاعتماد يتم استخدامهما:

  • يتم استخدام بيانات الاعتماد على مستوى الخادم للاستعلامات المخصصة التي يتم تنفيذها باستخدام OPENROWSET الدالة . يجب أن يتطابق اسم بيانات الاعتماد مع عنوان URL للتخزين.
  • يتم استخدام بيانات اعتماد ذات نطاق قاعدة بيانات للجداول الخارجية. مراجع DATA SOURCE الجدول الخارجي مع بيانات الاعتماد التي يجب استخدامها للوصول إلى التخزين.

منح أذونات لإدارة بيانات الاعتماد

لمنح القدرة على إدارة بيانات الاعتماد:

  • للسماح للمستخدم بإنشاء بيانات اعتماد على مستوى الخادم أو إسقاطها، يجب على المسؤول منح ALTER ANY CREDENTIAL الإذن لتسجيل الدخول الخاص به في قاعدة البيانات الرئيسية. على سبيل المثال:

    GRANT ALTER ANY CREDENTIAL TO [login_name];
    
  • للسماح للمستخدم بإنشاء بيانات اعتماد محددة النطاق لقاعدة بيانات أو إسقاطها، يجب على المسؤول منح CONTROL الإذن في قاعدة البيانات لمستخدم قاعدة البيانات في قاعدة بيانات المستخدم. على سبيل المثال:

    GRANT CONTROL ON DATABASE::[database_name] TO [user_name];
    

منح أذونات لاستخدام بيانات الاعتماد

يجب أن يكون لدى مستخدمي قاعدة البيانات الذين يصلون إلى التخزين الخارجي إذن لاستخدام بيانات الاعتماد. لاستخدام بيانات الاعتماد، يجب أن يكون لدى المستخدم الإذن على REFERENCES بيانات اعتماد معينة.

لمنح الإذن على REFERENCES بيانات اعتماد على مستوى الخادم لتسجيل الدخول، استخدم استعلام T-SQL التالي في قاعدة البيانات الرئيسية:

GRANT REFERENCES ON CREDENTIAL::[server-level_credential] TO [login_name];

لمنح REFERENCES إذن على بيانات اعتماد ذات نطاق قاعدة بيانات لمستخدم قاعدة بيانات، استخدم استعلام T-SQL التالي في قاعدة بيانات المستخدم:

GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[database-scoped_credential] TO [user_name];

بيانات الاعتماد على مستوى الخادم

يتم استخدام بيانات الاعتماد على مستوى الخادم عندما يستدعي OPENROWSET تسجيل دخول SQL دالة DATA_SOURCE دون لقراءة الملفات على حساب تخزين.

يجب أن يتطابق اسم بيانات الاعتماد على مستوى الخادم مع عنوان URL الأساسي لتخزين Azure، متبوعا اختياريا باسم حاوية. تتم إضافة بيانات اعتماد عن طريق تشغيل CREATE CREDENTIAL. يجب توفير الوسيطة CREDENTIAL NAME .

إشعار

الوسيطة FOR CRYPTOGRAPHIC PROVIDER غير معتمدة.

يجب أن يتطابق اسم بيانات الاعتماد على مستوى الخادم مع التنسيق التالي: <prefix>://<storage_account_path>[/<container_name>]. يتم وصف مسارات حساب التخزين في الجدول التالي:

مصدر البيانات الخارجية البادئة مسار حساب التخزين
Azure Blob Storage https <storage_account>.blob.core.windows.net
Azure Data Lake Storage الجيل الأول https <storage_account>.azuredatalakestore.net/webhdfs/v1
Azure Data Lake Storage Gen2 https <storage_account>.dfs.core.windows.net

ثم يمكن لبيانات الاعتماد على مستوى الخادم الوصول إلى تخزين Azure باستخدام أنواع المصادقة التالية:

يمكن لمستخدمي Microsoft Entra الوصول إلى أي ملف على تخزين Azure إذا كانوا أعضاء في دور Storage Blob Data Owner أو Storage Blob Data Contributor أو Storage Blob Data Reader. لا يحتاج مستخدمو Microsoft Entra إلى بيانات اعتماد للوصول إلى التخزين.

لا يمكن للمستخدمين المصادق عليهم من SQL استخدام مصادقة Microsoft Entra للوصول إلى التخزين. يمكنهم الوصول إلى التخزين من خلال بيانات اعتماد قاعدة بيانات باستخدام الهوية المدارة أو مفتاح SAS أو كيان الخدمة أو إذا كان هناك وصول عام إلى التخزين.

بيانات الاعتماد النطاقية لقاعدة البيانات

يتم استخدام بيانات الاعتماد ذات نطاق قاعدة البيانات عندما تعمل أي استدعاءات OPENROWSET أساسية مع DATA_SOURCE بيانات من جدول خارجي لا تصل إلى الملفات العامة أو تحددها. لا تحتاج بيانات الاعتماد ذات نطاق قاعدة البيانات إلى مطابقة اسم حساب التخزين، بل تتم الإشارة إليها في مصدر البيانات الذي يحدد موقع التخزين.

تمكن بيانات الاعتماد النطاقية لقاعدة البيانات من الوصول إلى تخزين Azure باستخدام أنواع المصادقة التالية:

يمكن لمستخدمي Microsoft Entra الوصول إلى أي ملف على تخزين Azure إذا كانوا أعضاء في أدوار Storage Blob Data Owner أو Storage Blob Data Contributor أو Storage Blob Data Reader. لا يحتاج مستخدمو Microsoft Entra إلى بيانات اعتماد للوصول إلى التخزين.

CREATE EXTERNAL DATA SOURCE mysample
WITH (    LOCATION   = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
)

لا يمكن للمستخدمين المصادق عليهم من SQL استخدام مصادقة Microsoft Entra للوصول إلى التخزين. يمكنهم الوصول إلى التخزين من خلال بيانات اعتماد قاعدة بيانات باستخدام الهوية المدارة أو مفتاح SAS أو كيان الخدمة أو إذا كان هناك وصول عام إلى التخزين.

يتم استخدام بيانات الاعتماد النطاقية لقاعدة البيانات في مصادر البيانات الخارجية لتحديد أسلوب المصادقة الذي سيتم استخدامه للوصول إلى هذا التخزين:

CREATE EXTERNAL DATA SOURCE mysample
WITH (    LOCATION   = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>',
          CREDENTIAL = <name of database scoped credential> 
)

الأمثلة

الوصول إلى مصدر بيانات متاح للجمهور

استخدم البرنامج النصي التالي لإنشاء جدول يصل إلى مصدر البيانات المتوفرة بشكل عام.

CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat]
       WITH ( FORMAT_TYPE = PARQUET)
GO
CREATE EXTERNAL DATA SOURCE publicData
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<public_container>/<path>' )
GO

CREATE EXTERNAL TABLE dbo.userPublicData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
       DATA_SOURCE = [publicData],
       FILE_FORMAT = [SynapseParquetFormat] )

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

SELECT TOP 10 * FROM dbo.userPublicData;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet',
                                DATA_SOURCE = 'mysample',
                                FORMAT='PARQUET') as rows;
GO

الوصول إلى مصدر بيانات باستخدام بيانات الاعتماد

قم بتعديل البرنامج النصي التالي لإنشاء جدول خارجي يصل إلى تخزين Azure باستخدام رمز SAS المميز أو هوية Microsoft Entra للمستخدم أو الهوية المدارة لمساحة العمل.

-- Create master key in databases with some password (one-off per database)
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>'
GO

-- Create databases scoped credential that use Managed Identity, SAS token or service principal. User needs to create only database-scoped credentials that should be used to access data source:

CREATE DATABASE SCOPED CREDENTIAL WorkspaceIdentity
WITH IDENTITY = 'Managed Identity'
GO
CREATE DATABASE SCOPED CREDENTIAL SasCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2019-10-1********ZVsTOL0ltEGhf54N8KhDCRfLRI%3D'
GO
CREATE DATABASE SCOPED CREDENTIAL SPNCredential WITH
IDENTITY = '**44e*****8f6-ag44-1890-34u4-22r23r771098@https://login.microsoftonline.com/**do99dd-87f3-33da-33gf-3d3rh133ee33/oauth2/token' 
, SECRET = '.7OaaU_454azar9WWzLL.Ea9ePPZWzQee~'
GO
-- Create data source that one of the credentials above, external file format, and external tables that reference this data source and file format:

CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat] WITH ( FORMAT_TYPE = PARQUET)
GO

CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
-- Uncomment one of these options depending on authentication method that you want to use to access data source:
--,CREDENTIAL = WorkspaceIdentity 
--,CREDENTIAL = SasCredential 
--,CREDENTIAL = SPNCredential
)

CREATE EXTERNAL TABLE dbo.userData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
       DATA_SOURCE = [mysample],
       FILE_FORMAT = [SynapseParquetFormat] );

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

SELECT TOP 10 * FROM dbo.userdata;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet', DATA_SOURCE = 'mysample', FORMAT='PARQUET') as rows;
GO

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

تساعدك هذه المقالات على معرفة كيفية الاستعلام عن أنواع المجلدات وأنواع الملفات المختلفة وإنشاء طرق العرض واستخدامها: