ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية إنشاء جداول خارجية أو استيعاب البيانات من حسابات Azure Data Lake Storage (ADLS) Gen2 باستخدام هوية مدارة.
الموارد التالية مطلوبة لإكمال هذا البرنامج التعليمي:
- حساب Azure Data Lake Storage (ADLS) Gen2
- مساحة عمل Azure Synapse Analytics وتجمع SQL مخصص
تنشئ كل مساحة عمل Azure Synapse Analytics تلقائيا هوية مدارة تساعدك على تكوين الوصول الآمن إلى البيانات الخارجية من مساحة العمل الخاصة بك. لمعرفة المزيد حول الهويات المدارة ل Azure Synapse Analytics، تفضل بزيارة هوية الخدمة المدارة ل Azure Synapse Analytics.
لتمكين هويتك المدارة من الوصول إلى البيانات على حسابات ADLS Gen2، تحتاج إلى منح هويتك حق الوصول إلى حساب المصدر. لمنح الأذونات المناسبة، اتبع الخطوات التالية:
- في مدخل Microsoft Azure، ابحث عن حساب التخزين الخاص بك.
- حدد Data storage -> Containers، وانتقل إلى المجلد حيث تكون البيانات المصدر التي يحتاج الجدول الخارجي إلى الوصول إليها.
- حدد Access control (IAM).
- حدد إضافة -> إضافة تعيين دور.
- في قائمة أدوار وظيفة الوظيفة، حدد Storage Blob Data Contributor وحدد Next.
- في صفحة Add role assignment ، حدد + Select members. يتم فتح جزء Select members .
- اكتب اسم هوية مساحة العمل. هوية مساحة العمل هي نفس اسم مساحة العمل. عند عرضها، اختر هوية مساحة العمل، ثم حدد.
- في صفحة إضافة تعيين دور، تأكد من أن قائمة الأعضاء تتضمن حساب معرف Microsoft Entra المطلوب. بمجرد التحقق، حدد Review + assign.
- في صفحة التأكيد، راجع التغييرات وحدد Review + assign.
هوية مساحة العمل الخاصة بك الآن عضو في دور Storage Blob Data Contributor ولديه حق الوصول إلى المجلد المصدر.
ملاحظة
تنطبق هذه الخطوات أيضا على تأمين حسابات ADLS Gen2 التي تم تكوينها لتقييد الوصول العام. إذا كان حساب التخزين الخاص بك مقترنا بحساب ADLS Gen2 آمن أو مقترنا بشبكة ظاهرية، فيجب عليك المصادقة باستخدام هوية مدارة. لمعرفة المزيد حول تأمين حساب ADLS Gen2 الخاص بك، راجع تكوين جدران حماية Azure Storage والشبكات الظاهرية.
توفر عبارة T-SQL COPY INTO
استيعابا مرنا وعالي الإنتاجية للبيانات في جداولك، وهي الاستراتيجية الأساسية لاستيعاب البيانات في جداول تجمع SQL المخصصة.
COPY INTO
يسمح للمستخدمين ب استيعاب البيانات من مواقع خارجية دون الحاجة إلى إنشاء أي من كائنات قاعدة البيانات الإضافية المطلوبة للجداول الخارجية.
لتشغيل العبارة COPY INTO
باستخدام هوية مدارة لمساحة العمل للمصادقة، استخدم الأمر T-SQL التالي:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
CREDENTIAL = (IDENTITY = 'Managed Identity'),
[<CopyIntoOptions>]
);
المكان:
-
<TableName>
هو اسم الجدول لاستيعاب البيانات فيه -
<AccountName>
هو اسم حساب ADLS Gen2 الخاص بك -
<Container>
هو اسم الحاوية داخل حساب التخزين الخاص بك حيث يتم تخزين بيانات المصدر -
<Folder>
هو المجلد (أو المسار مع المجلدات الفرعية) حيث يتم تخزين البيانات المصدر داخل الحاوية الخاصة بك. يمكنك أيضا توفير اسم ملف إذا كان يشير مباشرة إلى ملف واحد. -
<CopyIntoOptions>
هي قائمة بأي خيارات أخرى ترغب في توفيرها إلى عبارة COPY INTO.
لمعرفة المزيد واستكشاف بناء الجملة الكامل ل COPY INTO، راجع COPY INTO (Transact-SQL).
تسمح الجداول الخارجية للمستخدمين بالاستعلام عن البيانات من حسابات Azure Data Lake Storage (ADLS) Gen2 دون الحاجة إلى استيعاب البيانات أولا. يمكن للمستخدمين إنشاء جدول خارجي يشير إلى ملفات على حاوية ADLS Gen2، والاستعلام عنه تماما مثل جدول مستخدم عادي.
تصف الخطوات التالية عملية إنشاء جدول خارجي جديد يشير إلى البيانات على ADLS Gen2، باستخدام هوية مدارة للمصادقة.
تتطلب الجداول الخارجية إنشاء العناصر التالية:
- مفتاح رئيسي لقاعدة البيانات يقوم بتشفير بيانات الاعتماد الخاصة بقاعدة البيانات التي تم تحديد نطاقها
- بيانات اعتماد محددة النطاق لقاعدة البيانات تستخدم هوية مساحة العمل الخاصة بك
- مصدر بيانات خارجي يشير إلى المجلد المصدر
- تنسيق ملف خارجي يحدد تنسيق الملفات المصدر
- تعريف جدول خارجي يستخدم للاستعلامات
لاتباع هذه الخطوات، استخدم محرر SQL في مساحة عمل Azure Synapse، أو عميل SQL المفضل لديك المتصل بتجمع SQL المخصص. لنلق نظرة على هذه الخطوات بالتفصيل.
المفتاح الرئيسي لقاعدة البيانات هو مفتاح متماثل يستخدم لحماية المفاتيح الخاصة للشهادات والمفاتيح غير المتماثلة الموجودة في قاعدة البيانات والأسرار في بيانات اعتماد نطاق قاعدة البيانات. إذا كان هناك بالفعل مفتاح رئيسي في قاعدة البيانات، فلن تحتاج إلى إنشاء مفتاح رئيسي جديد. استبدل <Secure Password>
بكلمة مرور آمنة. يتم استخدام كلمة المرور هذه لتشفير المفتاح الرئيسي في قاعدة البيانات.
لإنشاء مفتاح رئيسي، استخدم الأمر T-SQL التالي:
-- Replace <Secure Password> with a secure password
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Secure Password>';
لمعرفة المزيد حول المفتاح الرئيسي لقاعدة البيانات، راجع إنشاء المفتاح الرئيسي (Transact-SQL) .
تستخدم بيانات اعتماد نطاق قاعدة البيانات هوية مساحة العمل الخاصة بك وهي مطلوبة للوصول إلى الموقع الخارجي في أي وقت يتطلب الجدول الخارجي الوصول إلى البيانات المصدر.
لإنشاء بيانات اعتماد محددة النطاق لقاعدة البيانات، استخدم الأمر التالي. استبدل <CredentialName>
بالاسم الذي ترغب في استخدامه لبيانات الاعتماد الخاصة بقاعدة البيانات الخاصة بك.
CREATE DATABASE SCOPED CREDENTIAL <CredentialName> WITH IDENTITY = 'Managed Service Identity';
لمعرفة المزيد حول بيانات الاعتماد المحددة في نطاق قاعدة البيانات، راجع إنشاء بيانات اعتماد نطاق قاعدة البيانات (Transact-SQL) .
الخطوة التالية هي إنشاء مصدر بيانات خارجي يحدد مكان وجود البيانات المصدر المستخدمة من قبل الجدول الخارجي.
لإنشاء مصدر البيانات الخارجي، استخدم الأمر T-SQL التالي:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/',
CREDENTIAL = <CredentialName>
);
المكان:
-
<ExternalDataSourceName>
هو الاسم الذي تريد استخدامه لمصدر البيانات الخارجي. -
<AccountName>
هو اسم حساب ADLS Gen2 الخاص بك. -
<Container>
هو اسم الحاوية داخل حساب التخزين الخاص بك حيث يتم تخزين البيانات المصدر. -
<Folder>
هو المجلد (أو المسار مع المجلدات الفرعية) حيث يتم تخزين البيانات المصدر داخل الحاوية الخاصة بك. يمكنك أيضا توفير اسم ملف إذا كان يشير مباشرة إلى ملف واحد. -
<Credential>
هو اسم بيانات الاعتماد التي تم تحديد نطاقها لقاعدة البيانات التي قمت بإنشائها سابقا.
لمعرفة المزيد حول مصادر البيانات الخارجية، راجع إنشاء مصدر بيانات خارجي (Transact-SQL) .
الخطوة التالية هي إنشاء تنسيق الملف الخارجي. يحدد التخطيط الفعلي للبيانات المشار إليها بواسطة الجدول الخارجي.
لإنشاء تنسيق الملف الخارجي، استخدم الأمر T-SQL التالي. استبدل <FileFormatName>
بالاسم الذي تريد استخدامه لتنسيق الملف الخارجي.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
في هذا المثال، اضبط معلمات مثل FIELD_TERMINATOR
و STRING_DELIMITER
FIRST_ROW
و وغيرها حسب الحاجة وفقا لبيانات المصدر. لمزيد من خيارات التنسيق ولمعرفة المزيد حول EXTERNAL FILE FORMAT
، راجع إنشاء تنسيق ملف خارجي.
الآن بعد إنشاء جميع الكائنات الضرورية التي تحتوي على بيانات التعريف للوصول إلى البيانات الخارجية بشكل آمن، حان الوقت لإنشاء الجدول الخارجي. لإنشاء الجدول الخارجي، استخدم الأمر T-SQL التالي:
-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
Col1 INT,
Col2 NVARCHAR(100),
Col4 INT
)
WITH
(
LOCATION = '<Path>',
DATA_SOURCE = <ExternalDataSourceName>,
FILE_FORMAT = <FileFormatName>
);
المكان:
-
<ExternalTableName>
هو الاسم الذي تريد استخدامه للجدول الخارجي. -
<Path>
هو مسار بيانات المصدر، بالنسبة إلى الموقع المحدد في مصدر البيانات الخارجي. -
<ExternalDataSourceName>
هو اسم مصدر البيانات الخارجي الذي قمت بإنشائه مسبقا. -
<FileFormatName>
هو اسم تنسيق الملف الخارجي الذي قمت بإنشائه مسبقا.
تأكد من ضبط اسم الجدول والمخطط إلى الاسم المطلوب ومخطط البيانات في الملفات المصدر.
عند هذه النقطة، يتم إنشاء جميع بيانات التعريف المطلوبة للوصول إلى الجدول الخارجي. لاختبار الجدول الخارجي، استخدم استعلاما مثل نموذج T-SQL التالي للتحقق من صحة عملك:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
إذا تم تكوين كل شيء بشكل صحيح، يجب أن تشاهد البيانات من البيانات المصدر كنتيجة لهذا الاستعلام.
لمعرفة المزيد واستكشاف بناء الجملة الكامل ل CREATE EXTERNAL TABLE
، راجع إنشاء جدول خارجي (Transact-SQL) .